summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/3dbooru.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2019-07-02 04:33:45 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2019-07-02 04:33:45 -0400
commit195c45911e79c33cf0bb986721365fb06df5a153 (patch)
treeac0c9b6ef40bea7aa7ab0c5c3cb500eb510668fa /gallery_dl/extractor/3dbooru.py
Import Upstream version 1.8.7upstream/1.8.7
Diffstat (limited to 'gallery_dl/extractor/3dbooru.py')
-rw-r--r--gallery_dl/extractor/3dbooru.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/gallery_dl/extractor/3dbooru.py b/gallery_dl/extractor/3dbooru.py
new file mode 100644
index 0000000..d0e59ad
--- /dev/null
+++ b/gallery_dl/extractor/3dbooru.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+
+# Copyright 2015-2019 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/"""
+
+from . import booru
+
+
+class ThreedeebooruExtractor(booru.MoebooruPageMixin, booru.BooruExtractor):
+ """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
+
+ def __init__(self, match):
+ super().__init__(match)
+ self.session.headers.update({
+ "Referer": "http://behoimi.org/post/show/",
+ "Accept-Encoding": "identity",
+ })
+
+
+class ThreedeebooruTagExtractor(booru.TagMixin,
+ ThreedeebooruExtractor):
+ """Extractor for images from behoimi.org based on search-tags"""
+ pattern = (r"(?:https?://)?(?:www\.)?behoimi\.org/post"
+ r"(?:/(?:index)?)?\?tags=(?P<tags>[^&#]+)")
+ test = ("http://behoimi.org/post?tags=himekawa_azuru+dress", {
+ "url": "ecb30c6aaaf8a6ff8f55255737a9840832a483c1",
+ "content": "11cbda40c287e026c1ce4ca430810f761f2d0b2a",
+ })
+
+
+class ThreedeebooruPoolExtractor(booru.PoolMixin,
+ ThreedeebooruExtractor):
+ """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", {
+ "url": "da75d2d1475449d5ef0c266cb612683b110a30f2",
+ "content": "fd5b37c5c6c2de4b4d6f1facffdefa1e28176554",
+ })
+
+
+class ThreedeebooruPostExtractor(booru.PostMixin,
+ ThreedeebooruExtractor):
+ """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", {
+ "url": "ce874ea26f01d6c94795f3cc3aaaaa9bc325f2f6",
+ "content": "26549d55b82aa9a6c1686b96af8bfcfa50805cd4",
+ "options": (("tags", True),),
+ "keyword": {
+ "tags_character": "furude_rika",
+ "tags_copyright": "higurashi_no_naku_koro_ni",
+ "tags_model": "himekawa_azuru",
+ "tags_general": str,
+ },
+ })
+
+
+class ThreedeebooruPopularExtractor(booru.MoebooruPopularMixin,
+ ThreedeebooruExtractor):
+ """Extractor for popular images from behoimi.org"""
+ pattern = (r"(?:https?://)?(?:www\.)?behoimi\.org"
+ r"/post/popular_(?P<scale>by_(?:day|week|month)|recent)"
+ r"(?:\?(?P<query>[^#]*))?")
+ test = ("http://behoimi.org/post/popular_by_month?month=2&year=2013", {
+ "url": "c70268dce441a9ccc3383c244ec15edb059f494f",
+ "count": 20,
+ })
+
+ def __init__(self, match):
+ super().__init__(match)
+ self.api_url = "http://behoimi.org/post/popular_{scale}.json".format(
+ scale=self.scale)