[pixiv] fix ugoira parsing
This commit is contained in:
@@ -52,7 +52,7 @@ class PixivExtractor(SequentialExtractor):
|
|||||||
work.update(metadata)
|
work.update(metadata)
|
||||||
|
|
||||||
if work["type"] == "ugoira":
|
if work["type"] == "ugoira":
|
||||||
url, framelist = self.parse_ugoira(work["id"])
|
url, framelist = self.parse_ugoira(work)
|
||||||
work["extension"] = "zip"
|
work["extension"] = "zip"
|
||||||
yield Message.Url, url, work.copy()
|
yield Message.Url, url, work.copy()
|
||||||
work["extension"] = "txt"
|
work["extension"] = "txt"
|
||||||
@@ -93,19 +93,22 @@ class PixivExtractor(SequentialExtractor):
|
|||||||
return
|
return
|
||||||
page = pinfo["next"]
|
page = pinfo["next"]
|
||||||
|
|
||||||
def parse_ugoira(self, illust_id):
|
def parse_ugoira(self, data):
|
||||||
"""Parse ugoira data"""
|
"""Parse ugoira data"""
|
||||||
# get illust page
|
# get illust page
|
||||||
text = self.request(
|
text = self.request(
|
||||||
self.illust_url, params={"illust_id": illust_id},
|
self.illust_url, params={"illust_id": data["id"]},
|
||||||
).text
|
).text
|
||||||
|
|
||||||
# parse page
|
# parse page
|
||||||
url , pos = self.extract(text, 'ugokuIllustFullscreenData = {"src":"', '"')
|
frames, _ = self.extract(text, ',"frames":[', ']')
|
||||||
frames, pos = self.extract(text, '"frames":[', ']', pos)
|
|
||||||
|
|
||||||
# fix url
|
# build url
|
||||||
url = url.replace("\\/", "/")
|
url = re.sub(
|
||||||
|
r"/img-original/(.+/\d+)[^/]+",
|
||||||
|
r"/img-zip-ugoira/\g<1>_ugoira1920x1080.zip",
|
||||||
|
data["url"]
|
||||||
|
)
|
||||||
|
|
||||||
# build framelist
|
# build framelist
|
||||||
framelist = re.sub(
|
framelist = re.sub(
|
||||||
|
|||||||
Reference in New Issue
Block a user