summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/plurk.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/plurk.py')
-rw-r--r--gallery_dl/extractor/plurk.py18
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