[kemonoparty] add 'revision_index' metadata field (#4727)

This commit is contained in:
Mike Fährmann
2023-10-26 22:26:38 +02:00
parent 3bbaa875f1
commit d0effcae20
2 changed files with 19 additions and 7 deletions

View File

@@ -219,7 +219,14 @@ class KemonopartyExtractor(Extractor):
@memcache(keyarg=1)
def _post_revisions(self, url):
return self.request(url + "/revisions").json()
revs = self.request(url + "/revisions").json()
idx = len(revs)
for rev in revs:
rev["revision_index"] = idx
idx -= 1
return revs
def _validate(response):
@@ -253,13 +260,15 @@ class KemonopartyUserExtractor(KemonopartyExtractor):
if revisions:
for post in posts:
post["revision_id"] = 0
yield post
post_url = "{}/post/{}".format(self.api_url, post["id"])
try:
revs = self._post_revisions(post_url)
except exception.HttpError:
pass
post["revision_index"] = 1
yield post
else:
post["revision_index"] = len(revs) + 1
yield post
yield from revs
else:
yield from posts
@@ -292,8 +301,9 @@ class KemonopartyPostExtractor(KemonopartyExtractor):
try:
revs = self._post_revisions(self.api_url)
except exception.HttpError:
pass
post["revision_index"] = 1
else:
post["revision_index"] = len(revs) + 1
return itertools.chain((post,), revs)
return (post,)