diff options
| author | 2025-07-31 01:22:01 -0400 | |
|---|---|---|
| committer | 2025-07-31 01:22:01 -0400 | |
| commit | a6e995c093de8aae2e91a0787281bb34c0b871eb (patch) | |
| tree | 2d79821b05300d34d8871eb6c9662b359a2de85d /gallery_dl/extractor/tenor.py | |
| parent | 7672a750cb74bf31e21d76aad2776367fd476155 (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.py | 29 |
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): |
