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