mirror of
https://gist.github.com/6ba37e4d4084e858f917e271550ce5f6.git
synced 2024-09-20 00:34:20 +03:00
Sanitize character tags by removing copyright suffix
This commit is contained in:
parent
40aac6203b
commit
5e22d1d9a6
3
_README.md
Normal file
3
_README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
## PicSorter
|
||||||
|
|
||||||
|
Finds an image on danbooru, writes tags as IPTC keywords, than places the image in the library
|
11
library.py
11
library.py
@ -7,7 +7,7 @@ import os
|
|||||||
class Library:
|
class Library:
|
||||||
def __init__(self, dir_root: Path):
|
def __init__(self, dir_root: Path):
|
||||||
self.dir_root = dir_root
|
self.dir_root = dir_root
|
||||||
self.dir_orphan = Path(dir_root, 'orphan')
|
self.dir_orphan = Path(dir_root, '_orphan')
|
||||||
self.dir_orphan.mkdir(exist_ok=True, parents=True)
|
self.dir_orphan.mkdir(exist_ok=True, parents=True)
|
||||||
|
|
||||||
def move_to_orphan(self, p: Path):
|
def move_to_orphan(self, p: Path):
|
||||||
@ -37,14 +37,9 @@ class Library:
|
|||||||
if tags.characters == "":
|
if tags.characters == "":
|
||||||
return p
|
return p
|
||||||
# Characters section
|
# Characters section
|
||||||
characters = tags.characters.split(" ")
|
characters = tags.characters_sanitized()
|
||||||
if len(characters) == 1:
|
if len(characters) == 1:
|
||||||
character = characters[0] \
|
p = p / self.__sanitize(characters[0])
|
||||||
.replace(copyright, "") \
|
|
||||||
.replace("("+copyright+")", "") \
|
|
||||||
.replace("()", "") \
|
|
||||||
.strip()
|
|
||||||
p = p / self.__sanitize(character)
|
|
||||||
else:
|
else:
|
||||||
p = p / "_multiple"
|
p = p / "_multiple"
|
||||||
return p
|
return p
|
||||||
|
@ -91,7 +91,7 @@ class Metadata:
|
|||||||
def __format_filename(self, tags: Tags):
|
def __format_filename(self, tags: Tags):
|
||||||
filename = '{} {} by {} at {}.jpg'.format(
|
filename = '{} {} by {} at {}.jpg'.format(
|
||||||
tags.copyrights.split(" ")[0] or "",
|
tags.copyrights.split(" ")[0] or "",
|
||||||
", ".join(tags.characters.split(" ")[:2]),
|
", ".join(tags.characters_sanitized()[:2]),
|
||||||
tags.artists.split(" ")[0] or "",
|
tags.artists.split(" ")[0] or "",
|
||||||
datetime.now().strftime('%Y%m%d_%H%M%S')
|
datetime.now().strftime('%Y%m%d_%H%M%S')
|
||||||
)
|
)
|
||||||
|
18
tags.py
18
tags.py
@ -14,6 +14,24 @@ class Tags:
|
|||||||
self.tags = self.__union_tags()
|
self.tags = self.__union_tags()
|
||||||
self.tags_string = " ".join(self.tags)
|
self.tags_string = " ".join(self.tags)
|
||||||
|
|
||||||
|
def characters_sanitized(self) -> list:
|
||||||
|
if self.copyrights == "":
|
||||||
|
# No need to sanitize tags
|
||||||
|
return self.characters.split(" ")
|
||||||
|
copyrights = self.copyrights.split(" ")
|
||||||
|
return _(self.characters) \
|
||||||
|
.split(" ") \
|
||||||
|
.filter(lambda s: s != "") \
|
||||||
|
.map(lambda s: self.__rename(s, copyrights)) \
|
||||||
|
._
|
||||||
|
|
||||||
|
def __rename(self, s: str, substrings: list) -> str:
|
||||||
|
for substring in substrings:
|
||||||
|
s = s.replace("_("+substring+")", "") \
|
||||||
|
.replace("("+substring+")", "") \
|
||||||
|
.strip()
|
||||||
|
return s
|
||||||
|
|
||||||
def __union_tags(self):
|
def __union_tags(self):
|
||||||
tags = self.general.split(" ")
|
tags = self.general.split(" ")
|
||||||
tags += self.__prefix_tags(self.copyrights, 'copyright_')
|
tags += self.__prefix_tags(self.copyrights, 'copyright_')
|
||||||
|
Loading…
Reference in New Issue
Block a user