From ec22de45adfc8bd69847835129f1d15b25cb3573 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Tue, 23 Jun 2015 15:47:09 +0200 Subject: [PATCH] [feedly] fix feedly login --- modules/feedly/browser.py | 4 ++-- modules/feedly/google.py | 11 ++++++++--- modules/feedly/module.py | 3 ++- modules/feedly/pages.py | 1 + 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/modules/feedly/browser.py b/modules/feedly/browser.py index 4d8dbe4d..eaed11ee 100644 --- a/modules/feedly/browser.py +++ b/modules/feedly/browser.py @@ -28,9 +28,9 @@ __all__ = ['FeedlyBrowser'] 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) contents = URL('v3/streams/contents', ContentsPage) preferences = URL('v3/preferences', PreferencesPage) diff --git a/modules/feedly/google.py b/modules/feedly/google.py index 399846f5..6361c867 100644 --- a/modules/feedly/google.py +++ b/modules/feedly/google.py @@ -26,17 +26,19 @@ from weboob.exceptions import BrowserIncorrectPassword class GoogleLoginPage(LoggedPage, HTMLPage): 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['Passwd'] = passwd form.submit() class GoogleBrowser(LoginBrowser): - BASEURL = 'https://accounts.google.com' + BASEURL = 'https://accounts.google.com/' code = None - google_login = URL('https://accounts.google.com/(?P.+)', GoogleLoginPage) + google_login = URL('https://accounts.google.com/(?P.+)', + 'AccountLoginInfo', + GoogleLoginPage) def __init__(self, username, password, redirect_uri, *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()]) 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: self.code = parse_qs(urlparse(self.url).query).get('code')[0] except: diff --git a/modules/feedly/module.py b/modules/feedly/module.py index b068cc6b..dd43357f 100644 --- a/modules/feedly/module.py +++ b/modules/feedly/module.py @@ -74,6 +74,7 @@ class FeedlyModule(Module, CapMessages, CapCollection): if article.id == id: entry = article if entry is None: + return None if thread.id not in self.storage.get('seen', default=[]): @@ -107,7 +108,7 @@ class FeedlyModule(Module, CapMessages, CapCollection): if username: password = self.config['password'].get() 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: password = None login_browser = None diff --git a/modules/feedly/pages.py b/modules/feedly/pages.py index 0e6a859f..693e74a7 100644 --- a/modules/feedly/pages.py +++ b/modules/feedly/pages.py @@ -88,5 +88,6 @@ class PreferencesPage(LoggedPage, JsonPage): if value in [u"shown", u"hidden"]: yield Collection([u'%s' % category], u'%s' % category.replace('global.', '')) + class MarkerPage(LoggedPage): pass