diff --git a/gallery_dl/extractor/tenor.py b/gallery_dl/extractor/tenor.py index 42787a7c..52312e35 100644 --- a/gallery_dl/extractor/tenor.py +++ b/gallery_dl/extractor/tenor.py @@ -11,7 +11,7 @@ from .common import Extractor, Message from .. import text, util -BASE_PATTERN = r"(?:https?://)?tenor\.com" +BASE_PATTERN = r"(?:https?://)?tenor\.com/(?:\w\w(?:-\w\w)?/)?" class TenorExtractor(Extractor): @@ -107,7 +107,7 @@ class TenorExtractor(Extractor): class TenorImageExtractor(TenorExtractor): subcategory = "image" - pattern = BASE_PATTERN + r"/view/(?:[\w-]*-)?(\d+)" + pattern = BASE_PATTERN + r"view/(?:[\w-]*-)?(\d+)" example = "https://tenor.com/view/SLUG-1234567890" def gifs(self): @@ -121,7 +121,7 @@ class TenorImageExtractor(TenorExtractor): class TenorSearchExtractor(TenorExtractor): subcategory = "search" directory_fmt = ("{category}", "{search_tags}") - pattern = BASE_PATTERN + r"/search/([^/?#]+)" + pattern = BASE_PATTERN + r"search/([^/?#]+)" example = "https://tenor.com/search/QUERY" def metadata(self): @@ -140,7 +140,7 @@ class TenorSearchExtractor(TenorExtractor): class TenorUserExtractor(TenorExtractor): subcategory = "user" directory_fmt = ("{category}", "@{user[username]}") - pattern = BASE_PATTERN + r"/users/([^/?#]+)" + pattern = BASE_PATTERN + r"users/([^/?#]+)" example = "https://tenor.com/users/USER" def gifs(self): diff --git a/test/results/tenor.py b/test/results/tenor.py index e5122efd..da2a98c5 100644 --- a/test/results/tenor.py +++ b/test/results/tenor.py @@ -68,6 +68,11 @@ __tests__ = ( "#urls" : "https://media.tenor.com/dlGgz3LRXEMAAAAx/moving.webp", }, +{ + "#url" : "https://tenor.com/ja/view/moving-gif-8525772382434057283", + "#class": tenor.TenorImageExtractor, +}, + { "#url" : "https://tenor.com/search/trees-gifs", "#class" : tenor.TenorSearchExtractor, @@ -78,6 +83,11 @@ __tests__ = ( "search_tags": "trees", }, +{ + "#url" : "https://tenor.com/en-GB/search/trees-gifs", + "#class": tenor.TenorSearchExtractor, +}, + { "#url" : "https://tenor.com/search/trees-water-wind-sun-%3C&%3E-gifs", "#class" : tenor.TenorSearchExtractor,