diff --git a/gallery_dl/extractor/idolcomplex.py b/gallery_dl/extractor/idolcomplex.py index 6da2aca6..a8f1298f 100644 --- a/gallery_dl/extractor/idolcomplex.py +++ b/gallery_dl/extractor/idolcomplex.py @@ -11,7 +11,8 @@ from . import sankaku BASE_PATTERN = (r"(?:https?://)?(?:www\.)?" - r"idol(?:\.sankaku)?complex\.com(?:/[a-z]{2})?") + r"idol(?:\.sankaku)?complex\.com" + r"(?:/[a-z]{2}(?:[-_][A-Z]{2})?)?") class IdolcomplexBase(): diff --git a/gallery_dl/extractor/sankaku.py b/gallery_dl/extractor/sankaku.py index 9fcde364..848ae96a 100644 --- a/gallery_dl/extractor/sankaku.py +++ b/gallery_dl/extractor/sankaku.py @@ -16,7 +16,7 @@ import collections BASE_PATTERN = r"(?:https?://)?" \ r"(?:(?:chan|www|beta|black|white)\.sankakucomplex\.com|sankaku\.app)" \ - r"(?:/[a-z]{2})?" + r"(?:/[a-z]{2}(?:[-_][A-Z]{2})?)?" class SankakuExtractor(BooruExtractor): diff --git a/test/results/idolcomplex.py b/test/results/idolcomplex.py index 703d4c4e..93b103df 100644 --- a/test/results/idolcomplex.py +++ b/test/results/idolcomplex.py @@ -18,6 +18,13 @@ __tests__ = ( "#count" : 5, }, +{ + "#url" : "https://www.idolcomplex.com/zh-CN/posts?tags=lyumos", + "#comment" : "locale code (ISO 639-1 + ISO 3166-1) (#8667)", + "#category": ("booru", "idolcomplex", "tag"), + "#class" : idolcomplex.IdolcomplexTagExtractor, +}, + { "#url" : "https://idolcomplex.com/posts?tags=lyumos", "#category": ("booru", "idolcomplex", "tag"), diff --git a/test/results/sankaku.py b/test/results/sankaku.py index ce76af64..8368c9af 100644 --- a/test/results/sankaku.py +++ b/test/results/sankaku.py @@ -49,12 +49,28 @@ __tests__ = ( { "#url" : "https://sankaku.app/ja?tags=order%3Apopularity", + "#comment" : "ISO 639-1", "#category": ("booru", "sankaku", "tag"), "#class" : sankaku.SankakuTagExtractor, }, { "#url" : "https://sankaku.app/no/?tags=order%3Apopularity", + "#comment" : "ISO 639-1 with trailing '/'", + "#category": ("booru", "sankaku", "tag"), + "#class" : sankaku.SankakuTagExtractor, +}, + +{ + "#url" : "https://sankaku.app/zh-CN/?tags=order%3Apopularity", + "#comment" : "locale code (ISO 639-1 + ISO 3166-1) (#8667)", + "#category": ("booru", "sankaku", "tag"), + "#class" : sankaku.SankakuTagExtractor, +}, + +{ + "#url" : "https://sankaku.app/zh_CN/?tags=order%3Apopularity", + "#comment" : "locale code (ISO 639-1 + ISO 3166-1) (#8667)", "#category": ("booru", "sankaku", "tag"), "#class" : sankaku.SankakuTagExtractor, },