Google Data API

Sep 22, 2007 15:14

Поюзал сабж для питона... Очень порадовало оно меня... Особенно хорошо что можно быстро сделать автоматизированно что то с информацией в календаре написав буквально 20-30 строчек кода... Когда эвентов много это может быть полезно. Буду заносить инфу в календарь а потом выдеру скриптом и соберу статистику....
Написал консольную смотрелку расписания и добавил себе в PATH. Настроил alias c логином и паролем. Теперь пишу в консоли gcal и вижу расписание на ближайщие дни... Удобно...
Использует Google Calendar Data API
Python Client Library
И ElementTree - Нужен для PCL
iso8601.py

Ну и сам код:

from elementtree import ElementTree
import gdata.calendar.service
import gdata.service
import atom.service
import gdata.calendar
import iso8601
import datetime
from sys import argv,exit
from os.path import basename

class Calendar(object):
def __init__(self, email, password):
self.cal_client = gdata.calendar.service.CalendarService()
self.cal_client.email = email
self.cal_client.password = password
self.cal_client.source = 'Google Calendar Python'
self.cal_client.ProgrammaticLogin()

def getUpcomingEvents(self):
query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
query.start_min = datetime.datetime.today().date().isoformat()
feed = self.cal_client.CalendarQuery(query)
entry=feed.entry
entry.sort(lambda a,b: cmp(*[i.when[0].start_time for i in (a,b)] ))
get_time = lambda x:iso8601.parse_date(x.when[0].start_time).strftime('%c')
return [(get_time(i),i.title.text) for i in entry]

if __name__=='__main__':
if len(argv) < 3:
print "Usage:%s username password" % basename(argv[0])
exit()

cal=calendar.Calendar(*argv[1:])
print "\n".join(map(lambda x: "%s\t%s" % x, cal.getUpcomingEvents()))

google calendar, api, python, console

Next post
Up