aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/inkbunny.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/inkbunny.py')
-rw-r--r--gallery_dl/extractor/inkbunny.py36
1 files changed, 34 insertions, 2 deletions
diff --git a/gallery_dl/extractor/inkbunny.py b/gallery_dl/extractor/inkbunny.py
index 706cd34..83a1a19 100644
--- a/gallery_dl/extractor/inkbunny.py
+++ b/gallery_dl/extractor/inkbunny.py
@@ -30,10 +30,12 @@ class InkbunnyExtractor(Extractor):
def items(self):
self.api.authenticate()
+ metadata = self.metadata()
to_bool = ("deleted", "favorite", "friends_only", "guest_block",
"hidden", "public", "scraps")
for post in self.posts():
+ post.update(metadata)
post["date"] = text.parse_datetime(
post["create_datetime"] + "00", "%Y-%m-%d %H:%M:%S.%f%z")
post["tags"] = [kw["keyword_name"] for kw in post["keywords"]]
@@ -60,6 +62,12 @@ class InkbunnyExtractor(Extractor):
url += "?sid=" + self.api.session_id
yield Message.Url, url, post
+ def posts(self):
+ return ()
+
+ def metadata(self):
+ return ()
+
class InkbunnyUserExtractor(InkbunnyExtractor):
"""Extractor for inkbunny user profiles"""
@@ -144,6 +152,7 @@ class InkbunnyPoolExtractor(InkbunnyExtractor):
test = (
("https://inkbunny.net/poolview_process.php?pool_id=28985", {
"count": 9,
+ "keyword": {"pool_id": "28985"},
}),
("https://inkbunny.net/submissionsviewall.php?rid=ffffffffff"
"&mode=pool&pool_id=28985&page=1&orderby=pool_order&random=no"),
@@ -160,6 +169,9 @@ class InkbunnyPoolExtractor(InkbunnyExtractor):
self.pool_id = params.get("pool_id")
self.orderby = params.get("orderby", "pool_order")
+ def metadata(self):
+ return {"pool_id": self.pool_id}
+
def posts(self):
params = {
"pool_id": self.pool_id,
@@ -179,6 +191,7 @@ class InkbunnyFavoriteExtractor(InkbunnyExtractor):
"pattern": r"https://[\w.]+\.metapix\.net/files/full"
r"/\d+/\d+_\w+_.+",
"range": "20-50",
+ "keyword": {"favs_user_id": "20969"},
}),
("https://inkbunny.net/submissionsviewall.php?rid=ffffffffff"
"&mode=userfavs&random=no&orderby=fav_datetime&page=1&user_id=20969"),
@@ -195,6 +208,9 @@ class InkbunnyFavoriteExtractor(InkbunnyExtractor):
self.user_id = params.get("user_id")
self.orderby = params.get("orderby", "fav_datetime")
+ def metadata(self):
+ return {"favs_user_id": self.user_id}
+
def posts(self):
params = {
"favs_user_id": self.user_id,
@@ -216,14 +232,30 @@ class InkbunnySearchExtractor(InkbunnyExtractor):
"&favsby=&type=&days=&keyword_id=&user_id=&random=&md5="), {
"range": "1-10",
"count": 10,
+ "keyword": {
+ "search": {
+ "rid": "ffffffffff",
+ "mode": "search",
+ "page": "1",
+ "orderby": "create_datetime",
+ "text": "cute",
+ "stringtype": "and",
+ "keywords": "yes",
+ "title": "yes",
+ "description": "no",
+ },
+ },
})
def __init__(self, match):
InkbunnyExtractor.__init__(self, match)
- self.query = match.group(1)
+ self.params = text.parse_query(match.group(1))
+
+ def metadata(self):
+ return {"search": self.params}
def posts(self):
- params = text.parse_query(self.query)
+ params = self.params.copy()
pop = params.pop
pop("rid", None)