[feedly] fix feedly login

This commit is contained in:
Bezleputh 2015-06-23 15:47:09 +02:00
commit ec22de45ad
4 changed files with 13 additions and 6 deletions

View file

@ -28,9 +28,9 @@ __all__ = ['FeedlyBrowser']
class FeedlyBrowser(LoginBrowser): class FeedlyBrowser(LoginBrowser):
BASEURL = 'http://www.feedly.com/' BASEURL = 'https://www.feedly.com/'
essentials = URL('http://s3.feedly.com/essentials/essentials_fr.json', EssentialsPage) essentials = URL('https://s3.feedly.com/essentials/essentials_fr.json', EssentialsPage)
token = URL('v3/auth/token', TokenPage) token = URL('v3/auth/token', TokenPage)
contents = URL('v3/streams/contents', ContentsPage) contents = URL('v3/streams/contents', ContentsPage)
preferences = URL('v3/preferences', PreferencesPage) preferences = URL('v3/preferences', PreferencesPage)

View file

@ -26,17 +26,19 @@ from weboob.exceptions import BrowserIncorrectPassword
class GoogleLoginPage(LoggedPage, HTMLPage): class GoogleLoginPage(LoggedPage, HTMLPage):
def login(self, login, passwd): def login(self, login, passwd):
form = self.get_form('//form[@id="gaia_loginform"]') form = self.get_form('//form[@id="gaia_loginform"]', submit='//input[@id="signIn"]')
form['Email'] = login form['Email'] = login
form['Passwd'] = passwd form['Passwd'] = passwd
form.submit() form.submit()
class GoogleBrowser(LoginBrowser): class GoogleBrowser(LoginBrowser):
BASEURL = 'https://accounts.google.com' BASEURL = 'https://accounts.google.com/'
code = None code = None
google_login = URL('https://accounts.google.com/(?P<auth>.+)', GoogleLoginPage) google_login = URL('https://accounts.google.com/(?P<auth>.+)',
'AccountLoginInfo',
GoogleLoginPage)
def __init__(self, username, password, redirect_uri, *args, **kwargs): def __init__(self, username, password, redirect_uri, *args, **kwargs):
super(GoogleBrowser, self).__init__(username, password, *args, **kwargs) super(GoogleBrowser, self).__init__(username, password, *args, **kwargs)
@ -50,6 +52,9 @@ class GoogleBrowser(LoginBrowser):
queryString = "&".join([key+'='+value for key, value in params.items()]) queryString = "&".join([key+'='+value for key, value in params.items()])
self.google_login.go(auth='o/oauth2/auth', params=queryString).login(self.username, self.password) self.google_login.go(auth='o/oauth2/auth', params=queryString).login(self.username, self.password)
if self.google_login.is_here():
self.page.login(self.username, self.password)
try: try:
self.code = parse_qs(urlparse(self.url).query).get('code')[0] self.code = parse_qs(urlparse(self.url).query).get('code')[0]
except: except:

View file

@ -74,6 +74,7 @@ class FeedlyModule(Module, CapMessages, CapCollection):
if article.id == id: if article.id == id:
entry = article entry = article
if entry is None: if entry is None:
return None return None
if thread.id not in self.storage.get('seen', default=[]): if thread.id not in self.storage.get('seen', default=[]):
@ -107,7 +108,7 @@ class FeedlyModule(Module, CapMessages, CapCollection):
if username: if username:
password = self.config['password'].get() password = self.config['password'].get()
login_browser = GoogleBrowser(username, password, login_browser = GoogleBrowser(username, password,
'https://feedly.com/v3/auth/callback&scope=profile+email&state=Ak7fo397ImkiOiJmZWVkbHkiLCJyIjoiaHR0cDovL2ZlZWRseS5jb20vZmVlZGx5Lmh0bWwiLCJwIjoiR29vZ)2xlUGx1cyIsImMiOiJmZWVkbHkuZGVza3RvcCAyMC40Ljc3NSJ9') 'https://feedly.com/v3/auth/callback&scope=profile+email&state=Amm-1gV7ImkiOiJmZWVkbHkiLCJycCI6IndlbGNvbWUiLCJyIjoiaHR0cDovL2ZlZWRseS5jb20vZmVlZGx5Lmh0bWwiLCJwIjoiR29vZ2xlUGx1cyIsImMiOiJmZWVkbHkuZGVza3RvcCAyOC4wLjk1NSJ9')
else: else:
password = None password = None
login_browser = None login_browser = None

View file

@ -88,5 +88,6 @@ class PreferencesPage(LoggedPage, JsonPage):
if value in [u"shown", u"hidden"]: if value in [u"shown", u"hidden"]:
yield Collection([u'%s' % category], u'%s' % category.replace('global.', '')) yield Collection([u'%s' % category], u'%s' % category.replace('global.', ''))
class MarkerPage(LoggedPage): class MarkerPage(LoggedPage):
pass pass