vimからgoogle docsを操作したい 〜その1〜
はてなプラグインに続いてgoogle docsとvimを連携させようじゃないの計画始動。
めんどくさがりやなので、テキストのみのUPLOAD/DOWNLOADに限定します。
さて、text fileのアップロードとdocs一覧の取得を試しに実装してみた。
#encoding=utf-8 from gdata.docs.service import DocsService from gdata.data import MediaSource from common.mys import mylogger, S, U, BT email = 'hogehoge@gmail.com' password = 'hagehage' class MGoogle: def __init__(self, email, password): self.email = email self.password = password self.client = self.connect() # Google認証 def connect(self): try: client = DocsService() client.ClientLogin(self.email, self.password) mylogger.info('Authentication succeeded %s' % repr(client)) except Exception, e: mylogger.error(U(BT())) client = None return client # テキストファイルのアップロード # TODO utf-8 以外のテキストファイルは文字化ける def uploadTxt(self, file_path, title=u'テスト', content_type='text/plain'): src = MediaSource(file_path=file_path, content_type=content_type) entry = self.client.Upload(src, title) #print entry.GetAlternateLink().href # ダウンロード (TODO ファイル保存じゃなくて直接テキスト欲しいんですけど def downloadTxt(self): # TODO entryの特定 for entry in self.client.GetDocumentListFeed().entry: print U(entry.title.text), type(entry.title.text) if __name__ == '__main__': import unittest class Tests(unittest.TestCase): def setup(self): pass @unittest.skip('') def testUpload(self): g = MGoogle(email, password) g.uploadTxt('memo.txt') @unittest.skip('') def testDownload(self): g = MGoogle(email, password) g.downloadTxt() unittest.main(verbosity=2)