summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/furaffinity.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/furaffinity.py')
-rw-r--r--gallery_dl/extractor/furaffinity.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/gallery_dl/extractor/furaffinity.py b/gallery_dl/extractor/furaffinity.py
index ba60e19..9af7274 100644
--- a/gallery_dl/extractor/furaffinity.py
+++ b/gallery_dl/extractor/furaffinity.py
@@ -233,3 +233,29 @@ class FuraffinityUserExtractor(FuraffinityExtractor):
(FuraffinityScrapsExtractor , base.format("scraps")),
(FuraffinityFavoriteExtractor, base.format("favorites")),
), ("gallery",))
+
+
+class FuraffinityFollowingExtractor(FuraffinityExtractor):
+ """Extractor for a furaffinity user's watched users"""
+ subcategory = "following"
+ pattern = BASE_PATTERN + "/watchlist/by/([^/?&#]+)"
+ test = ("https://www.furaffinity.net/watchlist/by/mirlinthloth/", {
+ "pattern": FuraffinityUserExtractor.pattern,
+ "range": "176-225",
+ "count": 50,
+ })
+
+ def items(self):
+ url = "{}/watchlist/by/{}/".format(self.root, self.user)
+ data = {"_extractor": FuraffinityUserExtractor}
+
+ while True:
+ page = self.request(url).text
+
+ for path in text.extract_iter(page, '<a href="', '"'):
+ yield Message.Queue, self.root + path, data
+
+ path = text.rextract(page, 'action="', '"')[0]
+ if url.endswith(path):
+ return
+ url = self.root + path