vimからgoogle docsを操作したい 〜その3〜

〜その2〜で作成したgoogle docsプラグインに致命的な問題発見。
ドキュメントをダウンロードで、改行のみの行が改行×2になって返ってくる。
どうやらGoogle docsの仕様のようです。


百練自得の極みかよ


この人の真似して'\n\n'→'\n'置換をすることにした。(かなり強引だが
https://github.com/Codier/angular.js/commit/d428c9910e66246c2af46602499acaeaf187d75b


MGoogleクラスにfixFuckingLFBug()メソッドを追加して、downloadTxt()で呼び出し。
一応ダウンロードしたデータはbakcup残しておく。

以下、コード。

    def downloadTxt(self, resource_id):
        for entry in self.client.GetDocumentListFeed().entry:
            if entry.resourceId.text == resource_id:
                out_path = U(entry.title.text) + '.txt'
                self.client.Export(entry, out_path)
+               self.fixFuckingLFBug(resource_id)
                mylogger.info('Completed downloading %s. ' % entry.title)
                break
            mylogger.info(entry.resourceId.text)

    # 改行増殖バグ
    def fixFuckingLFBug(self, resourceId):
        path = self.docs_dict[resourceId] + ".txt"
        f = open(path, 'r')
        r = f.read()
        f.close()

        if os.path.exists(path+'.bk'):
            os.unlink(path+'.bk')
        os.rename(path, path+'.bk')

        f = open(path, 'w')
        f.write(S(r.replace('\n\n', '\n'), 'cp932'))
        f.close()