From faca32a850f7d186b454db1aae113a3a7644661b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 19 Apr 2023 20:09:11 +0200 Subject: [PATCH] =?UTF-8?q?[sankaku]=20sanitize=20'date:=E2=80=A6'=20tags?= =?UTF-8?q?=20(#1790)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gallery_dl/extractor/sankaku.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gallery_dl/extractor/sankaku.py b/gallery_dl/extractor/sankaku.py index ea4cf43e..789c63d6 100644 --- a/gallery_dl/extractor/sankaku.py +++ b/gallery_dl/extractor/sankaku.py @@ -13,6 +13,7 @@ from .common import Message from .. import text, util, exception from ..cache import cache import collections +import re BASE_PATTERN = r"(?:https?://)?" \ r"(?:(?:chan|beta|black|white)\.sankakucomplex\.com|sankaku\.app)" \ @@ -101,6 +102,11 @@ class SankakuTagExtractor(SankakuExtractor): # match arbitrary query parameters ("https://chan.sankakucomplex.com" "/?tags=marie_rose&page=98&next=3874906&commit=Search"), + # 'date:' tags (#1790) + ("https://chan.sankakucomplex.com/?tags=date:2023-03-20", { + "range": "1", + "count": 1, + }), ) def __init__(self, match): @@ -108,6 +114,15 @@ class SankakuTagExtractor(SankakuExtractor): query = text.parse_query(match.group(1)) self.tags = text.unquote(query.get("tags", "").replace("+", " ")) + if "date:" in self.tags: + # rewrite 'date:' tags (#1790) + self.tags = re.sub( + r"date:(\d\d)[.-](\d\d)[.-](\d\d\d\d)", + r"date:\3.\2.\1", self.tags) + self.tags = re.sub( + r"date:(\d\d\d\d)[.-](\d\d)[.-](\d\d)", + r"date:\1.\2.\3", self.tags) + def metadata(self): return {"search_tags": self.tags}