[wikimedia] generalize (#1443)

- support mediawiki.org
- support mariowiki.com (#3660)

- combine code into a single extractor
  (use prefix as subcategory)
- handle non-wiki instances
- unescape titles
This commit is contained in:
Mike Fährmann
2024-01-18 15:36:16 +01:00
parent 89066844f4
commit ea553a1d55
14 changed files with 126 additions and 47 deletions

19
test/results/mariowiki.py Normal file
View File

@@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import wikimedia
__tests__ = (
{
"#url" : "https://www.mariowiki.com/Rabbit",
"#category": ("wikimedia", "wikibooks", "article"),
"#class" : wikimedia.WikimediaArticleExtractor,
"#pattern" : r"https://mario\.wiki\.gallery/images/.+",
"#count" : range(20, 50),
},
)

24
test/results/mediawiki.py Normal file
View File

@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import wikimedia
__tests__ = (
{
"#url" : "https://www.mediawiki.org/wiki/Help:Navigation",
"#category": ("wikimedia", "mediawiki", "help"),
"#class" : wikimedia.WikimediaArticleExtractor,
"#urls" : (
"https://upload.wikimedia.org/wikipedia/commons/e/ec/OOjs_UI_icon_information-progressive.svg",
"https://upload.wikimedia.org/wikipedia/commons/6/62/PD-icon.svg",
"https://upload.wikimedia.org/wikipedia/commons/0/0e/Vector_Sidebar.png",
"https://upload.wikimedia.org/wikipedia/commons/7/77/Vector_page_tabs.png",
"https://upload.wikimedia.org/wikipedia/commons/6/6e/Vector_user_links.png",
),
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://en.wikibooks.org/wiki/Category:Title",
"#category": ("wikimedia", "wikibooks", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://commons.wikimedia.org/wiki/Category:Network_maps_of_the_Paris_Metro",
"#category": ("wikimedia", "wikimediacommons", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://en.wikinews.org/wiki/Category:Title",
"#category": ("wikimedia", "wikinews", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -47,7 +47,7 @@ __tests__ = (
{
"#url" : "https://en.wikipedia.org/wiki/Category:Physics",
"#category": ("wikimedia", "wikipedia", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://en.wikiquote.org/wiki/Category:Title",
"#category": ("wikimedia", "wikiquote", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://en.wikisource.org/wiki/Category:Title",
"#category": ("wikimedia", "wikisource", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -19,7 +19,7 @@ __tests__ = (
{
"#url" : "https://species.wikimedia.org/wiki/Category:Names",
"#category": ("wikimedia", "wikispecies", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://en.wikiversity.org/wiki/Category:Title",
"#category": ("wikimedia", "wikiversity", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)

View File

@@ -17,7 +17,7 @@ __tests__ = (
{
"#url" : "https://en.wiktionary.org/wiki/Category:Words",
"#category": ("wikimedia", "wiktionary", "category"),
"#class" : wikimedia.WikimediaCategoryExtractor,
"#class" : wikimedia.WikimediaArticleExtractor,
},
)