|
|
@ -79,18 +79,20 @@ class AryionExtractor(Extractor):
|
|
|
|
def metadata(self):
|
|
|
|
def metadata(self):
|
|
|
|
"""Return general metadata"""
|
|
|
|
"""Return general metadata"""
|
|
|
|
|
|
|
|
|
|
|
|
def _pagination_params(self, url, params=None):
|
|
|
|
def _pagination_params(self, url, params=None, needle=None):
|
|
|
|
if params is None:
|
|
|
|
if params is None:
|
|
|
|
params = {"p": 1}
|
|
|
|
params = {"p": 1}
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
params["p"] = text.parse_int(params.get("p"), 1)
|
|
|
|
params["p"] = text.parse_int(params.get("p"), 1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if needle is None:
|
|
|
|
|
|
|
|
needle = "class='gallery-item' id='"
|
|
|
|
|
|
|
|
|
|
|
|
while True:
|
|
|
|
while True:
|
|
|
|
page = self.request(url, params=params).text
|
|
|
|
page = self.request(url, params=params).text
|
|
|
|
|
|
|
|
|
|
|
|
cnt = 0
|
|
|
|
cnt = 0
|
|
|
|
for post_id in text.extract_iter(
|
|
|
|
for post_id in text.extract_iter(page, needle, "'"):
|
|
|
|
page, "class='gallery-item' id='", "'"):
|
|
|
|
|
|
|
|
cnt += 1
|
|
|
|
cnt += 1
|
|
|
|
yield post_id
|
|
|
|
yield post_id
|
|
|
|
|
|
|
|
|
|
|
@ -200,6 +202,21 @@ class AryionGalleryExtractor(AryionExtractor):
|
|
|
|
return util.advance(self._pagination_next(url), self.offset)
|
|
|
|
return util.advance(self._pagination_next(url), self.offset)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AryionFavoriteExtractor(AryionExtractor):
|
|
|
|
|
|
|
|
"""Extractor for a user's favorites gallery"""
|
|
|
|
|
|
|
|
subcategory = "favorite"
|
|
|
|
|
|
|
|
directory_fmt = ("{category}", "{user!l}", "favorites")
|
|
|
|
|
|
|
|
archive_fmt = "f_{user}_{id}"
|
|
|
|
|
|
|
|
categorytransfer = True
|
|
|
|
|
|
|
|
pattern = BASE_PATTERN + r"/favorites/([^/?#]+)"
|
|
|
|
|
|
|
|
example = "https://aryion.com/g4/favorites/USER"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def posts(self):
|
|
|
|
|
|
|
|
url = "{}/g4/favorites/{}".format(self.root, self.user)
|
|
|
|
|
|
|
|
return self._pagination_params(
|
|
|
|
|
|
|
|
url, None, "class='gallery-item favorite' id='")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AryionTagExtractor(AryionExtractor):
|
|
|
|
class AryionTagExtractor(AryionExtractor):
|
|
|
|
"""Extractor for tag searches on eka's portal"""
|
|
|
|
"""Extractor for tag searches on eka's portal"""
|
|
|
|
subcategory = "tag"
|
|
|
|
subcategory = "tag"
|
|
|
|