summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/hitomi.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2022-01-25 20:10:48 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2022-01-25 20:10:48 -0500
commit8a812de1450d5d53fc1cd9a59f6c3f08452fc5b1 (patch)
tree8dc998621e167fb99f5e743857d8495daac2f6cd /gallery_dl/extractor/hitomi.py
parent8de58070ee3e55f29966a787fd618632dbf4309b (diff)
New upstream version 1.20.3.upstream/1.20.3
Diffstat (limited to 'gallery_dl/extractor/hitomi.py')
-rw-r--r--gallery_dl/extractor/hitomi.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/gallery_dl/extractor/hitomi.py b/gallery_dl/extractor/hitomi.py
index ce6c7ce..e132bf9 100644
--- a/gallery_dl/extractor/hitomi.py
+++ b/gallery_dl/extractor/hitomi.py
@@ -159,6 +159,7 @@ class HitomiTagExtractor(Extractor):
"""Extractor for galleries from tag searches on hitomi.la"""
category = "hitomi"
subcategory = "tag"
+ root = "https://hitomi.la"
pattern = (r"(?:https?://)?hitomi\.la/"
r"(tag|artist|group|series|type|character)/"
r"([^/?#]+)\.html")
@@ -183,12 +184,29 @@ class HitomiTagExtractor(Extractor):
self.tag = tag
def items(self):
- url = "https://ltn.hitomi.la/{}/{}.nozomi".format(self.type, self.tag)
data = {"_extractor": HitomiGalleryExtractor}
+ nozomi_url = "https://ltn.hitomi.la/{}/{}.nozomi".format(
+ self.type, self.tag)
+ headers = {
+ "Origin": self.root,
+ "Cache-Control": "max-age=0",
+ }
- for gallery_id in decode_nozomi(self.request(url).content):
- url = "https://hitomi.la/galleries/{}.html".format(gallery_id)
- yield Message.Queue, url, data
+ offset = 0
+ while True:
+ headers["Referer"] = "{}/{}/{}.html?page={}".format(
+ self.root, self.type, self.tag, offset // 100 + 1)
+ headers["Range"] = "bytes={}-{}".format(offset, offset+99)
+ nozomi = self.request(nozomi_url, headers=headers).content
+
+ for gallery_id in decode_nozomi(nozomi):
+ gallery_url = "{}/galleries/{}.html".format(
+ self.root, gallery_id)
+ yield Message.Queue, gallery_url, data
+
+ if len(nozomi) < 100:
+ return
+ offset += 100
@memcache()