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