From e616007326d96800a931e0dc78800f22280da5e4 Mon Sep 17 00:00:00 2001 From: da_nuo Date: Sat, 10 May 2025 23:06:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=B8=B8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- file/file.py => file.py | 0 log.py | 48 ++++++++++++++++++++++++++++++++++++++ main.py | 14 +++++++---- make_html.py | 38 ++++++++++++++---------------- return_api.py | 10 ++++---- templates/zh_ch_moban.html | 8 +++---- 6 files changed, 82 insertions(+), 36 deletions(-) rename file/file.py => file.py (100%) create mode 100644 log.py diff --git a/file/file.py b/file.py similarity index 100% rename from file/file.py rename to file.py diff --git a/log.py b/log.py new file mode 100644 index 0000000..e5d8ef4 --- /dev/null +++ b/log.py @@ -0,0 +1,48 @@ +import os +from datetime import datetime + +output = True + + +class Logger: + def __init__(self): + self.log_file = 'log.log' + self._ensure_log_file_exists() + + def _ensure_log_file_exists(self): + if not os.path.exists(self.log_file): + with open(self.log_file, 'w'): pass + + def _get_color_code(self, log_type): + colors = { + 'info ': '\033[36m', # 蓝色 + 'waring': '\033[33m', # 黄色 + 'error ': '\033[31m' # 红色 + } + return colors.get(log_type, '\033[0m') + + def log(self, content, log_type='info'): + timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + log_entry = f"{timestamp} [{log_type}] : {content}\n" + + # 写入文件 + with open(self.log_file, 'a', encoding='utf-8') as f: + f.write(log_entry) + + # 控制台输出 + if output: + color = self._get_color_code(log_type) + reset = '\033[0m' + print(f"{timestamp} {color}[{log_type}] {content}") # <<< ------------------------------ + return True + + +# 外部调用接口 +def write_log(content, log_type='info'): + logger = Logger() + return logger.log(content, log_type) + + +write_log('ddddasdaw') +write_log('waddddddddd', 'waring') +write_log('awdaaaaaargtsssssssss', 'error') diff --git a/main.py b/main.py index 45b6af8..e4135f5 100644 --- a/main.py +++ b/main.py @@ -1,13 +1,13 @@ from datetime import datetime -from flask import Flask, render_template, request, send_file, jsonify +from flask import Flask, render_template, request, send_file, jsonify, abort import make_html import return_api import config +import log app = Flask(__name__) - root = config.getroot() @app.route('/') @@ -21,8 +21,10 @@ def home(): def webs(subpath=None): request_time = datetime.now() formatted_time = request_time.strftime('%Y-%m-%d %H:%M:%S') + if subpath == "serviceworker.js": + abort(204) - if (subpath is None) or (subpath == "serviceworker.js"): + if subpath is None: p = root else: if root[-1] == "\\" or "/": @@ -46,9 +48,10 @@ def webs(subpath=None): def api(subpath=None): request_time = datetime.now() formatted_time = request_time.strftime('%Y-%m-%d %H:%M:%S') + if subpath == "serviceworker.js": + abort(204) - - if (subpath is None) or (subpath == "serviceworker.js"): + if subpath is None: p = root else: if root[-1] == "\\": @@ -66,5 +69,6 @@ def api(subpath=None): return jsonify(return_p) + if __name__ == '__main__': app.run(debug=config.getdebug(), port=config.getport()) diff --git a/make_html.py b/make_html.py index 292437c..0f11795 100644 --- a/make_html.py +++ b/make_html.py @@ -1,7 +1,7 @@ from jinja2 import Environment, FileSystemLoader import config -from file import file +import file # 创建模板环境 env = Environment( @@ -11,6 +11,15 @@ env = Environment( lstrip_blocks=True # 去除块左侧空白 ) + +if config.web_language == "zh_cn": + with open('templates\\zh_ch_moban.html', 'r', encoding='utf-8') as files: + template = files.read() +else: + with open('templates\\en_us_moban.html', 'r', encoding='utf-8') as files: + template = files.read() + + def make_file(file_list, requests_url): c = [] d = 0 @@ -49,29 +58,16 @@ def make(p, url, time, server_p): else: server_p = "root/ " + server_p - with open('templates\\zh_ch_moban.html', 'r', encoding='utf-8') as files: - template = files.read() - files = make_file(get_p, url) - # 定义替换数据 + data = { + "{h3}": url, + "{time}": time, + "{file_var}": str(len(get_p)), + "{server_path}": "" + server_p, + "{file}": files + } - if config.getlanguage() == "zh_cn": - data = { - "{h3}": "当前路径: "+url, - "{time}": "请求开始时间: "+time, - "{file_var}": "文件(夹)数量: " + str(len(get_p)), - "{server_path}": "服务器内部路径: " + server_p, - "{file}": files - } - else: - data = { - "{h3}": "now path: " + url, - "{time}": "Request start time: " + time, - "{file_var}": "Number of files, folders : " + str(len(get_p)), - "{server_path}": "Server internal path : " + server_p, - "{file}": files - } # 执行替换 modified_html = template for placeholder, value in data.items(): diff --git a/return_api.py b/return_api.py index d43d28f..501914f 100644 --- a/return_api.py +++ b/return_api.py @@ -1,6 +1,4 @@ -import json - -from file import file +import file def make(path, requests_url, time, server_p): @@ -14,13 +12,13 @@ def make(path, requests_url, time, server_p): if server_p is None: server_p = "root\\" else: - server_p = "root/ " + server_p + server_p = "root/" + server_p b = { + "file": get_p, "time": time, "server_path": server_p, - "requests_url": requests_url, - "file": get_p + "requests_url": requests_url } return b \ No newline at end of file diff --git a/templates/zh_ch_moban.html b/templates/zh_ch_moban.html index 0a965cb..daf2a47 100644 --- a/templates/zh_ch_moban.html +++ b/templates/zh_ch_moban.html @@ -18,11 +18,11 @@ -

{h3}

+

当前路径: {h3}


-

{time}

-

{file_var}

-

{server_path}

+

请求开始时间: {time}

+

文件(夹)数量: {file_var}

+

服务器内部路径: {server_path}

返回上一级目录