変更点は以下のとおり
- ドラフトのテキストが空だった時、投稿をキャンセルするようにした
htnblog.exe edit
で、ドラフトフラグが no になってしまう不具合を修正
XML定義の構造体の中で
IsDraft string `xml:"app:control>app:draft,omitempty"`
と定義していたんですが、これがうまく読み取れてなかった模様。
app:
を外すと読めるんですが、そうすると今度 post する時、タグ名に app:
がつかない懸念が。
などの記載を参考に試行錯誤し、最終的に
diff --git a/xmlentry.go b/xmlentry.go index 4c165e1..d5ede69 100644 --- a/xmlentry.go +++ b/xmlentry.go @@ -10,11 +10,16 @@ type XmlEntry struct { XMLNsApp string `xml:"xmlns:app,attr"` Title string `xml:"title"` Content XmlContent `xml:"content"` - IsDraft string `xml:"app:control>app:draft,omitempty"` Link []XmlLink `xml:"link"` Updated string `xml:"updated,omitempty"` Published string `xml:"published,omitempty"` AppEdited string `xml:"app:edited,omitempty"` + Control XmlControl `xml:"http://www.w3.org/2007/app control"` +} + +type XmlControl struct { + XMLName xml.Name `xml:"http://www.w3.org/2007/app control"` + Draft string `xml:"http://www.w3.org/2007/app draft,omitempty"` }
としたところ、Draft フラグの読み書きが満足ゆく形に。
ただし、xml.Marshal の結果を見ると、<app:draft>
ではなく、<draft xmlns="http://www.w3.org/2007/app">
となっていたので、完全に意図どおりというわけではないが、hatena側でフラグが認識されていたので、XML的には互換性ある形にはなっている模様 )