diff options
| author | 2025-03-15 18:05:15 -0400 | |
|---|---|---|
| committer | 2025-03-15 18:05:15 -0400 | |
| commit | 8026a3c45446030d7af524bfc487d3462c8114ef (patch) | |
| tree | 0818c682a06f620c08a8b6b4c07f4935bd79493a /gallery_dl/extractor/wikimedia.py | |
| parent | 243d1f1beb4e4eb75a524f1aff948c47761a4f1d (diff) | |
New upstream version 1.29.2.upstream/1.29.2
Diffstat (limited to 'gallery_dl/extractor/wikimedia.py')
| -rw-r--r-- | gallery_dl/extractor/wikimedia.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gallery_dl/extractor/wikimedia.py b/gallery_dl/extractor/wikimedia.py index 4eae537..3b23f3a 100644 --- a/gallery_dl/extractor/wikimedia.py +++ b/gallery_dl/extractor/wikimedia.py @@ -54,7 +54,7 @@ class WikimediaExtractor(BaseExtractor): @staticmethod def prepare(image): - """Adjust the content of a image object""" + """Adjust the content of an image object""" image["metadata"] = { m["name"]: m["value"] for m in image["metadata"] or ()} @@ -80,6 +80,14 @@ class WikimediaExtractor(BaseExtractor): yield Message.Directory, image yield Message.Url, image["url"], image + if self.subcategories: + base = self.root + "/wiki/" + self.params["gcmtype"] = "subcat" + for subcat in self._pagination(self.params): + url = base + subcat["title"].replace(" ", "_") + subcat["_extractor"] = WikimediaArticleExtractor + yield Message.Queue, url, subcat + def _pagination(self, params): """ https://www.mediawiki.org/wiki/API:Query @@ -208,6 +216,8 @@ class WikimediaArticleExtractor(WikimediaExtractor): self.subcategory = prefix if prefix == "category": + self.subcategories = \ + True if self.config("subcategories", True) else False self.params = { "generator": "categorymembers", "gcmtitle" : path, @@ -215,10 +225,12 @@ class WikimediaArticleExtractor(WikimediaExtractor): "gcmlimit" : self.per_page, } elif prefix == "file": + self.subcategories = False self.params = { "titles" : path, } else: + self.subcategories = False self.params = { "generator": "images", "gimlimit" : self.per_page, |
