#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Node.js 调用的 Python 桥梁脚本。 该脚本负责加载编译好的 entry.so / entry.pyd 共享库,并处理来自 Node.js 的 JSON 请求。 """ import sys import json import os from pathlib import Path # 将 dist/program 目录加入 sys.path,以便能导入 entry.so/.pyd BIN_DIR = Path(__file__).parent.parent / "dist" / "program" sys.path.insert(0, str(BIN_DIR)) # 尝试导入编译好的共享库,如果失败则尝试导入源码(开发模式) try: import entry except ImportError as e: print(json.dumps({"error": f"Failed to load entry module: {e}"})) sys.exit(1) def main(): if len(sys.argv) < 2: print(json.dumps({"error": "No API specified"})) sys.exit(1) api_name = sys.argv[1] try: if api_name == "getpath": result_json = entry.get_path() print(result_json) elif api_name == "loaddata": if len(sys.argv) < 3: print(json.dumps({"error": "No data"})) sys.exit(1) result_json = entry.load_data(sys.argv[2]) print(result_json) elif api_name == "historydata": if len(sys.argv) < 3: print(json.dumps({"error": "No data"})) sys.exit(1) result_json = entry.history_data(sys.argv[2]) print(result_json) elif api_name == "deletedata": if len(sys.argv) < 3: print(json.dumps({"error": "No data"})) sys.exit(1) result_json = entry.delete_data(sys.argv[2]) print(result_json) else: print(json.dumps({"error": "Invalid API"})) except Exception as e: print(json.dumps({"error": str(e)})) if __name__ == "__main__": main()