diff options
Diffstat (limited to 'gallery_dl/extractor/plurk.py')
| -rw-r--r-- | gallery_dl/extractor/plurk.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gallery_dl/extractor/plurk.py b/gallery_dl/extractor/plurk.py index 2bb66ac..6862559 100644 --- a/gallery_dl/extractor/plurk.py +++ b/gallery_dl/extractor/plurk.py @@ -11,6 +11,7 @@ from .common import Extractor, Message from .. import text, extractor, exception import datetime +import time import json import re @@ -47,13 +48,22 @@ class PlurkExtractor(Extractor): """Return an iterable with a 'plurk's comments""" url = "https://www.plurk.com/Responses/get" data = {"plurk_id": plurk["id"], "count": "200"} + headers = { + "Origin": self.root, + "Referer": self.root, + "X-Requested-With": "XMLHttpRequest", + } while True: - info = self.request(url, method="POST", data=data).json() + info = self.request( + url, method="POST", headers=headers, data=data).json() yield from info["responses"] if not info["has_newer"]: return - data["from_response_id"] = info["responses"][-1]["id"] + elif info["has_newer"] < 200: + del data["count"] + time.sleep(1) + data["from_response_id"] = info["responses"][-1]["id"] + 1 @staticmethod def _load(data): @@ -81,9 +91,9 @@ class PlurkTimelineExtractor(PlurkExtractor): user_id, pos = text.extract(page, '"user_id":', ',') plurks = self._load(text.extract(page, "_PLURKS = ", ";\n", pos)[0]) - url = "https://www.plurk.com/TimeLine/getPlurks" - data = {"user_id": user_id.strip()} headers = {"Referer": url, "X-Requested-With": "XMLHttpRequest"} + data = {"user_id": user_id.strip()} + url = "https://www.plurk.com/TimeLine/getPlurks" while plurks: yield from plurks |
