diff --git a/gallery_dl/extractor/kemonoparty.py b/gallery_dl/extractor/kemonoparty.py index 76e940c7..631ba266 100644 --- a/gallery_dl/extractor/kemonoparty.py +++ b/gallery_dl/extractor/kemonoparty.py @@ -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,) diff --git a/test/results/kemonoparty.py b/test/results/kemonoparty.py index 06f62c82..ad94a496 100644 --- a/test/results/kemonoparty.py +++ b/test/results/kemonoparty.py @@ -169,13 +169,14 @@ __tests__ = ( }, { - "#url" : "https://kemono.party/patreon/user/3161935/post/68231671/revision/134996", + "#url" : "https://kemono.su/patreon/user/3161935/post/68231671/revision/142470", "#comment" : "revisions (#4498)", "#category": ("", "kemonoparty", "patreon"), "#class" : kemonoparty.KemonopartyPostExtractor, - "#urls" : "https://kemono.party/data/88/52/88521f71822dfa2f42df3beba319ea4fceda2a2d6dc59da0276a75238f743f86.jpg", + "#urls" : "https://kemono.su/data/88/52/88521f71822dfa2f42df3beba319ea4fceda2a2d6dc59da0276a75238f743f86.jpg", - "revision_id": 134996, + "revision_id": 142470, + "revision_index": 2, }, { @@ -188,6 +189,7 @@ __tests__ = ( "#archive" : False, "revision_id": range(134996, 3052965), + "revision_index": range(1, 9), },