diff --git a/activity/README.md b/activity/README.md new file mode 100644 index 0000000..6ddbd7b --- /dev/null +++ b/activity/README.md @@ -0,0 +1,5 @@ +存放活动的资源 + +活动封面拼图psd_id编号从90000开始-99999(9万-9.9999万) + +活动子关卡拼图psd_id编号从100000开始-149999(10万-14.9999万) \ No newline at end of file diff --git a/check_compress_psd.py b/check_compress_psd.py index 1563815..b7ab17a 100644 --- a/check_compress_psd.py +++ b/check_compress_psd.py @@ -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) \ No newline at end of file + is_activity_psd = src_file.find("activity/main_psd/") != -1 + convert_2_zip_file(src_file, is_activity_psd) \ No newline at end of file