From 33d2ddd9fbe669b284d88d6c1421e07a7843a23d Mon Sep 17 00:00:00 2001 From: ClosedPort22 <44864697+ClosedPort22@users.noreply.github.com> Date: Sun, 18 Aug 2024 13:00:59 +0800 Subject: [PATCH] [wikimedia] add 'wiki' extractor --- gallery_dl/extractor/wikimedia.py | 16 ++++++++++++++++ test/results/fandom.py | 8 ++++++++ test/results/wikipedia.py | 8 ++++++++ 3 files changed, 32 insertions(+) diff --git a/gallery_dl/extractor/wikimedia.py b/gallery_dl/extractor/wikimedia.py index 29671cb6..9aaa88a5 100644 --- a/gallery_dl/extractor/wikimedia.py +++ b/gallery_dl/extractor/wikimedia.py @@ -193,3 +193,19 @@ class WikimediaArticleExtractor(WikimediaExtractor): def prepare(self, image): WikimediaExtractor.prepare(image) image["page"] = self.title + + +class WikimediaWikiExtractor(WikimediaExtractor): + """Extractor for all files on a MediaWiki instance""" + subcategory = "wiki" + pattern = BASE_PATTERN + r"/?$" + example = "https://en.wikipedia.org/" + + def __init__(self, match): + WikimediaExtractor.__init__(self, match) + + # ref: https://www.mediawiki.org/wiki/API:Allpages + self.params = { + "generator" : "allpages", + "gapnamespace": 6, # "File" namespace + } diff --git a/test/results/fandom.py b/test/results/fandom.py index c876a64c..69ce88d1 100644 --- a/test/results/fandom.py +++ b/test/results/fandom.py @@ -98,4 +98,12 @@ __tests__ = ( "#class" : wikimedia.WikimediaArticleExtractor, }, +{ + "#url" : "https://youtube.fandom.com", + "#category": ("wikimedia", "fandom-youtube", "wiki"), + "#class" : wikimedia.WikimediaWikiExtractor, + "#range" : "1-20", + "#count" : 20, +}, + ) diff --git a/test/results/wikipedia.py b/test/results/wikipedia.py index e8e8f694..f478a49d 100644 --- a/test/results/wikipedia.py +++ b/test/results/wikipedia.py @@ -50,4 +50,12 @@ __tests__ = ( "#class" : wikimedia.WikimediaArticleExtractor, }, +{ + "#url" : "https://en.wikipedia.org", + "#category": ("wikimedia", "wikipedia", "wiki"), + "#class" : wikimedia.WikimediaWikiExtractor, + "#range" : "1-10", + "#count" : 10, +}, + )