diff options
| author | 2019-12-25 19:40:28 -0500 | |
|---|---|---|
| committer | 2019-12-25 19:40:28 -0500 | |
| commit | f9a1a9dcb7df977eeac9544786df9c0b93795815 (patch) | |
| tree | 8cb69cf7685da8d7e4deb7dc1d6b209098e1ddfb /gallery_dl/extractor/pixiv.py | |
| parent | 0c73e982fa596da07f23b377621ab894a9e64884 (diff) | |
New upstream version 1.12.1upstream/1.12.1
Diffstat (limited to 'gallery_dl/extractor/pixiv.py')
| -rw-r--r-- | gallery_dl/extractor/pixiv.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gallery_dl/extractor/pixiv.py b/gallery_dl/extractor/pixiv.py index d32f245..7901149 100644 --- a/gallery_dl/extractor/pixiv.py +++ b/gallery_dl/extractor/pixiv.py @@ -318,16 +318,22 @@ class PixivSearchExtractor(PixivExtractor): archive_fmt = "s_{search[word]}_{id}{num}.{extension}" directory_fmt = ("{category}", "search", "{search[word]}") pattern = (r"(?:https?://)?(?:www\.|touch\.)?pixiv\.net" - r"/search\.php\?([^#]+)") + r"/(?:(?:en/)?tags/([^/?&#]+)(?:/[^/?&#]+)?/?" + r"|search\.php)(?:\?([^#]+))?") test = ( + ("https://www.pixiv.net/en/tags/Original", { + "range": "1-10", + "count": 10, + }), + ("https://www.pixiv.net/en/tags/foo/artworks?order=date&s_mode=s_tag"), ("https://www.pixiv.net/search.php?s_mode=s_tag&word=Original"), ("https://touch.pixiv.net/search.php?word=Original"), ) def __init__(self, match): PixivExtractor.__init__(self, match) - self.query = match.group(1) - self.word = self.sort = self.target = None + self.word, self.query = match.groups() + self.sort = self.target = None def works(self): return self.api.search_illust(self.word, self.sort, self.target) @@ -335,9 +341,12 @@ class PixivSearchExtractor(PixivExtractor): def get_metadata(self, user=None): query = text.parse_query(self.query) - if "word" not in query: - raise exception.StopExtraction("Missing search term") - self.word = query["word"] + if self.word: + self.word = text.unquote(self.word) + else: + if "word" not in query: + raise exception.StopExtraction("Missing search term") + self.word = query["word"] sort = query.get("order", "date_d") sort_map = { |
