|
|
|
@ -8,24 +8,25 @@
|
|
|
|
|
|
|
|
|
|
"""Extract image-urls from http://behoimi.org/"""
|
|
|
|
|
|
|
|
|
|
from .booru import JSONBooruExtractor
|
|
|
|
|
from . import booru
|
|
|
|
|
|
|
|
|
|
info = {
|
|
|
|
|
"category": "3dbooru",
|
|
|
|
|
"extractor": "ThreeDeeBooruExtractor",
|
|
|
|
|
"directory": ["{category}", "{tags}"],
|
|
|
|
|
"filename": "{category}_{id}_{md5}.{extension}",
|
|
|
|
|
"pattern": [
|
|
|
|
|
r"(?:https?://)?(?:www\.)?behoimi\.org/post(?:/(?:index)?)?\?tags=([^&]+).*",
|
|
|
|
|
],
|
|
|
|
|
}
|
|
|
|
|
class ThreeDeeBooruExtractor(booru.JSONBooruExtractor):
|
|
|
|
|
"""Base class for 3dbooru extractors"""
|
|
|
|
|
category = "3dbooru"
|
|
|
|
|
api_url = "http://behoimi.org/post/index.json"
|
|
|
|
|
headers = {
|
|
|
|
|
"Referer": "http://behoimi.org/post/show/",
|
|
|
|
|
"User-Agent": "Mozilla/5.0",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class ThreeDeeBooruExtractor(JSONBooruExtractor):
|
|
|
|
|
class ThreeDeeBooruTagExtractor(ThreeDeeBooruExtractor, booru.BooruTagExtractor):
|
|
|
|
|
"""Extract images from 3dbooru based on search-tags"""
|
|
|
|
|
pattern = [r"(?:https?://)?(?:www\.)?behoimi\.org/post(?:/(?:index)?)?\?tags=([^&]+)"]
|
|
|
|
|
|
|
|
|
|
def __init__(self, match):
|
|
|
|
|
JSONBooruExtractor.__init__(self, match, info)
|
|
|
|
|
self.api_url = "http://behoimi.org/post/index.json"
|
|
|
|
|
self.headers = {
|
|
|
|
|
"Referer": "http://behoimi.org/post/show/",
|
|
|
|
|
"User-Agent": "Mozilla/5.0"
|
|
|
|
|
}
|
|
|
|
|
class ThreeDeeBooruPoolExtractor(ThreeDeeBooruExtractor, booru.BooruPoolExtractor):
|
|
|
|
|
"""Extract image-pools from 3dbooru"""
|
|
|
|
|
pattern = [r"(?:https?://)?(?:www\.)?behoimi\.org/pool/show/(\d+)"]
|
|
|
|
|
|
|
|
|
|
class ThreeDeeBooruPostExtractor(ThreeDeeBooruExtractor, booru.BooruPostExtractor):
|
|
|
|
|
"""Extract single images from 3dbooru"""
|
|
|
|
|
pattern = [r"(?:https?://)?(?:www\.)?behoimi\.org/post/show/(\d+)"]
|
|
|
|
|