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(
+ '