diff --git a/docs/supportedsites.md b/docs/supportedsites.md
index e7662ee9..1ad1a8fe 100644
--- a/docs/supportedsites.md
+++ b/docs/supportedsites.md
@@ -148,7 +148,7 @@ Consider all sites to be NSFW unless otherwise known.
Eka's Portal |
https://aryion.com/ |
- Galleries, Posts |
+ Galleries, Posts, Tag Searches |
Supported |
diff --git a/gallery_dl/extractor/aryion.py b/gallery_dl/extractor/aryion.py
index 0d0ad701..8ba6194d 100644
--- a/gallery_dl/extractor/aryion.py
+++ b/gallery_dl/extractor/aryion.py
@@ -56,10 +56,13 @@ class AryionExtractor(Extractor):
def items(self):
self.login()
+ data = self.metadata()
for post_id in self.posts():
post = self._parse_post(post_id)
if post:
+ if data:
+ post.update(data)
yield Message.Directory, post
yield Message.Url, post["url"], post
elif post is False and self.recursive:
@@ -71,6 +74,9 @@ class AryionExtractor(Extractor):
def posts(self):
"""Yield relevant post IDs"""
+ def metadata(self):
+ """Return general metadata"""
+
def _pagination(self, url):
while True:
page = self.request(url).text
@@ -187,6 +193,25 @@ class AryionGalleryExtractor(AryionExtractor):
return util.advance(self._pagination(url), self.offset)
+class AryionTagExtractor(AryionExtractor):
+ """Extractor for tag searches on eka's portal"""
+ subcategory = "tag"
+ directory_fmt = ("{category}", "tags", "{search_tags}")
+ archive_fmt = "t_{search_tags}_{id}"
+ pattern = BASE_PATTERN + r"/tags\.php\?([^#]+)"
+ test = ("https://aryion.com/g4/tags.php?tag=star+wars&p=18", {
+ "count": ">= 5",
+ })
+
+ def metadata(self):
+ return {"search_tags": text.parse_query(self.user).get("tag")}
+
+ def posts(self):
+ url = "{}/g4/tags.php?{}".format(self.root, self.user)
+ self.user = None
+ return self._pagination(url)
+
+
class AryionPostExtractor(AryionExtractor):
"""Extractor for individual posts on eka's portal"""
subcategory = "post"