添加活动PSD检测

main
程祎 2023-11-01 11:46:59 +08:00
parent 7e5c20a353
commit 063a08a967
2 changed files with 37 additions and 26 deletions

5
activity/README.md Normal file
View File

@ -0,0 +1,5 @@
存放活动的资源
活动封面拼图psd_id编号从90000开始-99999(9万-9.9999万)
活动子关卡拼图psd_id编号从100000开始-14999910万-14.9999万)

View File

@ -42,11 +42,13 @@ def parse_psd(path):
max_width = 0
max_height = 0
is_activity_main_psd = path.find("activity/main_psd/") != -1
for item in psd.descendants():
if not item.is_group():
nArr = item.name.split('_')
if item.name == "base":
#在活动背景中基础图为base_1
if item.name == "base" or (is_activity_main_psd and item.name == "base_1"):
max_width = item.width
max_height = item.height
break
@ -55,18 +57,14 @@ def parse_psd(path):
if not item.is_group():
nArr = item.name.split('_')
if item.name == "base":
max_width = item.width
max_height = item.height
if item.name.strip() != item.name:
log.append("命名中存在空格:{}".format(item.name))
if nArr[0] == 'base':
if not is_activity_main_psd and nArr[0] == 'base':
if has_base:
log.append("存在多个base图层")
has_base = True
elif nArr[0] == 'finish':
elif not is_activity_main_psd and nArr[0] == 'finish':
if has_finish:
log.append("存在多个finish图层")
has_finish = True
@ -96,6 +94,12 @@ def parse_psd(path):
auto_stages[nArr[1]].append(nArr[2])
elif nArr[0] == 'thumbnail' or nArr[0] == 'role' or nArr[0] == 'rptmp':
pass
elif is_activity_main_psd and nArr[0] == 'dot':
if len(nArr) != 4:
log.append("活动子点位,命名错误:{}".format(item.name))
elif is_activity_main_psd and nArr[0] == 'base':
if nArr[1] == '1':
has_base = True
else:
log.append("命名错误:{}\n".format(item.name))
@ -114,7 +118,7 @@ def parse_psd(path):
if not has_base:
log.append("未检测到base图层\n")
if not has_finish:
if not is_activity_main_psd and not has_finish:
log.append("未检测到finish图层\n")
for stage in patch_stages:
@ -133,27 +137,28 @@ def parse_psd(path):
else:
tmp[item] = 0
if len(lines) > 0 and len(patch_stages) != len(lines):
log.append("阶段与线稿不对应,线稿:{} 关卡:".format(len(lines), len(patch_stages)))
if not is_activity_main_psd:
if len(lines) > 0 and len(patch_stages) != len(lines):
log.append("阶段与线稿不对应,线稿:{} 关卡:".format(len(lines), len(patch_stages)))
for item in patch_end:
if item not in line_end:
log.append("patch图层找不到描线patch{}".format(item))
for item in patch_end:
if item not in line_end:
log.append("patch图层找不到描线patch{}".format(item))
for item in line_end:
if item not in patch_end:
log.append("描线找不到patch图层line{}".format(item))
for item in line_end:
if item not in patch_end:
log.append("描线找不到patch图层line{}".format(item))
log.append("检测结束")
if len(log) == 2:
return True, len(lines) > 0
return True
else:
for a_log in log:
print(a_log)
return False, len(lines) > 0
return False
def convert_2_zip_file(path):
def convert_2_zip_file(path, is_activity_psd):
file_info_arr = os.path.split(path)
file_path = file_info_arr[0]
file_name = os.path.split(path)[1]
@ -163,6 +168,8 @@ def convert_2_zip_file(path):
file_name_without_ex = file_name.split(".")[0]
utils.zip_file("{}.psd".format(file_name_without_ex), "{}.zip".format(file_name_without_ex))
os.chdir("../")
if is_activity_psd:
os.chdir("../")
os.remove(path)
###生成version文件
@ -239,16 +246,15 @@ if __name__ == '__main__':
hash_now = utils.calc_hash(psd_file)
try:
ret, has_line = parse_psd(psd_file)
ret = parse_psd(psd_file)
is_activity_psd = psd_file.find("activity/main_psd/") != -1 or psd_file.find("activity/level_psd/") != -1
if ret:
if not has_line:
export_outline.export_outline(psd_file)
#检测成功压缩到zip
convert_2_zip_file(psd_file)
convert_2_zip_file(psd_file, is_activity_psd)
versions[key] = hash_now
write_version();
write_version()
except Exception as e:
print(name + " 解析失败:" + repr(e) + "请检查命名规范比如auto_1_1=>auto_1 或 patch_1_1=>patch_1")
elif hash_now == hash_old:
convert_2_zip_file(src_file)
is_activity_psd = src_file.find("activity/main_psd/") != -1
convert_2_zip_file(src_file, is_activity_psd)