あんちぇいん

気弱なおっさんがネットの匿名性を良いことに、言いたいことを言い書きたいことを書く そんなブログだったよね

HatenaSyncで突然エラーがでたときの対処方法メモ

現在GetPosと並んでキラーアプリとなっているid:aroooyさんのHatenaSyncですが、残念なことにはてなの提供しているAPIに不具合があるらしく、時々エラーがでます。(わかりやすくいうと、はてなが「これ使てうちの日記を更新するアプリを開発してもろて結構でっせ」と提供している機能がバグ持ちということ)
そのエラーの中でも私がよくお目にかかるのが、xmlの解析中にエラーが発生しました、というやつです。
他のエラーに関してはサーバが混んでいたり、通信がうまく行かなかったりと何かの拍子にでる場合があり、そういうものは何度か繰り返して実行することで回避できたりするのですが、これだけはそうはいきません。

このエラーは日記の中におかしな文字列が含まれている場合に出るようです。
たとえば企業名などについている小さいRとか。
よそのblogの文章を引用する場合に起こる可能性が高いですね。
で、これが出た場合、その部分(おかしな文字列を削除するなどして)を訂正するか、HatenaSyncが取得する最新から20件のログから、その文字列を含む日記が押し出されるのを待つか(つまりどんどん日記を投稿してその日記が21件目以降に来るようにする)しかありません。

というわけで、xml解析中にエラーが出た場合の対処方法をメモ。
毎回必ずこれでうまく行くとは限りませんし、これと違うエラーが出たらお手上げですので、あくまでこのエラーが出たらこう対処する、という自分用メモです。
 
まずログイン画面で「AtomResponseをファイルに保存」にチェック。

エラーをよく読んで「無効な文字列です」という部分を探します。
その下に「行***位置***」という部分があるので、その行を覚えます。

\Program Files\HatenaSync\AtomResponse
にあるpubFeed.txtというファイルをjotで開きます。
右端で折り返さない表示にして「メニュー」から「移動」「行番号指定」を選択。
先ほど覚えた行番号を入力して移動。
その行に何か変な文字列が含まれているはずなので探し出します。
 
今回はCompanionの後に変な四角が入っています。
この四角を削除すればいいわけですが、今開いているファイルのほうを削除しても意味がありません。
はてなの方の同じ箇所に入っている文字を削除する必要があります。

日付などを参考にして該当する日の日記を開き、おかしな文字を削除しましょう。
これを削除したら同期できるようになります。