aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/tenor.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2025-07-31 01:22:01 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2025-07-31 01:22:01 -0400
commita6e995c093de8aae2e91a0787281bb34c0b871eb (patch)
tree2d79821b05300d34d8871eb6c9662b359a2de85d /gallery_dl/extractor/tenor.py
parent7672a750cb74bf31e21d76aad2776367fd476155 (diff)
New upstream version 1.30.2.upstream/1.30.2
Diffstat (limited to 'gallery_dl/extractor/tenor.py')
-rw-r--r--gallery_dl/extractor/tenor.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/gallery_dl/extractor/tenor.py b/gallery_dl/extractor/tenor.py
index 7273eac..7e1f802 100644
--- a/gallery_dl/extractor/tenor.py
+++ b/gallery_dl/extractor/tenor.py
@@ -32,22 +32,22 @@ class TenorExtractor(Extractor):
self.formats = formats
def items(self):
- meta = self.metadata()
-
for gif in self.gifs():
- fmt = self._extract_format(gif)
- if not fmt:
+
+ if not (fmt := self._extract_format(gif)):
self.log.warning("%s: Selected format(s) not available",
gif.get("id"))
continue
url = fmt["url"]
+ gif["id_format"] = url.rsplit("/", 2)[1]
+ gif["format"] = fmt["name"]
gif["width"], gif["height"] = fmt["dims"]
+ gif["duration"] = fmt["duration"]
+ gif["size"] = fmt["size"]
gif["title"] = gif["h1_title"][:-4]
gif["description"] = gif.pop("content_description", "")
gif["date"] = text.parse_timestamp(gif["created"])
- if meta:
- gif.update(meta)
yield Message.Directory, gif
yield Message.Url, url, text.nameext_from_url(url, gif)
@@ -56,7 +56,9 @@ class TenorExtractor(Extractor):
media_formats = gif["media_formats"]
for fmt in self.formats:
if fmt in media_formats:
- return media_formats[fmt]
+ media = media_formats[fmt]
+ media["name"] = fmt
+ return media
def _search_results(self, query):
url = "https://tenor.googleapis.com/v2/search"
@@ -91,7 +93,7 @@ class TenorExtractor(Extractor):
}
while True:
- data = self.request(url, params=params, headers=headers).json()
+ data = self.request_json(url, params=params, headers=headers)
yield from data["results"]
@@ -112,7 +114,7 @@ class TenorImageExtractor(TenorExtractor):
example = "https://tenor.com/view/SLUG-1234567890"
def gifs(self):
- url = "{}/view/{}".format(self.root, self.groups[0])
+ url = f"{self.root}/view/{self.groups[0]}"
page = self.request(url).text
pos = page.index('id="store-cache"')
data = util.json_loads(text.extract(page, ">", "</script>", pos)[0])
@@ -125,17 +127,14 @@ class TenorSearchExtractor(TenorExtractor):
pattern = BASE_PATTERN + r"search/([^/?#]+)"
example = "https://tenor.com/search/QUERY"
- def metadata(self):
+ def gifs(self):
query = text.unquote(self.groups[0])
rest, _, last = query.rpartition("-")
if last == "gifs":
query = rest
- self.search_tags = query.replace("-", " ")
-
- return {"search_tags": self.search_tags}
+ self.kwdict["search_tags"] = search_tags = query.replace("-", " ")
- def gifs(self):
- return self._search_results(self.search_tags)
+ return self._search_results(search_tags)
class TenorUserExtractor(TenorExtractor):