diff --git a/modules/twitter/pages.py b/modules/twitter/pages.py index 46968332..217a2f83 100644 --- a/modules/twitter/pages.py +++ b/modules/twitter/pages.py @@ -77,7 +77,7 @@ class LoginPage(HTMLPage): return True def get_me(self): - return Regexp(Link('//a[@data-nav="profile"]'), '/(.+)')(self.doc) + return Regexp(Link('//a[@data-nav="view_profile"]'), '/(.+)')(self.doc) class ThreadPage(HTMLPage): @@ -109,7 +109,7 @@ class ThreadPage(HTMLPage): '(.{50}|.+).+') obj_content = CleanText('./div/p', replace=[('@ ', '@'), ('# ', '#'), ('http:// ', 'http://')]) obj_sender = Regexp(Link('./div/div/a[@class="details with-icn js-details"]'), '/(.+)/status/.+') - obj_date = DatetimeFromTimestamp(Attr('./div/div[@class="stream-item-header"]/small/a/span', 'data-time')) + obj_date = DatetimeFromTimestamp(Attr('./div/div[@class="stream-item-header"]/small/a/span | ./div/div[@class="ProfileTweet-authorDetails"]/span/a/span', 'data-time')) class TrendsPage(TwitterJsonHTMLPage): @@ -130,18 +130,18 @@ class TimelineListElement(ListElement): def get_last_id(self): _el = self.page.doc.xpath('//*[@data-item-type="tweet"]/div')[-1] - return Regexp(Link('./div/div/a[@class="details with-icn js-details"]|./div/div/span/a[@class="ProfileTweet-timestamp js-permalink js-nav js-tooltip"]'), '/.+/status/(.+)')(_el) + return CleanText('./@data-tweet-id')(_el) class item(ItemElement): klass = Thread - obj_id = Regexp(Link('./div/div/a[@class="details with-icn js-details"]|./div/div/span/a[@class="ProfileTweet-timestamp js-permalink js-nav js-tooltip"]'), '/(.+)/status/(.+)', '\\1#\\2') + obj_id = Format('%s#%s', CleanText('./@data-screen-name'), CleanText('./@data-tweet-id')) obj_title = Format('%s \n\t %s', CleanText('./div/div[@class="stream-item-header"]/a|./div/div[@class="ProfileTweet-authorDetails"]/a', replace=[('@ ', '@'), ('# ', '#'), ('http:// ', 'http://')]), CleanText('./div/p', replace=[('@ ', '@'), ('# ', '#'), ('http:// ', 'http://')])) - obj_date = DatetimeFromTimestamp(Attr('./div/div[@class="stream-item-header"]/small/a/span|./div/div/span/a[@class="ProfileTweet-timestamp js-permalink js-nav js-tooltip"]/span', 'data-time')) + obj_date = DatetimeFromTimestamp(Attr('./div/div[@class="stream-item-header"]/small/a/span | ./div/div[@class="ProfileTweet-authorDetails"]/span/a/span', 'data-time')) class TimelinePage(TwitterJsonHTMLPage): diff --git a/modules/twitter/test.py b/modules/twitter/test.py index ac8351d4..a4de1b03 100644 --- a/modules/twitter/test.py +++ b/modules/twitter/test.py @@ -43,7 +43,7 @@ class TwitterTest(BackendTest): def test_ls_me(self): if self.backend.browser.username: - l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['me']), 0 ,20)) + l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['me']), 0, 20)) assert len(l) thread = self.backend.get_thread(l[0].id) assert len(thread.root.content) @@ -51,19 +51,19 @@ class TwitterTest(BackendTest): raise SkipTest("User credentials not defined") def test_ls_search(self): - l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['search', 'weboob']), 0 ,20)) + l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['search', 'weboob']), 0, 20)) assert len(l) thread = self.backend.get_thread(l[0].id) assert len(thread.root.content) def test_ls_hashtag(self): - l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['hashtags', 'weboob']), 0 ,20)) + l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['hashtags', 'weboob']), 0, 20)) assert len(l) thread = self.backend.get_thread(l[0].id) assert len(thread.root.content) def test_ls_profils(self): - l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['profils', 'jf_cope']), 0 ,20)) + l = list(itertools.islice(self.backend.iter_resources([BaseObject], ['profils', 'jf_cope']), 0, 20)) assert len(l) thread = self.backend.get_thread(l[0].id) assert len(thread.root.content) @@ -71,7 +71,7 @@ class TwitterTest(BackendTest): def test_ls_trend(self): l = list(self.backend.iter_resources([BaseObject], ['trendy'])) assert len(l) - l1 = list(itertools.islice(self.backend.iter_resources([BaseObject], ['trendy', u'%s' % l[0].split_path[0]]), 0 ,20)) + l1 = list(itertools.islice(self.backend.iter_resources([BaseObject], ['trendy', u'%s' % l[0].split_path[0]]), 0, 20)) assert len(l1) thread = self.backend.get_thread(l1[0].id) assert len(thread.root.content)