[danbooru] add 'ugoira' option (#406)

to choose between ZIP archives or converted video files
for Ugoira posts
This commit is contained in:
Mike Fährmann
2019-08-31 21:46:49 +02:00
parent 9646ccb320
commit f02a768b5c
6 changed files with 33 additions and 6 deletions

View File

@@ -27,6 +27,7 @@ class BooruExtractor(SharedConfigMixin, Extractor):
page_start = 1
page_limit = None
sort = False
ugoira = True
def __init__(self, match):
super().__init__(match)
@@ -51,7 +52,11 @@ class BooruExtractor(SharedConfigMixin, Extractor):
for image in images:
try:
url = image["file_url"]
if "pixiv_ugoira_frame_data" in image and \
"large_file_url" in image and not self.ugoira:
url = image["large_file_url"]
else:
url = image["file_url"]
except KeyError:
continue
if url.startswith("/"):

View File

@@ -28,6 +28,7 @@ class DanbooruExtractor(booru.DanbooruPageMixin, booru.BooruExtractor):
self.scheme = "https" if self.subdomain == "danbooru" else "http"
self.api_url = "{scheme}://{subdomain}.donmai.us/posts.json".format(
scheme=self.scheme, subdomain=self.subdomain)
self.ugoira = self.config("ugoira", True)
username, api_key = self._get_auth_info()
if username:
@@ -63,9 +64,15 @@ class DanbooruPoolExtractor(booru.PoolMixin, DanbooruExtractor):
class DanbooruPostExtractor(booru.PostMixin, DanbooruExtractor):
"""Extractor for single images from danbooru"""
pattern = BASE_PATTERN + r"/posts/(?P<post>\d+)"
test = ("https://danbooru.donmai.us/posts/294929", {
"content": "5e255713cbf0a8e0801dc423563c34d896bb9229",
})
test = (
("https://danbooru.donmai.us/posts/294929", {
"content": "5e255713cbf0a8e0801dc423563c34d896bb9229",
}),
("https://danbooru.donmai.us/posts/3613024", {
"pattern": r"https?://.+\.webm$",
"options": (("ugoira", False),)
})
)
class DanbooruPopularExtractor(booru.PopularMixin, DanbooruExtractor):

View File

@@ -6,4 +6,4 @@
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
__version__ = "1.10.3"
__version__ = "1.10.4-dev"