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, "