summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/wikimedia.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/wikimedia.py')
-rw-r--r--gallery_dl/extractor/wikimedia.py55
1 files changed, 23 insertions, 32 deletions
diff --git a/gallery_dl/extractor/wikimedia.py b/gallery_dl/extractor/wikimedia.py
index 1eafc29..c93f33f 100644
--- a/gallery_dl/extractor/wikimedia.py
+++ b/gallery_dl/extractor/wikimedia.py
@@ -25,15 +25,14 @@ class WikimediaExtractor(BaseExtractor):
BaseExtractor.__init__(self, match)
path = match.group(match.lastindex)
- if self.category == "fandom":
+ if self.category == "wikimedia":
+ self.category = self.root.split(".")[-2]
+ elif self.category == "fandom":
self.category = \
"fandom-" + self.root.partition(".")[0].rpartition("/")[2]
if path.startswith("wiki/"):
path = path[5:]
- self.api_path = "/w/api.php"
- else:
- self.api_path = "/api.php"
pre, sep, _ = path.partition(":")
prefix = pre.lower() if sep else None
@@ -66,7 +65,7 @@ class WikimediaExtractor(BaseExtractor):
else:
self.api_url = api_path
else:
- self.api_url = self.root + self.api_path
+ self.api_url = self.root + "/api.php"
def items(self):
for info in self._pagination(self.params):
@@ -122,55 +121,47 @@ class WikimediaExtractor(BaseExtractor):
BASE_PATTERN = WikimediaExtractor.update({
- "wikipedia": {
- "root": None,
- "pattern": r"[a-z]{2,}\.wikipedia\.org",
- },
- "wiktionary": {
- "root": None,
- "pattern": r"[a-z]{2,}\.wiktionary\.org",
- },
- "wikiquote": {
- "root": None,
- "pattern": r"[a-z]{2,}\.wikiquote\.org",
- },
- "wikibooks": {
+ "wikimedia": {
"root": None,
- "pattern": r"[a-z]{2,}\.wikibooks\.org",
- },
- "wikisource": {
- "root": None,
- "pattern": r"[a-z]{2,}\.wikisource\.org",
- },
- "wikinews": {
- "root": None,
- "pattern": r"[a-z]{2,}\.wikinews\.org",
- },
- "wikiversity": {
- "root": None,
- "pattern": r"[a-z]{2,}\.wikiversity\.org",
+ "pattern": r"[a-z]{2,}\."
+ r"wik(?:i(?:pedia|quote|books|source|news|versity|data"
+ r"|voyage)|tionary)"
+ r"\.org",
+ "api-path": "/w/api.php",
},
"wikispecies": {
"root": "https://species.wikimedia.org",
"pattern": r"species\.wikimedia\.org",
+ "api-path": "/w/api.php",
},
"wikimediacommons": {
"root": "https://commons.wikimedia.org",
"pattern": r"commons\.wikimedia\.org",
+ "api-path": "/w/api.php",
},
"mediawiki": {
"root": "https://www.mediawiki.org",
"pattern": r"(?:www\.)?mediawiki\.org",
+ "api-path": "/w/api.php",
},
"fandom": {
"root": None,
"pattern": r"[\w-]+\.fandom\.com",
- "api-path": "/api.php",
},
"mariowiki": {
"root": "https://www.mariowiki.com",
"pattern": r"(?:www\.)?mariowiki\.com",
},
+ "bulbapedia": {
+ "root": "https://bulbapedia.bulbagarden.net",
+ "pattern": r"(?:bulbapedia|archives)\.bulbagarden\.net",
+ "api-path": "/w/api.php",
+ },
+ "pidgiwiki": {
+ "root": "https://www.pidgi.net",
+ "pattern": r"(?:www\.)?pidgi\.net",
+ "api-path": "/wiki/api.php",
+ },
})