mirror of
https://github.com/mikf/gallery-dl.git
synced 2024-11-22 10:42:34 +01:00
merge #6001: [e621] cache pool metadata API calls
This commit is contained in:
commit
54e1023046
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
from .common import Message
|
from .common import Message
|
||||||
from . import danbooru
|
from . import danbooru
|
||||||
|
from ..cache import memcache
|
||||||
from .. import text, util
|
from .. import text, util
|
||||||
|
|
||||||
|
|
||||||
@ -44,16 +45,11 @@ class E621Extractor(danbooru.DanbooruExtractor):
|
|||||||
self.root[8:], md5[0:2], md5[2:4], md5, file["ext"])
|
self.root[8:], md5[0:2], md5[2:4], md5, file["ext"])
|
||||||
|
|
||||||
if notes and post.get("has_notes"):
|
if notes and post.get("has_notes"):
|
||||||
url = "{}/notes.json?search[post_id]={}".format(
|
post["notes"] = self._get_notes(post["id"])
|
||||||
self.root, post["id"])
|
|
||||||
post["notes"] = self.request(url).json()
|
|
||||||
|
|
||||||
if pools and post["pools"]:
|
if pools and post["pools"]:
|
||||||
url = "{}/pools.json?search[id]={}".format(
|
post["pools"] = self._get_pools(
|
||||||
self.root, ",".join(map(str, post["pools"])))
|
",".join(map(str, post["pools"])))
|
||||||
post["pools"] = _pools = self.request(url).json()
|
|
||||||
for pool in _pools:
|
|
||||||
pool["name"] = pool["name"].replace("_", " ")
|
|
||||||
|
|
||||||
post["filename"] = file["md5"]
|
post["filename"] = file["md5"]
|
||||||
post["extension"] = file["ext"]
|
post["extension"] = file["ext"]
|
||||||
@ -64,6 +60,18 @@ class E621Extractor(danbooru.DanbooruExtractor):
|
|||||||
yield Message.Directory, post
|
yield Message.Directory, post
|
||||||
yield Message.Url, file["url"], post
|
yield Message.Url, file["url"], post
|
||||||
|
|
||||||
|
def _get_notes(self, id):
|
||||||
|
return self.request(
|
||||||
|
"{}/notes.json?search[post_id]={}".format(self.root, id)).json()
|
||||||
|
|
||||||
|
@memcache(keyarg=1)
|
||||||
|
def _get_pools(self, ids):
|
||||||
|
pools = self.request(
|
||||||
|
"{}/pools.json?search[id]={}".format(self.root, ids)).json()
|
||||||
|
for pool in pools:
|
||||||
|
pool["name"] = pool["name"].replace("_", " ")
|
||||||
|
return pools
|
||||||
|
|
||||||
|
|
||||||
BASE_PATTERN = E621Extractor.update({
|
BASE_PATTERN = E621Extractor.update({
|
||||||
"e621": {
|
"e621": {
|
||||||
|
Loading…
Reference in New Issue
Block a user