[civitai] always provide 'file[…]' metadata (#7548)
wrap most top-level values of (single) image results into a 'file' object
This commit is contained in:
@@ -22,9 +22,9 @@ class CivitaiExtractor(Extractor):
|
||||
"""Base class for civitai extractors"""
|
||||
category = "civitai"
|
||||
root = "https://civitai.com"
|
||||
directory_fmt = ("{category}", "{username|user[username]}", "images")
|
||||
filename_fmt = "{file[id]|id|filename}.{extension}"
|
||||
archive_fmt = "{file[uuid]|uuid}"
|
||||
directory_fmt = ("{category}", "{user[username]}", "images")
|
||||
filename_fmt = "{file[id]}.{extension}"
|
||||
archive_fmt = "{file[uuid]}"
|
||||
request_interval = (0.5, 1.5)
|
||||
|
||||
def _init(self):
|
||||
@@ -107,25 +107,32 @@ class CivitaiExtractor(Extractor):
|
||||
|
||||
images = self.images()
|
||||
if images:
|
||||
for image in images:
|
||||
for file in images:
|
||||
|
||||
data = {
|
||||
"file": file,
|
||||
"user": file.pop("user"),
|
||||
}
|
||||
|
||||
if self._meta_generation:
|
||||
image["generation"] = \
|
||||
self._extract_meta_generation(image)
|
||||
data["generation"] = \
|
||||
self._extract_meta_generation(file)
|
||||
if self._meta_version:
|
||||
image["model"], image["version"] = \
|
||||
self._extract_meta_version(image, False)
|
||||
image["date"] = text.parse_datetime(
|
||||
image["createdAt"], "%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
data["model"], data["version"] = \
|
||||
self._extract_meta_version(file, False)
|
||||
if "post" in file:
|
||||
data["post"] = file.pop("post")
|
||||
file["date"] = text.parse_datetime(
|
||||
file["createdAt"], "%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
|
||||
url = self._url(image)
|
||||
text.nameext_from_url(url, image)
|
||||
if not image["extension"]:
|
||||
image["extension"] = (
|
||||
self._video_ext if image.get("type") == "video" else
|
||||
data["url"] = url = self._url(file)
|
||||
text.nameext_from_url(url, data)
|
||||
if not data["extension"]:
|
||||
data["extension"] = (
|
||||
self._video_ext if file.get("type") == "video" else
|
||||
self._image_ext)
|
||||
yield Message.Directory, image
|
||||
yield Message.Url, url, image
|
||||
yield Message.Directory, data
|
||||
yield Message.Url, url, data
|
||||
return
|
||||
|
||||
def models(self):
|
||||
|
||||
Reference in New Issue
Block a user