[toyhouse] fix Content Warning bypass (#5820)
This commit is contained in:
@@ -77,23 +77,27 @@ class ToyhouseExtractor(Extractor):
|
|||||||
cnt += 1
|
cnt += 1
|
||||||
yield self._parse_post(post)
|
yield self._parse_post(post)
|
||||||
|
|
||||||
if cnt == 0 and params["page"] == 1:
|
if not cnt and params["page"] == 1:
|
||||||
token, pos = text.extract(
|
if self._accept_content_warning(page):
|
||||||
page, '<input name="_token" type="hidden" value="', '"')
|
continue
|
||||||
if not token:
|
return
|
||||||
return
|
|
||||||
data = {
|
|
||||||
"_token": token,
|
|
||||||
"user" : text.extract(page, 'value="', '"', pos)[0],
|
|
||||||
}
|
|
||||||
self.request(self.root + "/~account/warnings/accept",
|
|
||||||
method="POST", data=data, allow_redirects=False)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if cnt < 18:
|
if cnt < 18:
|
||||||
return
|
return
|
||||||
params["page"] += 1
|
params["page"] += 1
|
||||||
|
|
||||||
|
def _accept_content_warning(self, page):
|
||||||
|
pos = page.find(' name="_token"') + 1
|
||||||
|
token, pos = text.extract(page, ' value="', '"', pos)
|
||||||
|
user , pos = text.extract(page, ' value="', '"', pos)
|
||||||
|
if not token or not user:
|
||||||
|
return False
|
||||||
|
|
||||||
|
data = {"_token": token, "user": user}
|
||||||
|
self.request(self.root + "/~account/warnings/accept",
|
||||||
|
method="POST", data=data, allow_redirects=False)
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class ToyhouseArtExtractor(ToyhouseExtractor):
|
class ToyhouseArtExtractor(ToyhouseExtractor):
|
||||||
"""Extractor for artworks of a toyhouse user"""
|
"""Extractor for artworks of a toyhouse user"""
|
||||||
|
|||||||
Reference in New Issue
Block a user