From ded44671dedce25ec6ed64f712a2fd9aac36beb9 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 4 Aug 2009 07:52:31 +0200 Subject: [PATCH] add methods to retrieve starred items --- reader.py | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/reader.py b/reader.py index ced9ae6..7fcfeb8 100644 --- a/reader.py +++ b/reader.py @@ -12,21 +12,49 @@ class GoogleReader: def __init__(self, login, password): self.login = login self.password = password - self.authurl = "https://www.google.com/accounts/ClientLogin" - self.re_auth = re.compile("Auth=") + self.auth_url = "https://www.google.com/accounts/ClientLogin" + self.re_auth = re.compile("SID=") self.sid = self.authenticate(self.login,self.password) + self.header = {} + self.header = self.create_header(self.header,self.sid) def authenticate(self,login,password): ''' method to authenticate to google''' - parameters = {'Email' : login,'Passwd' : password,'accountType' : 'HOSTED_OR_GOOGLE', - 'service' : 'reader', 'source' : 'googlereader2instapaper' } + parameters = { 'Email' : login, + 'Passwd' : password, + 'accountType' : 'HOSTED_OR_GOOGLE', + 'service' : 'reader', + 'source' : 'googlereader2instapaper', + 'continue': 'http://www.google.com' } headerdata = urllib.urlencode(parameters) try: - request = urllib2.Request(self.authurl, headerdata) + request = urllib2.Request(self.auth_url, headerdata) response = urllib2.urlopen(request).read().split("\n") for r in response: if self.re_auth.match(r): return r.split("=")[1] except IOError, e: print e - return -1 \ No newline at end of file + return -1 + + def create_header(self, header, sid): + ''' Method to create the header which is used afterwards for authentication ''' + header = {'User-agent' : 'python'} + header['Cookie'] = 'Name=SID;SID=%s;Domain=.google.com;Path=/;Expires=160000000000' % sid + return header + + def get_starred_items(self,header,sid=False): + ''' method to get starred items from google reader ''' + if sid: + id = sid + else: + id = self.sid + starred_url = "http://www.google.com/reader/atom/user/-/state/com.google/starred" + try: + request = urllib2.Request(starred_url, None, header) + response = urllib2.urlopen(request).read() + return response + except IOError, e: + print e + return -1 + \ No newline at end of file