2010-01-15 21:07:19
今日は、Google Docsの全ファイルを検索する。
#!/usr/bin/python
import gdata.docs.service, hashlib
import sys, os, re
def truncate(content, length=15, suffix='...'):
if len(content) <= length:
return content
else:
return content[:length] + suffix
client = gdata.docs.service.DocsService()
client.ClientLogin('name@gmail.com', 'password')
keyword = sys.argv[1]
query = gdata.docs.service.DocumentQuery(text_query=keyword)
feed = client.Query(query.ToUri())
if not feed.entry:
print 'No entries in feed.\n'
print 'TITLE\tFILE TYPE\tRESOURCE ID'
for entry in feed.entry:
print entry.title.text + '\t' + entry.GetDocumentType() + '\t'\\
+ entry.resourceId.text
ここで\\は本来は改行しない箇所を意味している。gdata-2.0.6に入っているsample.pyに書いてあるような結果表示にすると、日本語のファイル名などあるとエラーになるので、数えて位置を合わせたりするのをやめる。これを、gdoc_search.pyとして保存し、
$ python gdoc_search.py セットなどとすると、
TITLE FILE TYPE RESOURCE ID 秘密のファイル document document:0Axxxxxxx LB1000Layout spreadsheet spreadsheet:0Axxxxxxxなどと結果が返ってくる。日本語の文字列も問題なく検索できた。フォルダの扱い方などはまだよく判らない。