[pawoo] fix extraction

- changed access_token
- use account-search instead of general search
pull/54/head
Mike Fährmann 7 years ago
parent b319f4bab3
commit 41adb99e9c
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -58,7 +58,7 @@ class ThreedeebooruPopularExtractor(ThreedeebooruExtractor,
pattern = [r"(?:https?://)?(?:www\.)?behoimi\.org/post/popular_" pattern = [r"(?:https?://)?(?:www\.)?behoimi\.org/post/popular_"
r"(by_(?:day|week|month)|recent)(?:\?([^#]*))?"] r"(by_(?:day|week|month)|recent)(?:\?([^#]*))?"]
test = [("http://behoimi.org/post/popular_by_month?month=2&year=2013", { test = [("http://behoimi.org/post/popular_by_month?month=2&year=2013", {
"url": "e5a75f8fa6cbe96109bceca25af3745a25102f3f", "url": "a447e115fdab60c25ab71c4fdb1b9f509bc23f99",
"count": 20, "count": 20,
})] })]

@ -39,7 +39,8 @@ class PawooExtractor(Extractor):
@staticmethod @staticmethod
def prepare(status): def prepare(status):
"""Prepare a status object""" """Prepare a status object"""
for key in ("favourites_count", "reblogs_count", "reblog", "mentions"): for key in ("favourites_count", "reblogs_count", "reblog", "mentions",
"favourited", "muted", "reblogged"):
del status[key] del status[key]
account = status["account"] account = status["account"]
for key in ("followers_count", "following_count", "statuses_count", for key in ("followers_count", "following_count", "statuses_count",
@ -57,7 +58,7 @@ class PawooUserExtractor(PawooExtractor):
test = [ test = [
("https://pawoo.net/@kuroda", { ("https://pawoo.net/@kuroda", {
"url": "a3f9e7555f2b024554c0e9b6cbcc7991af13cf99", "url": "a3f9e7555f2b024554c0e9b6cbcc7991af13cf99",
"keyword": "b8cde3b6c148a94a2d40d9a590fdae020a34aca5", "keyword": "2aca914a8cf312c4fb63084abbe348aef90e3dc3",
}), }),
("https://pawoo.net/@zZzZz/", { ("https://pawoo.net/@zZzZz/", {
"exception": exception.NotFoundError, "exception": exception.NotFoundError,
@ -69,8 +70,8 @@ class PawooUserExtractor(PawooExtractor):
self.account_name = match.group(1) self.account_name = match.group(1)
def statuses(self): def statuses(self):
results = self.api.search(self.account_name) results = self.api.account_search(self.account_name, 1)
for account in results["accounts"]: for account in results:
if account["username"] == self.account_name[1:]: if account["username"] == self.account_name[1:]:
break break
else: else:
@ -85,7 +86,7 @@ class PawooStatusExtractor(PawooExtractor):
test = [ test = [
("https://pawoo.net/@takehana_note/559043", { ("https://pawoo.net/@takehana_note/559043", {
"url": "f95cc8c0274c4143e7e21dbdc693b90c65b596e3", "url": "f95cc8c0274c4143e7e21dbdc693b90c65b596e3",
"keyword": "7d060d9c4572b381aa423797ad48d89a12daac77", "keyword": "5cbd6ca68fe6efd679fcccf2bc1a7f3ee7573352",
"content": "3b148cf90174173355fe34179741ce476921b2fc", "content": "3b148cf90174173355fe34179741ce476921b2fc",
}), }),
("https://pawoo.net/@zZzZz/12346", { ("https://pawoo.net/@zZzZz/12346", {
@ -109,25 +110,18 @@ class MastodonAPI():
""" """
def __init__(self, extractor, root="https://pawoo.net", def __init__(self, extractor, root="https://pawoo.net",
access_token=("0f04191976cf22a5319c1e91a73cbcb2" access_token=("286462927198d0cf3e24683e91c8259a"
"510b589e2757efcca922f9b3173d119b")): "ac4367233064e0570ca18df2ac65b226")):
access_token = extractor.config("access-token", access_token) access_token = extractor.config("access-token", access_token)
self.session = extractor.session self.session = extractor.session
self.session.headers["Authorization"] = "Bearer " + access_token self.session.headers["Authorization"] = "Bearer " + access_token
self.root = root self.root = root
def search(self, searchterm): def account_search(self, query, limit=40):
"""Search for content""" """Search for content"""
response = self.session.get( response = self.session.get(
self.root + "/api/v1/search", self.root + "/api/v1/accounts/search",
params={"q": searchterm}, params={"q": query, "limit": limit},
)
return self._parse(response)
def status(self, status_id):
"""Fetch a Status"""
response = self.session.get(
self.root + "/api/v1/statuses/" + status_id
) )
return self._parse(response) return self._parse(response)
@ -140,6 +134,13 @@ class MastodonAPI():
yield from self._parse(response) yield from self._parse(response)
url = response.links.get("next", {}).get("url") url = response.links.get("next", {}).get("url")
def status(self, status_id):
"""Fetch a Status"""
response = self.session.get(
self.root + "/api/v1/statuses/" + status_id
)
return self._parse(response)
@staticmethod @staticmethod
def _parse(response): def _parse(response):
"""Parse an API response""" """Parse an API response"""

@ -67,8 +67,6 @@ skip = [
"archivedmoe", "archiveofsins", "thebarchive", "archivedmoe", "archiveofsins", "thebarchive",
# temporary issues # temporary issues
"imgtrex", "imgtrex",
"luscious", # "high load"
"pawoo",
] ]
# enable selective testing for direct calls # enable selective testing for direct calls
if __name__ == '__main__' and len(sys.argv) > 1: if __name__ == '__main__' and len(sys.argv) > 1:

Loading…
Cancel
Save