Skip to content

Commit

Permalink
[itaku] add 'search' extractor
Browse files Browse the repository at this point in the history
  • Loading branch information
Shelvacu committed Dec 6, 2024
1 parent 34e157e commit b90c77d
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
50 changes: 50 additions & 0 deletions gallery_dl/extractor/itaku.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,16 @@ def posts(self):
return (self.api.image(self.item),)


class ItakuSearchExtractor(ItakuExtractor):
subcategory = "search"
pattern = BASE_PATTERN + r"/home/images/?\?([^#]+)"
example = "https://itaku.ee/home/images?tags=SEARCH"

def posts(self):
params = text.parse_query_list(self.item)
return self.api.search_images(params)


class ItakuAPI():

def __init__(self, extractor):
Expand All @@ -87,6 +97,46 @@ def __init__(self, extractor):
"Accept": "application/json, text/plain, */*",
}

def search_images(self, params):
endpoint = "/galleries/images/"
required_tags = []
negative_tags = []
optional_tags = []
tags = []
tags_param = params.get("tags")
if isinstance(tags_param, str):
tags = [tags_param]
elif isinstance(tags_param, list):
tags = tags_param

for tag in tags:
if len(tag) == 0:
pass
elif tag[0] == "-":
negative_tags.append(tag[1:])
elif tag[0] == "~":
optional_tags.append(tag[1:])
else:
required_tags.append(tag)

# Every param is simply passed through to the api, except "tags"
if "tags" in params:
del params["tags"]

api_params = {
"required_tags": required_tags,
"negative_tags": negative_tags,
"optional_tags": optional_tags,
"page": 1,
"page_size": 30,
"maturity_rating": ("SFW", "Questionable", "NSFW"),
"ordering": "-date_added",
"visibility": ("PUBLIC", "PROFILE_ONLY"),
**params
}

return self._pagination(endpoint, api_params, self.image)

def galleries_images(self, username, section=None):
endpoint = "/galleries/images/"
params = {
Expand Down
23 changes: 23 additions & 0 deletions test/results/itaku.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,27 @@
"#urls" : "https://itaku.ee/api/media/gallery_vids/sleepy_af_OY5GHWw.mp4",
},

{
"#url" : "https://itaku.ee/home/images?tags=cute",
"#comment" : "simple search",
"#category": ("", "itaku", "search"),
"#class" : itaku.ItakuSearchExtractor,
"#count" : "> 1",
},

{
"#url" : "https://itaku.ee/home/images?maturity_rating=SFW&date_range=&ordering=-date_added&text=hello&is_video=true",
"#comment" : "search for videos",
"#category": ("", "itaku", "search"),
"#class" : itaku.ItakuSearchExtractor,
"#count" : 30,
},

{
"#url" : "https://itaku.ee/home/images?tags=%2Bcute&tags=-cute&tags=~cute&maturity_rating=SFW&date_range=&ordering=-date_added",
"#comment" : "search with postive, negative, and optional tags",
"#category": ("", "itaku", "search"),
"#class" : itaku.ItakuSearchExtractor,
"#count" : 0
},
)

0 comments on commit b90c77d

Please sign in to comment.