* Update skeb.py * Update configuration.rst * flake8
This commit is contained in:
@@ -1979,6 +1979,16 @@ Description
|
|||||||
Download videos.
|
Download videos.
|
||||||
|
|
||||||
|
|
||||||
|
extractor.skeb.sent-requests
|
||||||
|
-------------------------
|
||||||
|
Type
|
||||||
|
``bool``
|
||||||
|
Default
|
||||||
|
``false``
|
||||||
|
Description
|
||||||
|
Download sent requests.
|
||||||
|
|
||||||
|
|
||||||
extractor.skeb.thumbnails
|
extractor.skeb.thumbnails
|
||||||
-------------------------
|
-------------------------
|
||||||
Type
|
Type
|
||||||
|
|||||||
@@ -22,10 +22,11 @@ class SkebExtractor(Extractor):
|
|||||||
Extractor.__init__(self, match)
|
Extractor.__init__(self, match)
|
||||||
self.user_name = match.group(1)
|
self.user_name = match.group(1)
|
||||||
self.thumbnails = self.config("thumbnails", False)
|
self.thumbnails = self.config("thumbnails", False)
|
||||||
|
self.sent_requests = self.config("sent-requests", False)
|
||||||
|
|
||||||
def items(self):
|
def items(self):
|
||||||
for post_num in self.posts():
|
for user_name, post_num in self.posts():
|
||||||
response, post = self._get_post_data(post_num)
|
response, post = self._get_post_data(user_name, post_num)
|
||||||
yield Message.Directory, post
|
yield Message.Directory, post
|
||||||
for data in self._get_urls_from_post(response, post):
|
for data in self._get_urls_from_post(response, post):
|
||||||
url = data["file_url"]
|
url = data["file_url"]
|
||||||
@@ -38,24 +39,33 @@ class SkebExtractor(Extractor):
|
|||||||
url = "{}/api/users/{}/works".format(self.root, self.user_name)
|
url = "{}/api/users/{}/works".format(self.root, self.user_name)
|
||||||
params = {"role": "creator", "sort": "date", "offset": 0}
|
params = {"role": "creator", "sort": "date", "offset": 0}
|
||||||
headers = {"Referer": self.root, "Authorization": "Bearer null"}
|
headers = {"Referer": self.root, "Authorization": "Bearer null"}
|
||||||
|
do_requests = self.sent_requests
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
posts = self.request(url, params=params, headers=headers).json()
|
posts = self.request(url, params=params, headers=headers).json()
|
||||||
|
|
||||||
for post in posts:
|
for post in posts:
|
||||||
post_num = post["path"].rpartition("/")[2]
|
post_num = post["path"].rpartition("/")[2]
|
||||||
|
user_name = post["path"].split("/")[1][1:]
|
||||||
if post["private"]:
|
if post["private"]:
|
||||||
self.log.debug("Skipping %s (private)", post_num)
|
self.log.debug("Skipping @%s/%s (private)",
|
||||||
|
user_name, post_num)
|
||||||
continue
|
continue
|
||||||
yield post_num
|
yield user_name, post_num
|
||||||
|
|
||||||
if len(posts) < 30:
|
if len(posts) < 30:
|
||||||
return
|
if do_requests:
|
||||||
|
params["offset"] = 0
|
||||||
|
params['role'] = "client"
|
||||||
|
do_requests = False
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
return
|
||||||
params["offset"] += 30
|
params["offset"] += 30
|
||||||
|
|
||||||
def _get_post_data(self, post_num):
|
def _get_post_data(self, user_name, post_num):
|
||||||
url = "{}/api/users/{}/works/{}".format(
|
url = "{}/api/users/{}/works/{}".format(
|
||||||
self.root, self.user_name, post_num)
|
self.root, user_name, post_num)
|
||||||
headers = {"Referer": self.root, "Authorization": "Bearer null"}
|
headers = {"Referer": self.root, "Authorization": "Bearer null"}
|
||||||
resp = self.request(url, headers=headers).json()
|
resp = self.request(url, headers=headers).json()
|
||||||
creator = resp["creator"]
|
creator = resp["creator"]
|
||||||
@@ -130,7 +140,7 @@ class SkebPostExtractor(SkebExtractor):
|
|||||||
self.post_num = match.group(2)
|
self.post_num = match.group(2)
|
||||||
|
|
||||||
def posts(self):
|
def posts(self):
|
||||||
return (self.post_num,)
|
return (self.user_name, self.post_num,)
|
||||||
|
|
||||||
|
|
||||||
class SkebUserExtractor(SkebExtractor):
|
class SkebUserExtractor(SkebExtractor):
|
||||||
|
|||||||
Reference in New Issue
Block a user