[danbooru] fix ugoira metadata extraction (#3056)

pull/3075/head
Mike Fährmann 2 years ago
parent 096b8f2cfc
commit d0d4ce1a13
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -88,10 +88,7 @@ class DanbooruExtractor(BaseExtractor):
if post["extension"] == "zip": if post["extension"] == "zip":
if self.ugoira: if self.ugoira:
post["frames"] = self.request( post["frames"] = self._ugoira_frames(post)
"{}/posts/{}.json?only=pixiv_ugoira_frame_data".format(
self.root, post["id"])
).json()["pixiv_ugoira_frame_data"]["data"]
post["_http_adjust_extension"] = False post["_http_adjust_extension"] = False
else: else:
url = post["large_file_url"] url = post["large_file_url"]
@ -139,6 +136,18 @@ class DanbooruExtractor(BaseExtractor):
else: else:
return return
def _ugoira_frames(self, post):
data = self.request("{}/posts/{}.json?only=media_metadata".format(
self.root, post["id"])
).json()["media_metadata"]["metadata"]
ext = data["ZIP:ZipFileName"].rpartition(".")[2]
print(post["id"], ext)
fmt = ("{:>06}." + ext).format
delays = data["Ugoira:FrameDelays"]
return [{"file": fmt(index), "delay": delay}
for index, delay in enumerate(delays)]
INSTANCES = { INSTANCES = {
"danbooru": { "danbooru": {

Loading…
Cancel
Save