summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/fanbox.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/fanbox.py')
-rw-r--r--gallery_dl/extractor/fanbox.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/gallery_dl/extractor/fanbox.py b/gallery_dl/extractor/fanbox.py
index 61a3928..2223403 100644
--- a/gallery_dl/extractor/fanbox.py
+++ b/gallery_dl/extractor/fanbox.py
@@ -11,7 +11,8 @@ from .. import text
from ..cache import memcache
import re
-BASE_PATTERN = (
+BASE_PATTERN = r"(?:https?://)?(?:www\.)?fanbox\.cc"
+USER_PATTERN = (
r"(?:https?://)?(?:"
r"(?!www\.)([\w-]+)\.fanbox\.cc|"
r"(?:www\.)?fanbox\.cc/@([\w-]+))"
@@ -290,7 +291,7 @@ class FanboxExtractor(Extractor):
class FanboxCreatorExtractor(FanboxExtractor):
"""Extractor for a Fanbox creator's works"""
subcategory = "creator"
- pattern = BASE_PATTERN + r"(?:/posts)?/?$"
+ pattern = USER_PATTERN + r"(?:/posts)?/?$"
example = "https://USER.fanbox.cc/"
def __init__(self, match):
@@ -305,7 +306,7 @@ class FanboxCreatorExtractor(FanboxExtractor):
class FanboxPostExtractor(FanboxExtractor):
"""Extractor for media from a single Fanbox post"""
subcategory = "post"
- pattern = BASE_PATTERN + r"/posts/(\d+)"
+ pattern = USER_PATTERN + r"/posts/(\d+)"
example = "https://USER.fanbox.cc/posts/12345"
def __init__(self, match):
@@ -316,6 +317,28 @@ class FanboxPostExtractor(FanboxExtractor):
return (self._get_post_data(self.post_id),)
+class FanboxHomeExtractor(FanboxExtractor):
+ """Extractor for your Fanbox home feed"""
+ subcategory = "home"
+ pattern = BASE_PATTERN + r"/?$"
+ example = "https://fanbox.cc/"
+
+ def posts(self):
+ url = "https://api.fanbox.cc/post.listHome?limit=10"
+ return self._pagination(url)
+
+
+class FanboxSupportingExtractor(FanboxExtractor):
+ """Extractor for your supported Fanbox users feed"""
+ subcategory = "supporting"
+ pattern = BASE_PATTERN + r"/home/supporting"
+ example = "https://fanbox.cc/home/supporting"
+
+ def posts(self):
+ url = "https://api.fanbox.cc/post.listSupporting?limit=10"
+ return self._pagination(url)
+
+
class FanboxRedirectExtractor(Extractor):
"""Extractor for pixiv redirects to fanbox.cc"""
category = "fanbox"