From bb7d540c7a9db199c1339aff9d6a511333f91176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 10 Jan 2026 11:21:06 +0100 Subject: [PATCH] [xenforo] add 'media-category' extractor (#8785) --- docs/supportedsites.md | 6 +-- gallery_dl/extractor/xenforo.py | 91 +++++++++++++++++++-------------- scripts/supportedsites.py | 1 + test/results/atfforum.py | 6 +++ 4 files changed, 64 insertions(+), 40 deletions(-) diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 76b42503..d8b8eab4 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -1888,19 +1888,19 @@ Consider all listed sites to potentially be NSFW. SimpCity Forums https://simpcity.cr/ - Forums, Media Files, User Media, Posts, Threads + Forums, Media Categories, Media Files, User Media, Posts, Threads Supported NudoStar Forums https://nudostar.com/forum/ - Forums, Media Files, User Media, Posts, Threads + Forums, Media Categories, Media Files, User Media, Posts, Threads Supported All The Fallen https://allthefallen.moe/forum/ - Forums, Media Files, User Media, Posts, Threads + Forums, Media Categories, Media Files, User Media, Posts, Threads diff --git a/gallery_dl/extractor/xenforo.py b/gallery_dl/extractor/xenforo.py index 7a1ef442..f47e2541 100644 --- a/gallery_dl/extractor/xenforo.py +++ b/gallery_dl/extractor/xenforo.py @@ -101,6 +101,44 @@ class XenforoExtractor(BaseExtractor): data["type"] = "inline" yield Message.Url, self.root + path, data + def items_media(self, path, pnum): + self.root_media = self.config_instance("root-media") or self.root + + if (order := self.config("order-posts")) and \ + order[0] in ("d", "r"): + pages = self._pagination_reverse(path, pnum) + reverse = True + else: + pages = self._pagination(path, pnum) + reverse = False + + if meta := self.config("metadata"): + extr_media = self._extract_media_ex + meta = True + else: + extr_media = self._extract_media + meta = False + + for page in pages: + posts = page.split( + '