summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/kemonoparty.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2024-03-25 02:57:44 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2024-03-25 02:57:44 -0400
commit6e662211019a89caec44de8a57c675872b0b5498 (patch)
tree5d9d5a2b7efc3a24dd6074e99b253b639fe5af1d /gallery_dl/extractor/kemonoparty.py
parent01166fa52707cc282467427cf0e65c1b8983c4be (diff)
New upstream version 1.26.9.upstream/1.26.9
Diffstat (limited to 'gallery_dl/extractor/kemonoparty.py')
-rw-r--r--gallery_dl/extractor/kemonoparty.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/gallery_dl/extractor/kemonoparty.py b/gallery_dl/extractor/kemonoparty.py
index fd5a73a..9c77b7a 100644
--- a/gallery_dl/extractor/kemonoparty.py
+++ b/gallery_dl/extractor/kemonoparty.py
@@ -15,7 +15,7 @@ import itertools
import json
import re
-BASE_PATTERN = r"(?:https?://)?(?:www\.|beta\.)?(kemono|coomer)\.(party|su)"
+BASE_PATTERN = r"(?:https?://)?(?:www\.|beta\.)?(kemono|coomer)\.(su|party)"
USER_PATTERN = BASE_PATTERN + r"/([^/?#]+)/user/([^/?#]+)"
HASH_PATTERN = r"/[0-9a-f]{2}/[0-9a-f]{2}/([0-9a-f]{64})"
@@ -41,9 +41,12 @@ class KemonopartyExtractor(Extractor):
self.revisions = self.config("revisions")
if self.revisions:
self.revisions_unique = (self.revisions == "unique")
+ order = self.config("order-revisions")
+ self.revisions_reverse = order[0] in ("r", "a") if order else False
+
self._prepare_ddosguard_cookies()
self._find_inline = re.compile(
- r'src="(?:https?://(?:kemono|coomer)\.(?:party|su))?(/inline/[^"]+'
+ r'src="(?:https?://(?:kemono|coomer)\.(?:su|party))?(/inline/[^"]+'
r'|/[0-9a-f]{2}/[0-9a-f]{2}/[0-9a-f]{64}\.[^"]+)').findall
self._json_dumps = json.JSONEncoder(
ensure_ascii=False, check_circular=False,
@@ -232,6 +235,7 @@ class KemonopartyExtractor(Extractor):
except exception.HttpError:
post["revision_hash"] = self._revision_hash(post)
post["revision_index"] = 1
+ post["revision_count"] = 1
return (post,)
revs.insert(0, post)
@@ -247,22 +251,30 @@ class KemonopartyExtractor(Extractor):
uniq.append(rev)
revs = uniq
- idx = len(revs)
+ cnt = idx = len(revs)
for rev in revs:
rev["revision_index"] = idx
+ rev["revision_count"] = cnt
idx -= 1
+ if self.revisions_reverse:
+ revs.reverse()
+
return revs
def _revisions_all(self, url):
revs = self.request(url + "/revisions").json()
- idx = len(revs)
+ cnt = idx = len(revs)
for rev in revs:
rev["revision_hash"] = self._revision_hash(rev)
rev["revision_index"] = idx
+ rev["revision_count"] = cnt
idx -= 1
+ if self.revisions_reverse:
+ revs.reverse()
+
return revs
def _revision_hash(self, revision):