新增检测工具

main
程祎 2023-11-23 15:00:31 +08:00
parent 7b6a78d6df
commit 1dd592cb96
1 changed files with 70 additions and 4 deletions

View File

@ -39,9 +39,17 @@ def parse_psd(path):
sbad_stages = {}
auto_stages = {}
patch_names = []
bad_names = []
spatch_parent_name = []
sbad_parent_name = []
#patch的末尾数字
patch_end = []
spatch_end = []
bad_end = []
sbad_end = []
line_end = []
max_width = 0
@ -101,28 +109,61 @@ def parse_psd(path):
patch_stages[nArr[1]].append(nArr[2])
if item.name not in patch_names:
patch_names.append(item.name)
patch_end.append(item.name.replace("patch", ""))
elif nArr[0] == 'spatch':
if nArr[1] not in spatch_stages:
spatch_stages[nArr[1]] = []
spatch_stages[nArr[1]].append(f"{nArr[2]}_{nArr[3]}")
spatch_stages[nArr[1]].append(nArr[2])
patch_end.append(item.name.replace("spatch", ""))
#检测父节点
#通过正则表达式,筛选出#开头与#结尾的字符串
parr = item.name.split('#')
if len(parr) != 3:
log.append("spatch图层命名错误找不到父节点{}".format(item.name))
else:
parent = parr[1]
if parent not in spatch_parent_name:
spatch_parent_name.append(parent)
tarr = parent.split('_')
if tarr[0] != "patch":
log.append("spatch图层命名错误父节点不是patch{}".format(item.name))
spatch_end.append(item.name.replace("spatch", "").replace(f"_#{parent}#", ""))
elif nArr[0] == 'bad':
if nArr[1] not in bad_stages:
bad_stages[nArr[1]] = []
bad_stages[nArr[1]].append(nArr[2])
if item.name not in bad_names:
bad_names.append(item.name)
bad_end.append(item.name.replace("bad", ""))
elif nArr[0] == 'sbad':
if nArr[1] not in sbad_stages:
sbad_stages[nArr[1]] = []
sbad_stages[nArr[1]].append(f"{nArr[2]}_{nArr[3]}")
sbad_stages[nArr[1]].append(nArr[2])
bad_end.append(item.name.replace("sbad", ""))
#检测父节点
#通过正则表达式,筛选出#开头与#结尾的字符串
parr = item.name.split('#')
if len(parr) != 3:
log.append("sbad图层命名错误找不到父节点{}".format(item.name))
else:
parent = parr[1]
if parent not in sbad_parent_name:
sbad_parent_name.append(parent)
tarr = parent.split('_')
if tarr[0] != "bad":
log.append("sbad图层命名错误父节点不是bad{}".format(item.name))
sbad_end.append(item.name.replace("sbad", "").replace(f"_#{parent}#", ""))
elif nArr[0] == 'auto':
if nArr[1] not in auto_stages:
auto_stages[nArr[1]] = []
@ -198,6 +239,14 @@ def parse_psd(path):
if item not in bad_end:
log.append("拼图图层找不到bad图层patch{}".format(item))
for item in sbad_end:
if item not in spatch_end:
log.append("sbad图层找不到拼图图层sbad{}".format(item))
for item in spatch_end:
if item not in sbad_end:
log.append("拼图图层找不到sbad图层spatch{}".format(item))
for stage in spatch_stages:
tmp = {}
for item in spatch_stages[stage]:
@ -205,7 +254,24 @@ def parse_psd(path):
log.append("存在重复图层spatch_{}_{}".format(stage, item))
else:
tmp[item] = 0
for stage in sbad_stages:
tmp = {}
for item in sbad_stages[stage]:
if item in tmp:
log.append("存在重复图层sbad_{}_{}".format(stage, item))
else:
tmp[item] = 0
#检测sbad的父节点是否存在
for a_sbad_name in sbad_parent_name:
if a_sbad_name not in bad_names:
log.append(f"sbad中配置的主节点{a_sbad_name} 实际找不到")
#检测spatch的父节点是否存在
for a_spatch_name in spatch_parent_name:
if a_spatch_name not in patch_names:
log.append(f"spatch中配置的主节点{a_spatch_name} 实际找不到")
log.append("检测结束")