From 58ccde36452e198d150b07dfcd7a95d47b0558d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 15 Dec 2025 21:45:03 +0100 Subject: [PATCH] [aryion:favorite] support 'category' URLs (#8705) --- gallery_dl/extractor/aryion.py | 32 +++++++++++++++++--------------- test/results/aryion.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 15 deletions(-) diff --git a/gallery_dl/extractor/aryion.py b/gallery_dl/extractor/aryion.py index 8dbd8c86..2f862379 100644 --- a/gallery_dl/extractor/aryion.py +++ b/gallery_dl/extractor/aryion.py @@ -200,10 +200,10 @@ class AryionGalleryExtractor(AryionExtractor): class AryionFavoriteExtractor(AryionExtractor): """Extractor for a user's favorites gallery""" subcategory = "favorite" - directory_fmt = ("{category}", "{user!l}", "favorites") + directory_fmt = ("{category}", "{user!l}", "favorites", "{folder}") archive_fmt = "f_{user}_{id}" categorytransfer = True - pattern = rf"{BASE_PATTERN}/favorites/([^/?#]+)" + pattern = rf"{BASE_PATTERN}/favorites/([^/?#]+)(?:/([^?#]+))?" example = "https://aryion.com/g4/favorites/USER" def _init(self): @@ -211,11 +211,17 @@ class AryionFavoriteExtractor(AryionExtractor): def posts(self): url = f"{self.root}/g4/favorites/{self.user}" - return self._pagination(url) + return self._pagination(url, self.groups[1]) + + def _pagination(self, url, folder=None): + if folder is None: + self.kwdict["folder"] = "" + else: + url = f"{url}/{folder}" + self.kwdict["folder"] = folder = text.unquote(folder) + self.log.debug("Descending into folder '%s'", folder) - def _pagination(self, url): params = {"p": 1} - while True: page = self.request(url, params=params).text @@ -224,24 +230,20 @@ class AryionFavoriteExtractor(AryionExtractor): page, "