[tumblr] update
- provide 'search_tags' metadata for tag searches (#8160) - support '/archive/tagged/' URLs (#8160) - use self.groups - remove __init__ constructors & _init functions - remove "#category" test results
This commit is contained in:
@@ -31,15 +31,12 @@ class TumblrExtractor(Extractor):
|
||||
filename_fmt = "{category}_{blog_name}_{id}_{num:>02}.{extension}"
|
||||
archive_fmt = "{id}_{num}"
|
||||
|
||||
def __init__(self, match):
|
||||
Extractor.__init__(self, match)
|
||||
|
||||
if name := match[2]:
|
||||
self.blog = name + ".tumblr.com"
|
||||
else:
|
||||
self.blog = match[1] or match[3]
|
||||
|
||||
def _init(self):
|
||||
if name := self.groups[1]:
|
||||
self.blog = f"{name}.tumblr.com"
|
||||
else:
|
||||
self.blog = self.groups[0] or self.groups[2]
|
||||
|
||||
self.api = TumblrAPI(self)
|
||||
self.types = self._setup_posttypes()
|
||||
self.avatar = self.config("avatar", False)
|
||||
@@ -287,14 +284,10 @@ class TumblrPostExtractor(TumblrExtractor):
|
||||
pattern = BASE_PATTERN + r"/(?:post/|image/)?(\d+)"
|
||||
example = "https://www.tumblr.com/BLOG/12345"
|
||||
|
||||
def __init__(self, match):
|
||||
TumblrExtractor.__init__(self, match)
|
||||
self.post_id = match[4]
|
||||
def posts(self):
|
||||
self.reblogs = True
|
||||
self.date_min = 0
|
||||
|
||||
def posts(self):
|
||||
return self.api.posts(self.blog, {"id": self.post_id})
|
||||
return self.api.posts(self.blog, {"id": self.groups[3]})
|
||||
|
||||
def _setup_posttypes(self):
|
||||
return POST_TYPES
|
||||
@@ -303,15 +296,13 @@ class TumblrPostExtractor(TumblrExtractor):
|
||||
class TumblrTagExtractor(TumblrExtractor):
|
||||
"""Extractor for Tumblr user's posts by tag"""
|
||||
subcategory = "tag"
|
||||
pattern = BASE_PATTERN + r"/tagged/([^/?#]+)"
|
||||
pattern = BASE_PATTERN + r"(?:/archive)?/tagged/([^/?#]+)"
|
||||
example = "https://www.tumblr.com/BLOG/tagged/TAG"
|
||||
|
||||
def __init__(self, match):
|
||||
TumblrExtractor.__init__(self, match)
|
||||
self.tag = text.unquote(match[4].replace("-", " "))
|
||||
|
||||
def posts(self):
|
||||
return self.api.posts(self.blog, {"tag": self.tag})
|
||||
self.kwdict["search_tags"] = tag = text.unquote(
|
||||
self.groups[3].replace("-", " "))
|
||||
return self.api.posts(self.blog, {"tag": tag})
|
||||
|
||||
|
||||
class TumblrDayExtractor(TumblrExtractor):
|
||||
@@ -320,21 +311,13 @@ class TumblrDayExtractor(TumblrExtractor):
|
||||
pattern = BASE_PATTERN + r"/day/(\d\d\d\d/\d\d/\d\d)"
|
||||
example = "https://www.tumblr.com/BLOG/day/1970/01/01"
|
||||
|
||||
def __init__(self, match):
|
||||
TumblrExtractor.__init__(self, match)
|
||||
year, month, day = match[4].split("/")
|
||||
self.ordinal = date(int(year), int(month), int(day)).toordinal()
|
||||
|
||||
def _init(self):
|
||||
TumblrExtractor._init(self)
|
||||
|
||||
self.date_min = (
|
||||
# 719163 == date(1970, 1, 1).toordinal()
|
||||
(self.ordinal - 719163) * 86400)
|
||||
|
||||
self.api.before = self.date_min + 86400
|
||||
|
||||
def posts(self):
|
||||
year, month, day = self.groups[3].split("/")
|
||||
ordinal = date(int(year), int(month), int(day)).toordinal()
|
||||
|
||||
# 719163 == date(1970, 1, 1).toordinal()
|
||||
self.date_min = (ordinal - 719163) * 86400
|
||||
self.api.before = self.date_min + 86400
|
||||
return self.api.posts(self.blog, {})
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ from gallery_dl import exception
|
||||
__tests__ = (
|
||||
{
|
||||
"#url" : "http://demo.tumblr.com/",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#options" : {"posts": "photo"},
|
||||
"#pattern" : r"https://\d+\.media\.tumblr\.com/tumblr_[^/_]+_\d+\.jpg",
|
||||
@@ -20,7 +19,6 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "http://demo.tumblr.com/",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#options" : {
|
||||
"posts" : "all",
|
||||
@@ -33,7 +31,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://mikf123-hidden.tumblr.com/",
|
||||
"#comment" : "dashboard-only",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#options" : {"access-token": None},
|
||||
"#exception": exception.AuthorizationError,
|
||||
@@ -42,7 +39,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://mikf123-hidden.tumblr.com/",
|
||||
"#comment" : "dashboard-only",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#count" : 2,
|
||||
|
||||
@@ -55,7 +51,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://mikf123-private.tumblr.com/",
|
||||
"#comment" : "password protected",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#count" : 2,
|
||||
|
||||
@@ -68,7 +63,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://mikf123-private-hidden.tumblr.com/",
|
||||
"#comment" : "dashboard-only & password protected",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#count" : 2,
|
||||
|
||||
@@ -82,7 +76,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/",
|
||||
"#comment" : "date-min/-max/-format (#337)",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#options" : {
|
||||
"date-min" : "201804",
|
||||
@@ -95,14 +88,12 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://tumblr.com/mikf123",
|
||||
"#comment" : "no 'www.' subdomain (#7358)",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://donttrustthetits.tumblr.com/",
|
||||
"#comment" : "pagination with 'date-max' (#2191) and 'api-key'",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
"#options" : {
|
||||
"access-token": None,
|
||||
@@ -115,49 +106,41 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "https://demo.tumblr.com/page/2",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://demo.tumblr.com/archive",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "tumblr:http://www.b-authentique.com/",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "tumblr:www.b-authentique.com",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/view/smarties-art",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/smarties-art",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/smarties-art",
|
||||
"#category": ("", "tumblr", "user"),
|
||||
"#class" : tumblr.TumblrUserExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "http://demo.tumblr.com/post/459265350",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#pattern" : r"https://\d+\.media\.tumblr\.com/tumblr_[^/_]+_1280.jpg",
|
||||
"#count" : 1,
|
||||
@@ -165,49 +148,42 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/167770226574/text-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 2,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/181022561719/quote-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 1,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/167623351559/link-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 2,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/167633596145/video-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 2,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/167770026604/audio-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 2,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/172687798174/photo-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 4,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/post/181022380064/chat-post",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 0,
|
||||
},
|
||||
@@ -215,7 +191,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://kichatundk.tumblr.com/post/654953419288821760",
|
||||
"#comment" : "high-quality images (#1846)",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#count" : 2,
|
||||
"#sha1_content": "d6fcc7b6f750d835d55c7f31fa3b63be26c9f89b",
|
||||
@@ -224,7 +199,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://hameru-is-cool.tumblr.com/post/639261855227002880",
|
||||
"#comment" : "high-quality images (#1344)",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#exception" : exception.NotFoundError,
|
||||
"#count" : 2,
|
||||
@@ -234,7 +208,6 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://k-eke.tumblr.com/post/185341184856",
|
||||
"#comment" : "wrong extension returned by api (#3095)",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#options" : {"retries": 0},
|
||||
"#results" : "https://64.media.tumblr.com/5e9d760aba24c65beaf0e72de5aae4dd/tumblr_psj5yaqV871t1ig6no1_1280.gif",
|
||||
@@ -243,7 +216,6 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/image/689860196535762944",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#pattern" : r"^https://\d+\.media\.tumblr\.com/134791621559a79793563b636b5fe2c6/8f1131551cef6e74-bc/s99999x99999/188cf9b8915b0d0911c6c743d152fc62e8f38491\.png$",
|
||||
},
|
||||
@@ -251,70 +223,66 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "http://ziemniax.tumblr.com/post/109697912859/",
|
||||
"#comment" : "HTML response (#297)",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
"#exception": exception.NotFoundError,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "http://demo.tumblr.com/image/459265350",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/view/smarties-art/686047436641353728",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/smarties-art/686047436641353728",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/smarties-art/686047436641353728",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://tumblr.com/smarties-art/686047436641353728",
|
||||
"#category": ("", "tumblr", "post"),
|
||||
"#class" : tumblr.TumblrPostExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "http://demo.tumblr.com/tagged/Times%20Square",
|
||||
"#category": ("", "tumblr", "tag"),
|
||||
"#class" : tumblr.TumblrTagExtractor,
|
||||
"#pattern" : r"https://\d+\.media\.tumblr\.com/tumblr_[^/_]+_1280.jpg",
|
||||
"#count" : 1,
|
||||
|
||||
"search_tags": "Times Square",
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/view/smarties-art/tagged/undertale",
|
||||
"#category": ("", "tumblr", "tag"),
|
||||
"#class" : tumblr.TumblrTagExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/smarties-art/tagged/undertale",
|
||||
"#category": ("", "tumblr", "tag"),
|
||||
"#class" : tumblr.TumblrTagExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/smarties-art/tagged/undertale",
|
||||
"#category": ("", "tumblr", "tag"),
|
||||
"#class" : tumblr.TumblrTagExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://hirespokemon.tumblr.com/archive/tagged/ken%20sugimori",
|
||||
"#class" : tumblr.TumblrTagExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://mikf123.tumblr.com/day/2018/01/05",
|
||||
"#category": ("", "tumblr", "day"),
|
||||
"#class" : tumblr.TumblrDayExtractor,
|
||||
"#pattern" : r"https://64\.media\.tumblr\.com/1a2be8c63f1df58abd2622861696c72a/tumblr_ozm9nqst9t1wgha4yo1_1280\.jpg",
|
||||
"#count" : 1,
|
||||
@@ -324,32 +292,27 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/view/mikf123/day/2018/01/05",
|
||||
"#category": ("", "tumblr", "day"),
|
||||
"#class" : tumblr.TumblrDayExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/mikf123/day/2018/01/05",
|
||||
"#category": ("", "tumblr", "day"),
|
||||
"#class" : tumblr.TumblrDayExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/mikf123/day/2018/01/05",
|
||||
"#category": ("", "tumblr", "day"),
|
||||
"#class" : tumblr.TumblrDayExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "http://mikf123.tumblr.com/likes",
|
||||
"#category": ("", "tumblr", "likes"),
|
||||
"#class" : tumblr.TumblrLikesExtractor,
|
||||
"#count" : 1,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "http://mikf123.tumblr.com/likes",
|
||||
"#category": ("", "tumblr", "likes"),
|
||||
"#class" : tumblr.TumblrLikesExtractor,
|
||||
"#options" : {"api-secret": None},
|
||||
"#count" : 1,
|
||||
@@ -357,25 +320,21 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/view/mikf123/likes",
|
||||
"#category": ("", "tumblr", "likes"),
|
||||
"#class" : tumblr.TumblrLikesExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/blog/mikf123/likes",
|
||||
"#category": ("", "tumblr", "likes"),
|
||||
"#class" : tumblr.TumblrLikesExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.tumblr.com/mikf123/likes",
|
||||
"#category": ("", "tumblr", "likes"),
|
||||
"#class" : tumblr.TumblrLikesExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://tumblr.com/mikf123/likes",
|
||||
"#category": ("", "tumblr", "likes"),
|
||||
"#class" : tumblr.TumblrLikesExtractor,
|
||||
},
|
||||
|
||||
@@ -416,7 +375,7 @@ __tests__ = (
|
||||
"https://demo.tumblr.com/",
|
||||
),
|
||||
|
||||
"can_show_badges": True,
|
||||
"can_show_badges": bool,
|
||||
"description" : str,
|
||||
"name" : str,
|
||||
"title" : str,
|
||||
|
||||
Reference in New Issue
Block a user