aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/aryion.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/aryion.py')
-rw-r--r--gallery_dl/extractor/aryion.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/gallery_dl/extractor/aryion.py b/gallery_dl/extractor/aryion.py
index ec86263..17b780e 100644
--- a/gallery_dl/extractor/aryion.py
+++ b/gallery_dl/extractor/aryion.py
@@ -79,18 +79,20 @@ class AryionExtractor(Extractor):
def metadata(self):
"""Return general metadata"""
- def _pagination_params(self, url, params=None):
+ def _pagination_params(self, url, params=None, needle=None):
if params is None:
params = {"p": 1}
else:
params["p"] = text.parse_int(params.get("p"), 1)
+ if needle is None:
+ needle = "class='gallery-item' id='"
+
while True:
page = self.request(url, params=params).text
cnt = 0
- for post_id in text.extract_iter(
- page, "class='gallery-item' id='", "'"):
+ for post_id in text.extract_iter(page, needle, "'"):
cnt += 1
yield post_id
@@ -200,6 +202,21 @@ class AryionGalleryExtractor(AryionExtractor):
return util.advance(self._pagination_next(url), self.offset)
+class AryionFavoriteExtractor(AryionExtractor):
+ """Extractor for a user's favorites gallery"""
+ subcategory = "favorite"
+ directory_fmt = ("{category}", "{user!l}", "favorites")
+ archive_fmt = "f_{user}_{id}"
+ categorytransfer = True
+ pattern = BASE_PATTERN + r"/favorites/([^/?#]+)"
+ example = "https://aryion.com/g4/favorites/USER"
+
+ def posts(self):
+ url = "{}/g4/favorites/{}".format(self.root, self.user)
+ return self._pagination_params(
+ url, None, "class='gallery-item favorite' id='")
+
+
class AryionTagExtractor(AryionExtractor):
"""Extractor for tag searches on eka's portal"""
subcategory = "tag"