import json
import re
import hashlib
import sys
import os.path

def check_code_in_json(file_path):
    try:
        filename = os.path.basename(file_path)  # 提取文件名
        
        with open(file_path, 'r', encoding='utf-8') as file:
            content = file.read()
            
            check_code_pattern = r'"check_code"\s*:\s*"(.*?)"'
            check_code_match = re.search(check_code_pattern, content)
            
            if check_code_match:
                check_code_value = check_code_match.group(1)
                
                # content_without_check_code = re.sub(r'\s*"check_code"\s*:\s*".*?"\s*,?', '', content, 1)

                content_without_check_code = re.sub(r'"check_code"\s*:\s*".*?"\s*,', '', content, 1)

                md5_hash = hashlib.md5((content_without_check_code + "d189hj21dh810ge").encode('utf-8')).hexdigest()
                
                if md5_hash == check_code_value:
                    return f"验证成功 {filename} "
                else:
                    return f"验证失败 {filename} 文件内容变化,不予导入"
            else:
                with open(file_path, 'w', encoding='utf-8') as file:
                    file.write(content)
                return f"{filename} 未检查到校验码请校验后导入"
                
    except FileNotFoundError:
        return f"错误: 文件 {filename} 不存在"
    except json.JSONDecodeError:
        
        return f"错误: 文件 {filename} 不是有效的JSON格式"
    except Exception as e:
        return f"发生错误: {filename} {str(e)}"
    return "err"

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("argv ERR: 用法: python linshi.py <json文件路径>")
        sys.exit(1)
    else:
        print(check_code_in_json(sys.argv[1]))