[wikimedia] implement config lookup for fandom/wikigg sites (#7283)
{
"extractor": {
"fandom": {
"filename": "..."
}
}
}
This commit is contained in:
@@ -961,6 +961,7 @@ class AsynchronousMixin():
|
||||
|
||||
|
||||
class BaseExtractor(Extractor):
|
||||
basesubcategory = ""
|
||||
instances = ()
|
||||
|
||||
def __init__(self, match):
|
||||
|
||||
@@ -180,6 +180,7 @@ class E621FavoriteExtractor(E621Extractor):
|
||||
class E621FrontendExtractor(Extractor):
|
||||
"""Extractor for alternative e621 frontends"""
|
||||
basecategory = "E621"
|
||||
basesubcategory = ""
|
||||
category = "e621"
|
||||
subcategory = "frontend"
|
||||
pattern = r"(?:https?://)?e621\.(?:cc/\?tags|anthro\.fr/\?q)=([^&#]*)"
|
||||
|
||||
@@ -27,6 +27,7 @@ class WikimediaExtractor(BaseExtractor):
|
||||
if self.category == "wikimedia":
|
||||
self.category = self.root.split(".")[-2]
|
||||
elif self.category in ("fandom", "wikigg"):
|
||||
self.basesubcategory = self.category
|
||||
self.category = (
|
||||
f"{self.category}-"
|
||||
f"{self.root.partition('.')[0].rpartition('/')[2]}")
|
||||
|
||||
@@ -130,6 +130,8 @@ class Job():
|
||||
if extr.basecategory:
|
||||
if not cfgpath:
|
||||
cfgpath.append((extr.category, extr.subcategory))
|
||||
if extr.basesubcategory:
|
||||
cfgpath.append((extr.basesubcategory, extr.subcategory))
|
||||
cfgpath.append((extr.basecategory, extr.subcategory))
|
||||
|
||||
return cfgpath
|
||||
|
||||
@@ -214,6 +214,7 @@ Request interval (default):
|
||||
def test_base_category(self):
|
||||
extr = TestExtractor.from_url("test:")
|
||||
extr.basecategory = "test_basecategory"
|
||||
extr.basesubcategory = "test_basesubcategory"
|
||||
|
||||
self.assertEqual(self._capture_stdout(extr), """\
|
||||
Category / Subcategory / Basecategory
|
||||
|
||||
Reference in New Issue
Block a user