Files
ruolishipian e813bd9486 docs: 更新修复说明文档并优化代码风格
主要更新内容:
- 更新修复说明文档,详细记录与原项目的差异
- 优化所有Python文件的代码风格(PEP 8规范)
- 优化所有Vue/JS文件的代码风格
- 添加测试目录和测试文件
- 删除过时的文档文件

🤖 Generated with CodeArts Agent
2026-03-19 14:45:08 +08:00

150 lines
6.1 KiB
Python

import json
import os
from http.server import BaseHTTPRequestHandler
from ..dao.dao import set_language
from .ymal_utils import mergerDataToDb
class FileListHandler:
def __init__(self, directory="user_data"):
current_dir = os.path.dirname(os.path.abspath(__file__))
db_path = os.path.join(current_dir, "../../../user_data")
self.directory = db_path
def handle(self, request_handler: BaseHTTPRequestHandler):
if request_handler.path == "/api/file_list":
file_list = self.get_file_list()
response = json.dumps({"data": file_list})
request_handler.send_response(200)
request_handler.send_header("Content-type", "application/json")
request_handler.send_header("Access-Control-Allow-Origin", "*")
request_handler.end_headers()
request_handler.wfile.write(response.encode("utf-8"))
return True
return False
def get_file_list(self):
file_list = []
for root, dirs, files in os.walk(self.directory):
for file in files:
file_path = os.path.join(root, file)
file_list.append({"path": file_path, "name": file})
return file_list
class LanguageHandler:
def _set_headers(self, handler):
handler.send_header("Content-type", "application/json")
handler.send_header("Access-Control-Allow-Origin", "*")
handler.send_header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
handler.send_header("Access-Control-Allow-Headers", "x-api-key,Content-Type")
def handle(self, request_handler: BaseHTTPRequestHandler):
if request_handler.path == "/api/set_language":
if request_handler.command == "OPTIONS":
self.handle_options(request_handler)
return True
elif request_handler.command == "POST":
self.handle_post(request_handler)
return True
return False
def handle_options(self, request_handler: BaseHTTPRequestHandler):
request_handler.send_response(200)
self._set_headers(request_handler)
request_handler.end_headers()
def handle_post(self, request_handler: BaseHTTPRequestHandler):
try:
content_length = int(request_handler.headers["Content-Length"])
post_data = request_handler.rfile.read(content_length)
# 确保读取到的数据是字符串
post_data = post_data.decode("utf-8")
data = json.loads(post_data)
name = data.get("name")
if name:
try:
set_language(name)
response = json.dumps({"status": "success"})
request_handler.send_response(200)
except FileNotFoundError as e:
response = json.dumps({"status": "error", "message": str(e)})
request_handler.send_response(404)
except Exception as e:
response = json.dumps({"status": "error", "message": str(e)})
request_handler.send_response(500)
else:
response = json.dumps(
{"status": "error", "message": "Missing 'name' parameter"}
)
request_handler.send_response(400)
self._set_headers(request_handler)
request_handler.end_headers()
request_handler.wfile.write(response.encode("utf-8"))
except Exception as e:
print(f"Error handling request: {e}")
request_handler.send_response(500)
self._set_headers(request_handler)
request_handler.end_headers()
response = json.dumps({"status": "error", "message": str(e)})
request_handler.wfile.write(response.encode("utf-8"))
class YamlConvertHandler:
def _set_headers(self, handler):
handler.send_header("Content-type", "application/json")
handler.send_header("Access-Control-Allow-Origin", "*")
handler.send_header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
handler.send_header("Access-Control-Allow-Headers", "x-api-key,Content-Type")
def handle(self, request_handler: BaseHTTPRequestHandler):
if request_handler.path == "/api/convert_yaml":
if request_handler.command == "OPTIONS":
self.handle_options(request_handler)
return True
elif request_handler.command == "POST":
self.handle_post(request_handler)
return True
return False
def handle_options(self, request_handler: BaseHTTPRequestHandler):
request_handler.send_response(200)
self._set_headers(request_handler)
request_handler.end_headers()
def handle_post(self, request_handler: BaseHTTPRequestHandler):
try:
content_length = int(request_handler.headers["Content-Length"])
post_data = request_handler.rfile.read(content_length)
data = json.loads(post_data.decode("utf-8"))
yaml_file = data.get("yaml_file")
if not yaml_file:
response = json.dumps(
{"status": "error", "message": "Missing yaml_file parameter"}
)
request_handler.send_response(400)
else:
try:
mergerDataToDb(yaml_file)
response = json.dumps({"status": "success"})
request_handler.send_response(200)
except Exception as e:
response = json.dumps({"status": "error", "message": str(e)})
request_handler.send_response(500)
self._set_headers(request_handler)
request_handler.end_headers()
request_handler.wfile.write(response.encode("utf-8"))
except Exception as e:
print(f"Error handling request: {e}")
request_handler.send_response(500)
self._set_headers(request_handler)
request_handler.end_headers()
response = json.dumps({"status": "error", "message": str(e)})
request_handler.wfile.write(response.encode("utf-8"))