merge #4133: [furaffinity] extract 'favorite_id' metadata
This commit is contained in:
@@ -159,7 +159,13 @@ class FuraffinityExtractor(Extractor):
|
||||
|
||||
while path:
|
||||
page = self.request(self.root + path).text
|
||||
yield from text.extract_iter(page, 'id="sid-', '"')
|
||||
extr = text.extract_from(page)
|
||||
while True:
|
||||
post_id = extr('id="sid-', '"')
|
||||
if not post_id:
|
||||
break
|
||||
self._favorite_id = text.parse_int(extr('data-fav-id="', '"'))
|
||||
yield post_id
|
||||
path = text.extr(page, 'right" href="', '"')
|
||||
|
||||
def _pagination_search(self, query):
|
||||
@@ -241,6 +247,7 @@ class FuraffinityFavoriteExtractor(FuraffinityExtractor):
|
||||
test = ("https://www.furaffinity.net/favorites/mirlinthloth/", {
|
||||
"pattern": r"https://d\d?\.f(uraffinity|acdn)\.net"
|
||||
r"/art/[^/]+/\d+/\d+.\w+\.\w+",
|
||||
"keyword": {"favorite_id": int},
|
||||
"range": "45-50",
|
||||
"count": 6,
|
||||
})
|
||||
@@ -248,6 +255,12 @@ class FuraffinityFavoriteExtractor(FuraffinityExtractor):
|
||||
def posts(self):
|
||||
return self._pagination_favorites()
|
||||
|
||||
def _parse_post(self, post_id):
|
||||
post = FuraffinityExtractor._parse_post(self, post_id)
|
||||
if post:
|
||||
post["favorite_id"] = self._favorite_id
|
||||
return post
|
||||
|
||||
|
||||
class FuraffinitySearchExtractor(FuraffinityExtractor):
|
||||
"""Extractor for furaffinity search results"""
|
||||
|
||||
Reference in New Issue
Block a user