diff --git a/app/blueprints/torrent_bp.py b/app/blueprints/torrent_bp.py index 543144a..7ab5ffb 100644 --- a/app/blueprints/torrent_bp.py +++ b/app/blueprints/torrent_bp.py @@ -1,10 +1,16 @@ -from flask import Blueprint, jsonify +from flask import Blueprint, jsonify, request from app.services.torrent_service import TorrentService bp = Blueprint("torrent", __name__) +@bp.route('/') +def torrent_list(): + torrent_object = TorrentService(["C:\\Users\\Localhost\\Desktop\\BT"]) + return jsonify({"code": 200, "message": torrent_object.get_all()}) + + @bp.route('/deduplication') def torrent_deduplication(): torrent_object = TorrentService(["C:\\Users\\Localhost\\Desktop\\BT"]) @@ -15,14 +21,3 @@ def torrent_deduplication(): def torrent_statistics(): torrent_object = TorrentService(["C:\\Users\\Localhost\\Desktop\\BT"]) return jsonify({"code": 200, "message": torrent_object.statistics()}) - - -@bp.route("/") -def torrent_by_name(name): - torrent_object = TorrentService(["C:\\Users\\Localhost\\Desktop\\BT"]) - return jsonify({"code": 200, "message": torrent_object.get_by_name(name)}) - -# @bp.route("/extract/name") -# def torrent_extract_name(): -# torrent_object = TorrentService([]) -# return jsonify({"code": 200, "message": torrent_object.extract_name("AVSA-429.torrent")}) \ No newline at end of file diff --git a/app/services/file_service.py b/app/services/file_service.py index e629e36..3aeff70 100644 --- a/app/services/file_service.py +++ b/app/services/file_service.py @@ -50,6 +50,7 @@ class FileService: return self.perform_rename(entry, f"{name}{ext}") name = name.replace("-", "") + name = name.replace(" ", "") # 处理特殊前缀 for prefix in SPECIAL_PREFIXES: diff --git a/app/services/torrent_service.py b/app/services/torrent_service.py index d081afd..68e88b8 100644 --- a/app/services/torrent_service.py +++ b/app/services/torrent_service.py @@ -84,7 +84,7 @@ class TorrentService: name, ext = os.path.splitext(filename) ext = ext.lower() name = name.upper() - name = name.replace("-", "") + name.maketrans({"-": "", " ":""}) # 处理特殊前缀 for prefix in SPECIAL_PREFIXES: if name.startswith(prefix): @@ -120,3 +120,38 @@ class TorrentService: FolderService(paths=self.paths, ignore_dirs=IGNORE_DIRS, file_callback=self.get_by_name_file_callback).process_folder() return to_json_serializable(self.torrent_name) + + def extract_name_from_filename(self, filename: str) -> str: + """根据torrent文件名提取标准化名称""" + temp_name = filename.replace("-4K", "") + without_modifier_file_name = self.prefix_pattern.sub('.', temp_name) + name, ext = os.path.splitext(without_modifier_file_name) + name = name.upper() + name = name.replace("-", "") + # print(name.translate(str.maketrans({"-": "", " ":""}))) + + for prefix in SPECIAL_PREFIXES: + if name.startswith(prefix): + return f"{prefix}-{name[len(prefix):]}" + + # print(name) + new_name = [] + for i, char in enumerate(name): + # print(i, char, not name[i - 1].isnumeric()) + if i > 0 and not name[i - 1].isnumeric() and char.isnumeric(): + new_name.append(f"-{char}") + else: + new_name.append(char) + + return f"{''.join(new_name)}" + + def get_all_file_callback(self, entry: os.DirEntry): + # path_arr = entry.path.split(os.sep) + new_name = self.extract_name_from_filename(entry.name) + self.result_list.append(new_name) + + + def get_all(self): + FolderService(paths=self.paths, ignore_dirs=IGNORE_DIRS, + file_callback=self.get_all_file_callback).process_folder() + return self.result_list \ No newline at end of file diff --git a/flask-ui/package.json b/flask-ui/package.json index 12fa52a..331ecd5 100644 --- a/flask-ui/package.json +++ b/flask-ui/package.json @@ -37,7 +37,7 @@ "npm-run-all2": "^8.0.4", "oxfmt": "^0.45.0", "oxlint": "~1.60.0", - "sass-embedded": "^1.98.0", + "sass": "^1.99.0", "typescript": "~6.0.0", "unplugin-auto-import": "^21.0.0", "unplugin-vue-components": "^31.0.0", diff --git a/flask-ui/src/utils/request.ts b/flask-ui/src/utils/request.ts index be22e6d..66392a7 100644 --- a/flask-ui/src/utils/request.ts +++ b/flask-ui/src/utils/request.ts @@ -23,7 +23,7 @@ export let isRelogin: { show: boolean } = {show: false} axios.defaults.headers["Content-Type"] = "application/json; charset=UTF-8" const service: AxiosInstance = axios.create({ - baseURL: "http://localhost:5000/api/", + baseURL: "http://192.168.1.32:5000/api/", // baseURL: "/api", timeout: 10000, }) diff --git a/instance/flask.db b/instance/flask.db index e762882..a5bef1b 100644 Binary files a/instance/flask.db and b/instance/flask.db differ diff --git a/run.py b/run.py index 4b6aa16..535e9c8 100644 --- a/run.py +++ b/run.py @@ -3,4 +3,4 @@ from app import create_app app = create_app("development") if __name__ == '__main__': - app.run(debug=True, use_reloader=True, threading=True) + app.run(host='0.0.0.0', port=5000, debug=True, use_reloader=True, threaded=True)