summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/3dbooru.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2020-12-13 23:07:42 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2020-12-13 23:07:42 -0500
commit8f7c87a2697113134c311aaeafd9c919555a2741 (patch)
tree4ff7316ac1570683b3c968fd30d044925e47a2a5 /gallery_dl/extractor/3dbooru.py
parent143723944033d7a6593d57bd1cf6ae97713b6ce7 (diff)
New upstream version 1.16.0.upstream/1.16.0
Diffstat (limited to 'gallery_dl/extractor/3dbooru.py')
-rw-r--r--gallery_dl/extractor/3dbooru.py39
1 files changed, 23 insertions, 16 deletions
diff --git a/gallery_dl/extractor/3dbooru.py b/gallery_dl/extractor/3dbooru.py
index 3773ee5..e0066cb 100644
--- a/gallery_dl/extractor/3dbooru.py
+++ b/gallery_dl/extractor/3dbooru.py
@@ -1,22 +1,21 @@
# -*- coding: utf-8 -*-
-# Copyright 2015-2019 Mike Fährmann
+# Copyright 2015-2020 Mike Fährmann
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
-"""Extract images from http://behoimi.org/"""
+"""Extractors for http://behoimi.org/"""
-from . import booru
+from . import moebooru
-class _3dbooruExtractor(booru.MoebooruPageMixin, booru.BooruExtractor):
+class _3dbooruBase():
"""Base class for 3dbooru extractors"""
category = "3dbooru"
- api_url = "http://behoimi.org/post/index.json"
- post_url = "http://behoimi.org/post/show/{}"
- page_limit = 1000
+ basecategory = "booru"
+ root = "http://behoimi.org"
def __init__(self, match):
super().__init__(match)
@@ -26,7 +25,7 @@ class _3dbooruExtractor(booru.MoebooruPageMixin, booru.BooruExtractor):
})
-class _3dbooruTagExtractor(booru.TagMixin, _3dbooruExtractor):
+class _3dbooruTagExtractor(_3dbooruBase, moebooru.MoebooruTagExtractor):
"""Extractor for images from behoimi.org based on search-tags"""
pattern = (r"(?:https?://)?(?:www\.)?behoimi\.org/post"
r"(?:/(?:index)?)?\?tags=(?P<tags>[^&#]+)")
@@ -35,8 +34,12 @@ class _3dbooruTagExtractor(booru.TagMixin, _3dbooruExtractor):
"content": "11cbda40c287e026c1ce4ca430810f761f2d0b2a",
})
+ def posts(self):
+ params = {"tags": self.tags}
+ return self._pagination(self.root + "/post/index.json", params)
-class _3dbooruPoolExtractor(booru.PoolMixin, _3dbooruExtractor):
+
+class _3dbooruPoolExtractor(_3dbooruBase, moebooru.MoebooruPoolExtractor):
"""Extractor for image-pools from behoimi.org"""
pattern = r"(?:https?://)?(?:www\.)?behoimi\.org/pool/show/(?P<pool>\d+)"
test = ("http://behoimi.org/pool/show/27", {
@@ -44,8 +47,12 @@ class _3dbooruPoolExtractor(booru.PoolMixin, _3dbooruExtractor):
"content": "fd5b37c5c6c2de4b4d6f1facffdefa1e28176554",
})
+ def posts(self):
+ params = {"tags": "pool:" + self.pool_id}
+ return self._pagination(self.root + "/post/index.json", params)
+
-class _3dbooruPostExtractor(booru.PostMixin, _3dbooruExtractor):
+class _3dbooruPostExtractor(_3dbooruBase, moebooru.MoebooruPostExtractor):
"""Extractor for single images from behoimi.org"""
pattern = r"(?:https?://)?(?:www\.)?behoimi\.org/post/show/(?P<post>\d+)"
test = ("http://behoimi.org/post/show/140852", {
@@ -60,8 +67,13 @@ class _3dbooruPostExtractor(booru.PostMixin, _3dbooruExtractor):
},
})
+ def posts(self):
+ params = {"tags": "id:" + self.post_id}
+ return self._pagination(self.root + "/post/index.json", params)
+
-class _3dbooruPopularExtractor(booru.MoebooruPopularMixin, _3dbooruExtractor):
+class _3dbooruPopularExtractor(
+ _3dbooruBase, moebooru.MoebooruPopularExtractor):
"""Extractor for popular images from behoimi.org"""
pattern = (r"(?:https?://)?(?:www\.)?behoimi\.org"
r"/post/popular_(?P<scale>by_(?:day|week|month)|recent)"
@@ -70,8 +82,3 @@ class _3dbooruPopularExtractor(booru.MoebooruPopularMixin, _3dbooruExtractor):
"pattern": r"http://behoimi\.org/data/../../[0-9a-f]{32}\.jpg",
"count": 20,
})
-
- def __init__(self, match):
- super().__init__(match)
- self.api_url = "http://behoimi.org/post/popular_{scale}.json".format(
- scale=self.scale)