[tungsten:user] support filtering results by tag (#8061)
forward query parameters https://github.com/mikf/gallery-dl/issues/8061#issuecomment-3266326296
This commit is contained in:
@@ -87,14 +87,17 @@ class TungstenModelExtractor(TungstenExtractor):
|
|||||||
|
|
||||||
class TungstenUserExtractor(TungstenExtractor):
|
class TungstenUserExtractor(TungstenExtractor):
|
||||||
subcategory = "user"
|
subcategory = "user"
|
||||||
pattern = rf"{BASE_PATTERN}/user/([^/?#]+)"
|
pattern = rf"{BASE_PATTERN}/user/([^/?#]+)(?:/posts)?/?(?:\?([^#]+))?"
|
||||||
example = "https://tungsten.run/user/USER/posts"
|
example = "https://tungsten.run/user/USER"
|
||||||
|
|
||||||
def posts(self):
|
def posts(self):
|
||||||
url = f"{self.root}/user/{self.groups[0]}"
|
user, qs = self.groups
|
||||||
|
url = f"{self.root}/user/{user}"
|
||||||
page = self.request(url).text
|
page = self.request(url).text
|
||||||
uuid_user = text.extr(page, '"user":{"uuid":"', '"')
|
uuid_user = text.extr(page, '"user":{"uuid":"', '"')
|
||||||
|
|
||||||
url = f"https://api.tungsten.run/v1/users/{uuid_user}/posts"
|
url = f"https://api.tungsten.run/v1/users/{uuid_user}/posts"
|
||||||
params = {"sort": "top_all_time"}
|
params = text.parse_query(qs)
|
||||||
|
params.setdefault("sort", "top_all_time")
|
||||||
|
self.kwdict["search_tags"] = params.get("tag", "")
|
||||||
return self._pagination(url, params)
|
return self._pagination(url, params)
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ __tests__ = (
|
|||||||
"#url" : "https://tungsten.run/model/9vHB2hNUdg/chroma",
|
"#url" : "https://tungsten.run/model/9vHB2hNUdg/chroma",
|
||||||
"#class" : tungsten.TungstenModelExtractor,
|
"#class" : tungsten.TungstenModelExtractor,
|
||||||
"#pattern" : r"https://api\.tungsten\.run/v1/upload/\w+",
|
"#pattern" : r"https://api\.tungsten\.run/v1/upload/\w+",
|
||||||
"#count" : 17,
|
"#count" : 22,
|
||||||
|
|
||||||
"comment_count" : int,
|
"comment_count" : int,
|
||||||
"created_at" : "iso:8601",
|
"created_at" : "iso:8601",
|
||||||
@@ -144,4 +144,41 @@ __tests__ = (
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"#url" : "https://tungsten.run/user/RD.Tungsten?tag=thanks&sort=top_month",
|
||||||
|
"#comment" : "query parameters",
|
||||||
|
"#class" : tungsten.TungstenUserExtractor,
|
||||||
|
"#results" : "https://api.tungsten.run/v1/upload/TYLShY6EDVyiV8ye",
|
||||||
|
|
||||||
|
"comment_count" : int,
|
||||||
|
"created_at" : "2025-08-10T11:13:55Z",
|
||||||
|
"date" : "dt:2025-08-10 11:13:55",
|
||||||
|
"extension" : "webp",
|
||||||
|
"filename" : "TYLShY6EDVyiV8ye",
|
||||||
|
"like_count" : range(15, 50),
|
||||||
|
"nsfw" : False,
|
||||||
|
"original_height": 1216,
|
||||||
|
"original_url" : "https://api.tungsten.run/v1/upload/TYLShY6EDVyiV8ye",
|
||||||
|
"original_width" : 832,
|
||||||
|
"rating" : None,
|
||||||
|
"resized_height" : 936,
|
||||||
|
"resized_url" : "https://api.tungsten.run/v1/upload/bMfhipdctg79TqCo",
|
||||||
|
"resized_width" : 640,
|
||||||
|
"search_tags" : "thanks",
|
||||||
|
"title" : "Thank you !!",
|
||||||
|
"uuid" : "FcRnVM6btz7vbM9Z",
|
||||||
|
"view_count" : int,
|
||||||
|
"user" : {
|
||||||
|
"avatar_url" : "https://api.tungsten.run/v1/avatar/512x512/dTqnGJmASg9WSjfL/1746094098",
|
||||||
|
"badges" : [],
|
||||||
|
"bio" : None,
|
||||||
|
"created_at" : "2025-04-27T14:48:27Z",
|
||||||
|
"display_name" : "RD.Tungsten",
|
||||||
|
"sm_avatar_url": "https://api.tungsten.run/v1/avatar/64x64/dTqnGJmASg9WSjfL/1746094098",
|
||||||
|
"type" : "regular",
|
||||||
|
"username" : "RD.Tungsten",
|
||||||
|
"uuid" : "dTqnGJmASg9WSjfL",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user