[danbooru] update to new format

This commit is contained in:
Mike Fährmann
2015-11-21 00:55:25 +01:00
parent 74199422a8
commit 15dec86e6a

View File

@@ -8,73 +8,21 @@
"""Extract image-urls from https://danbooru.donmai.us/""" """Extract image-urls from https://danbooru.donmai.us/"""
from .booru import JSONBooruExtractor from . import booru
from .. import text
class DanbooruTagExtractor(JSONBooruExtractor): class DanbooruExtractor(booru.JSONBooruExtractor):
"""Extract images bsaed on search-tags""" """Base class for danbooru extractors"""
category = "danbooru"
api_url = "https://danbooru.donmai.us/posts.json"
info = { class DanbooruTagExtractor(DanbooruExtractor, booru.BooruTagExtractor):
"category": "danbooru", """Extract images from danbooru based on search-tags"""
"directory": ["{category}", "{tags}"], pattern = [r"(?:https?://)?(?:www\.)?danbooru.donmai.us/posts\?(?:utf8=%E2%9C%93&)?tags=([^&]+)"]
"filename": "{category}_{id}_{md5}.{extension}",
}
pattern = [
r"(?:https?://)?(?:www\.)?danbooru.donmai.us/posts\?(?:utf8=%E2%9C%93&)?tags=([^&]+)",
]
def __init__(self, match): class DanbooruPoolExtractor(DanbooruExtractor, booru.BooruPoolExtractor):
JSONBooruExtractor.__init__(self) """Extract image-pools from danbooru"""
self.api_url = "https://danbooru.donmai.us/posts.json" pattern = [r"(?:https?://)?(?:www\.)?danbooru.donmai.us/pools/(\d+)"]
self.tags = text.unquote(match.group(1))
self.params = {"tags": self.tags}
def get_job_metadata(self): class DanbooruPostExtractor(DanbooruExtractor, booru.BooruPostExtractor):
"""Collect metadata for extractor-job""" """Extract single images from danbooru"""
return { pattern = [r"(?:https?://)?(?:www\.)?danbooru.donmai.us/posts/(\d+)"]
"category": self.info["category"],
"tags": self.tags,
}
class DanbooruPoolExtractor(JSONBooruExtractor):
"""Extract image-pools"""
info = {
"category": "danbooru",
"directory": ["{category}", "pool", "{pool}"],
"filename": "{category}_{id}_{md5}.{extension}",
}
pattern = [
r"(?:https?://)?(?:www\.)?danbooru.donmai.us/pools/(\d+)",
]
def __init__(self, match):
JSONBooruExtractor.__init__(self)
self.api_url = "https://danbooru.donmai.us/posts.json"
self.pool = match.group(1)
self.params = {"tags": "pool:" + self.pool}
def get_job_metadata(self):
"""Collect metadata for extractor-job"""
return {
"category": self.info["category"],
"pool": self.pool,
}
class DanbooruPostExtractor(JSONBooruExtractor):
"""Extract single images"""
info = {
"category": "danbooru",
"directory": ["{category}"],
"filename": "{category}_{id}_{md5}.{extension}",
}
pattern = [
r"(?:https?://)?(?:www\.)?danbooru.donmai.us/posts/(\d+)",
]
def __init__(self, match):
JSONBooruExtractor.__init__(self)
self.api_url = "https://danbooru.donmai.us/posts.json"
self.post = match.group(1)
self.params = {"tags": "id:" + self.post}