diff --git a/docs/supportedsites.md b/docs/supportedsites.md
index 0bc38b32..21c2390b 100644
--- a/docs/supportedsites.md
+++ b/docs/supportedsites.md
@@ -184,7 +184,7 @@ Consider all listed sites to potentially be NSFW.
Eka's Portal |
https://aryion.com/ |
- Galleries, Posts, Tag Searches |
+ Favorites, Galleries, Posts, Tag Searches |
Supported |
diff --git a/gallery_dl/extractor/aryion.py b/gallery_dl/extractor/aryion.py
index 9fee58a0..17b780e2 100644
--- a/gallery_dl/extractor/aryion.py
+++ b/gallery_dl/extractor/aryion.py
@@ -79,22 +79,20 @@ class AryionExtractor(Extractor):
def metadata(self):
"""Return general metadata"""
- def _pagination_params(self, url, params=None, favorite_items=False):
+ 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 favorite_items == True:
- begin = "class='gallery-item favorite' id='"
- else:
- begin = "class='gallery-item' id='"
+ 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, begin, "'"):
+ for post_id in text.extract_iter(page, needle, "'"):
cnt += 1
yield post_id
@@ -203,19 +201,21 @@ class AryionGalleryExtractor(AryionExtractor):
url = "{}/g4/latest.php?name={}".format(self.root, self.user)
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 __init__(self, match):
- AryionExtractor.__init__(self, match)
-
def posts(self):
url = "{}/g4/favorites/{}".format(self.root, self.user)
- return self._pagination_params(url, favorite_items=True)
+ return self._pagination_params(
+ url, None, "class='gallery-item favorite' id='")
+
class AryionTagExtractor(AryionExtractor):
"""Extractor for tag searches on eka's portal"""
diff --git a/test/results/aryion.py b/test/results/aryion.py
index 8b91e342..113a4d95 100644
--- a/test/results/aryion.py
+++ b/test/results/aryion.py
@@ -31,7 +31,18 @@ __tests__ = (
},
{
- "#url" : "https://aryion.com/g4/tags.php?tag=star+wars&p=19",
+ "#url" : "https://aryion.com/g4/favorites/jameshoward",
+ "#category": ("", "aryion", "favorite"),
+ "#class" : aryion.AryionFavoriteExtractor,
+ "#range" : "1-10",
+ "#count" : 10,
+
+ "user" : "jameshoward",
+ "artist" : "re:^((?!jameshoward).)*$",
+},
+
+{
+ "#url" : "https://aryion.com/g4/tags.php?tag=star+wars&p=28",
"#category": ("", "aryion", "tag"),
"#class" : aryion.AryionTagExtractor,
"#count" : ">= 5",