diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 8d412f6e..07649933 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -676,7 +676,7 @@ Consider all sites to be NSFW unless otherwise known. Sex.com https://www.sex.com/ - Boards, Pins, related Pins, Search Results + Boards, Pins, User Pins, related Pins, Search Results diff --git a/gallery_dl/extractor/sexcom.py b/gallery_dl/extractor/sexcom.py index 9f4bfc3a..edf35dae 100644 --- a/gallery_dl/extractor/sexcom.py +++ b/gallery_dl/extractor/sexcom.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2019-2020 Mike Fährmann +# Copyright 2019-2022 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -167,6 +167,27 @@ class SexcomRelatedPinExtractor(SexcomPinExtractor): return self._pagination(url) +class SexcomPinsExtractor(SexcomExtractor): + """Extractor for a user's pins on www.sex.com""" + subcategory = "pins" + directory_fmt = ("{category}", "{user}") + pattern = r"(?:https?://)?(?:www\.)?sex\.com/user/([^/?#]+)/pins/" + test = ("https://www.sex.com/user/sirjuan79/pins/", { + "count": ">= 15", + }) + + def __init__(self, match): + SexcomExtractor.__init__(self, match) + self.user = match.group(1) + + def metadata(self): + return {"user": text.unquote(self.user)} + + def pins(self): + url = "{}/user/{}/pins/".format(self.root, self.user) + return self._pagination(url) + + class SexcomBoardExtractor(SexcomExtractor): """Extractor for pins from a board on www.sex.com""" subcategory = "board" diff --git a/scripts/supportedsites.py b/scripts/supportedsites.py index 2e31becd..64b9ef30 100755 --- a/scripts/supportedsites.py +++ b/scripts/supportedsites.py @@ -182,6 +182,9 @@ SUBCATEGORY_MAP = { "sankaku": { "books": "Book Searches", }, + "sexcom": { + "pins": "User Pins", + }, "smugmug": { "path": "Images from Users and Folders", },