diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 5a627ebd..93975e59 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -1042,7 +1042,7 @@ Consider all listed sites to potentially be NSFW. SubscribeStar https://www.subscribestar.com/ - Posts, User Profiles, User Tags + Posts, User Profiles Supported diff --git a/gallery_dl/extractor/subscribestar.py b/gallery_dl/extractor/subscribestar.py index e982c78d..5df71521 100644 --- a/gallery_dl/extractor/subscribestar.py +++ b/gallery_dl/extractor/subscribestar.py @@ -233,28 +233,24 @@ class SubscribestarExtractor(Extractor): self._warn_preview = util.noop -class SubscribestarUserTagExtractor(SubscribestarExtractor): - """Extractor for a subscribestar user's tagged posts""" - subcategory = "user-tag" - pattern = BASE_PATTERN + r"/(?!posts/)([^/?#]+)\?tag=([^#]+)" - example = "https://www.subscribestar.com/USER?tag=TAG" - - def posts(self): - _, user, tag = self.groups - self.kwdict["search_tags"] = tag = text.unquote(tag) - url = f"{self.root}/{user}" - params = {"tag": tag} - return self._pagination(url, params) - - class SubscribestarUserExtractor(SubscribestarExtractor): """Extractor for media from a subscribestar user""" subcategory = "user" - pattern = BASE_PATTERN + r"/(?!posts/)([^/?#]+)" + pattern = BASE_PATTERN + r"/(?!posts/)([^/?#]+)(?:\?([^#]+))?" example = "https://www.subscribestar.com/USER" def posts(self): - return self._pagination(f"{self.root}/{self.item}") + _, user, qs = self.groups + url = f"{self.root}/{user}" + + if qs is None: + params = None + else: + params = text.parse_query(qs) + if "tag" in params: + self.kwdict["search_tags"] = params["tag"] + + return self._pagination(url, params) class SubscribestarPostExtractor(SubscribestarExtractor): diff --git a/test/results/subscribestar.py b/test/results/subscribestar.py index e9a50a1b..4fc7dc40 100644 --- a/test/results/subscribestar.py +++ b/test/results/subscribestar.py @@ -40,6 +40,27 @@ __tests__ = ( "date": "type:datetime", }, +{ + "#url" : "https://www.subscribestar.com/subscribestar?tag=Security", + "#comment" : "'tag' query parameter (#8737)", + "#class" : subscribestar.SubscribestarUserExtractor, + "#count" : 0, + "#metadata": "post", + + "author_id" : 11, + "author_name": "subscribestar", + "author_nick": "SubscribeStar", + "content" : "\n

Enhance Your Account Security with OTP

\n
In addition to our existing email-based Two-Factor Authentication (2FA), we encourage everyone to use a more secure and convenient method: One-Time Password (OTP) 2FA using authentication apps like 1Password, Google Authenticator etc. To get started:
\n
    \n
  1. Navigate to Menu → Account Settings, scroll down to the Authenticator Apps (OTP 2FA) section.
  2. \n
  3. Click the \"Set up OTP\" button and follow the instructions.

    \n
  4. \n
\n
The entire process should take less than 5 minutes. You can opt out of using email 2FA then.
\n

\n
Why Choose OTP 2FA Over Email 2FA?
\n
\nStronger Security: While email 2FA adds an extra layer of protection, OTP 2FA generates codes directly on your mobile device, reducing the risk associated with email interception or unauthorized access.
\n
\nInstant Access: Authentication apps provide time-sensitive codes without the need for an internet connection or waiting for an email to arrive.
\n
\nEnhanced Protection Against Phishing: OTP codes from authentication apps are less susceptible to phishing attacks compared to email-based codes.
\n\n", + "date" : "dt:2024-09-30 20:46:00", + "post_id" : 1320999, + "search_tags": "Security", + "title" : "Enhance Your Account Security with OTP", + "tags" : [ + "Security", + "PlatformUpdates", + ], +}, + { "#url" : "https://subscribestar.adult/kanashiipanda", "#category": ("", "subscribestar", "user-adult"), @@ -123,24 +144,4 @@ __tests__ = ( "date": "dt:2019-04-28 07:32:00", }, -{ - "#url" : "https://www.subscribestar.com/subscribestar?tag=Security", - "#class" : subscribestar.SubscribestarUserTagExtractor, - "#count" : 0, - "#metadata": "post", - - "author_id" : 11, - "author_name": "subscribestar", - "author_nick": "SubscribeStar", - "content" : "\n

Enhance Your Account Security with OTP

\n
In addition to our existing email-based Two-Factor Authentication (2FA), we encourage everyone to use a more secure and convenient method: One-Time Password (OTP) 2FA using authentication apps like 1Password, Google Authenticator etc. To get started:
\n
    \n
  1. Navigate to Menu → Account Settings, scroll down to the Authenticator Apps (OTP 2FA) section.
  2. \n
  3. Click the \"Set up OTP\" button and follow the instructions.

    \n
  4. \n
\n
The entire process should take less than 5 minutes. You can opt out of using email 2FA then.
\n

\n
Why Choose OTP 2FA Over Email 2FA?
\n
\nStronger Security: While email 2FA adds an extra layer of protection, OTP 2FA generates codes directly on your mobile device, reducing the risk associated with email interception or unauthorized access.
\n
\nInstant Access: Authentication apps provide time-sensitive codes without the need for an internet connection or waiting for an email to arrive.
\n
\nEnhanced Protection Against Phishing: OTP codes from authentication apps are less susceptible to phishing attacks compared to email-based codes.
\n\n", - "date" : "dt:2024-09-30 20:46:00", - "post_id" : 1320999, - "search_tags": "Security", - "title" : "Enhance Your Account Security with OTP", - "tags" : [ - "Security", - "PlatformUpdates", - ], -}, - )