Add: 4k water mark

This commit is contained in:
yoshiko2
2022-11-24 01:36:28 +08:00
parent d724b9379b
commit a4baef392f

57
core.py
View File

@@ -393,9 +393,6 @@ def print_files(path, leak_word, c_word, naming_rule, part, cn_sub, json_data, f
print(" <tag>4k</tag>", file=code)
for i in tag:
print(" <tag>" + i + "</tag>", file=code)
# print(" <tag>" + series + "</tag>", file=code)
except:
pass
if cn_sub == '1':
print(" <genre>中文字幕</genre>", file=code)
if liuchu == '流出':
@@ -409,7 +406,6 @@ def print_files(path, leak_word, c_word, naming_rule, part, cn_sub, json_data, f
try:
for i in tag:
print(" <genre>" + i + "</genre>", file=code)
# print(" <genre>" + series + "</genre>", file=code)
except:
pass
print(" <num>" + number + "</num>", file=code)
@@ -469,12 +465,10 @@ def print_files(path, leak_word, c_word, naming_rule, part, cn_sub, json_data, f
return
def add_mark(poster_path, thumb_path, cn_sub, leak, uncensored, hack) -> None:
def add_mark(poster_path, thumb_path, cn_sub, leak, uncensored, hack, _4k) -> None:
"""
add watermark on poster or thumb for describe extra properties 给海报和缩略图加属性水印
此函数从gui版copy过来用用
:poster_path 海报位置
:thumb_path 缩略图位置
:cn_sub: 中文字幕 可选值1,"1" 或其他值
@@ -490,14 +484,16 @@ def add_mark(poster_path, thumb_path, cn_sub, leak, uncensored, hack) -> None:
mark_type += ',无码'
if hack:
mark_type += ',破解'
if _4k:
mark_type += ',4k'
if mark_type == '':
return
add_mark_thread(thumb_path, cn_sub, leak, uncensored, hack)
add_mark_thread(poster_path, cn_sub, leak, uncensored, hack)
add_mark_thread(thumb_path, cn_sub, leak, uncensored, hack, _4k)
add_mark_thread(poster_path, cn_sub, leak, uncensored, hack, _4k)
print('[+]Add Mark: ' + mark_type.strip(','))
def add_mark_thread(pic_path, cn_sub, leak, uncensored, hack):
def add_mark_thread(pic_path, cn_sub, leak, uncensored, hack, _4k):
size = 9
img_pic = Image.open(pic_path)
# 获取自定义位置取余配合pos达到顺时针添加的效果
@@ -513,6 +509,8 @@ def add_mark_thread(pic_path, cn_sub, leak, uncensored, hack):
add_to_pic(pic_path, img_pic, size, count, 3)
if hack == 1 or hack == '1':
add_to_pic(pic_path, img_pic, size, count, 4)
if _4k == 1 or _4k == '1':
add_to_pic(pic_path, img_pic, size, count, 5)
img_pic.close()
@@ -527,6 +525,8 @@ def add_to_pic(pic_path, img_pic, size, count, mode):
pngpath = "Img/UNCENSORED.png"
elif mode == 4:
pngpath = "Img/HACK.png"
elif mode == 5:
pngpath = "Img/4K.png"
else:
print('[-]Error: watermark image param mode invalid!')
return
@@ -730,6 +730,7 @@ def core_main_no_net_op(movie_path, number):
cn_sub = ''
hack = ''
hack_word = ''
_4k = ''
imagecut = 1
multi = False
part = ''
@@ -751,7 +752,15 @@ def core_main_no_net_op(movie_path, number):
hack = 1
hack_word = "-hack"
try:
props = get_video_properties(movie_path) # 判断是否为4K视频
if props['width'] >= 4096 or props['height'] >= 2160:
_4k = '1'
except:
pass
prestr = f"{number}{leak_word}{c_word}{hack_word}"
full_nfo = Path(path) / f"{prestr}{part}.nfo"
if full_nfo.is_file():
if full_nfo.read_text(encoding='utf-8').find(r'<tag>无码</tag>') >= 0:
@@ -780,7 +789,7 @@ def core_main_no_net_op(movie_path, number):
cutImage(imagecut, path, fanart_path, poster_path, bool(conf.face_uncensored_only() and not uncensored))
if conf.is_watermark():
add_mark(full_poster_path, full_thumb_path, cn_sub, leak, uncensored, hack)
add_mark(full_poster_path, full_thumb_path, cn_sub, leak, uncensored, hack, _4k)
if multi and conf.jellyfin_multi_part_fanart():
linkImage(path, number, part, leak_word, c_word, hack_word, ext)
@@ -798,7 +807,6 @@ def core_main(movie_path, number_th, oCC, specified_source=None, specified_url=N
hack = ''
hack_word = ''
_4k = ''
_4k_world = ''
# 下面被注释的变量不需要
# rootpath = os.getcwd
@@ -846,10 +854,13 @@ def core_main(movie_path, number_th, oCC, specified_source=None, specified_url=N
# 判断是否4k
if '4K' in tag:
tag.remove('4K') # 从tag中移除'4K'
props = get_video_properties(movie_path) # 判断是否为4K视频
if props['width'] >= 4096 or props['height'] >= 2160:
_4k = '4k'
_4k_world = '-4k'
try:
props = get_video_properties(movie_path) # 判断是否为4K视频
if props['width'] >= 4096 or props['height'] >= 2160:
_4k = '1'
except:
pass
# 调试模式检测
if conf.debug():
@@ -914,10 +925,6 @@ def core_main(movie_path, number_th, oCC, specified_source=None, specified_url=N
# 裁剪图
cutImage(imagecut, path, fanart_path, poster_path, bool(conf.face_uncensored_only() and not uncensored))
# 添加水印
if conf.is_watermark():
add_mark(os.path.join(path, poster_path), os.path.join(path, thumb_path), cn_sub, leak, uncensored, hack)
# 兼容Jellyfin封面图文件名规则
if multi_part and conf.jellyfin_multi_part_fanart():
linkImage(path, number_th, part, leak_word, c_word, hack_word, ext)
@@ -935,8 +942,13 @@ def core_main(movie_path, number_th, oCC, specified_source=None, specified_url=N
path = create_folder(json_data)
# 移动文件
paste_file_to_folder_mode2(movie_path, path, multi_part, number, part, leak_word, c_word, hack_word)
# Move subtitles
move_status = move_subtitles(movie_path, path, multi_part, number, part, leak_word, c_word, hack_word)
if move_status:
cn_sub = "1"
if conf.is_watermark():
add_mark(os.path.join(path, poster_path), os.path.join(path, thumb_path), cn_sub, leak, uncensored, hack)
add_mark(os.path.join(path, poster_path), os.path.join(path, thumb_path), cn_sub, leak, uncensored, hack,
_4k)
elif conf.main_mode() == 3:
path = str(Path(movie_path).parent)
@@ -980,7 +992,8 @@ def core_main(movie_path, number_th, oCC, specified_source=None, specified_url=N
# 添加水印
if conf.is_watermark():
add_mark(os.path.join(path, poster_path), os.path.join(path, thumb_path), cn_sub, leak, uncensored, hack)
add_mark(os.path.join(path, poster_path), os.path.join(path, thumb_path), cn_sub, leak, uncensored, hack,
_4k)
# 兼容Jellyfin封面图文件名规则
if multi_part and conf.jellyfin_multi_part_fanart():