[twitter] implement 'users' option (#1337)
This commit is contained in:
@@ -224,6 +224,18 @@ class TwitterExtractor(Extractor):
|
||||
}
|
||||
return cache[uid]
|
||||
|
||||
def _users_result(self, users):
|
||||
if self.config("users") == "media":
|
||||
cls = TwitterMediaExtractor
|
||||
fmt = "{}/id:{}/media".format
|
||||
else:
|
||||
cls = TwitterTimelineExtractor
|
||||
fmt = "{}/i/user/{}".format
|
||||
|
||||
for user in users:
|
||||
user["_extractor"] = cls
|
||||
yield Message.Queue, fmt(self.root, user["rest_id"]), user
|
||||
|
||||
def metadata(self):
|
||||
"""Return general metadata"""
|
||||
return {}
|
||||
@@ -356,10 +368,7 @@ class TwitterListMembersExtractor(TwitterExtractor):
|
||||
|
||||
def items(self):
|
||||
self.login()
|
||||
for user in TwitterAPI(self).list_members(self.user):
|
||||
user["_extractor"] = TwitterTimelineExtractor
|
||||
url = "{}/i/user/{}".format(self.root, user["rest_id"])
|
||||
yield Message.Queue, url, user
|
||||
return self._users_result(TwitterAPI(self).list_members(self.user))
|
||||
|
||||
|
||||
class TwitterFollowingExtractor(TwitterExtractor):
|
||||
@@ -373,10 +382,7 @@ class TwitterFollowingExtractor(TwitterExtractor):
|
||||
|
||||
def items(self):
|
||||
self.login()
|
||||
for user in TwitterAPI(self).user_following(self.user):
|
||||
user["_extractor"] = TwitterTimelineExtractor
|
||||
url = "{}/i/user/{}".format(self.root, user["rest_id"])
|
||||
yield Message.Queue, url, user
|
||||
return self._users_result(TwitterAPI(self).user_following(self.user))
|
||||
|
||||
|
||||
class TwitterSearchExtractor(TwitterExtractor):
|
||||
|
||||
Reference in New Issue
Block a user