From bd3036f058663df27ada9846761655b1f844d43c Mon Sep 17 00:00:00 2001 From: Hell13Cat <46496367+Hell13Cat@users.noreply.github.com> Date: Sat, 6 Jun 2026 11:21:47 +0300 Subject: [PATCH] 0.1.5s --- run.py | 8 ++++++-- system_module/logger.py | 38 ++++++++++++++++++++++---------------- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/run.py b/run.py index db61bb3..3daa8c0 100644 --- a/run.py +++ b/run.py @@ -6,7 +6,7 @@ from pathlib import Path import requests from flask import (Flask, jsonify, render_template, render_template_string, - request, send_from_directory) + request, send_from_directory, make_response) from system_module import db, gelbooru, image_processor, logger @@ -30,6 +30,7 @@ THUMB_FOLDER = CONFIG_ROOT["file"]["thumb"] gb = gelbooru.GB(GB_ID, GB_HASH, GB_HEADERS, FILE_DW_FOLDERS) log = logger.Logger() +log.init_global_exception_hook() database = db.DB(True) app = Flask(__name__) @@ -59,7 +60,10 @@ def post(post_id): @app.route('/file/') def serve_image(filename): folder_path = find_file(filename, FILE_FOLDERS) - return send_from_directory(folder_path, filename) + if folder_path == None: + return make_response("Not found", 404) + else: + return send_from_directory(folder_path, filename) @app.route('/thumb/') def serve_thumb(filename): diff --git a/system_module/logger.py b/system_module/logger.py index f1f2abf..c44ce7b 100644 --- a/system_module/logger.py +++ b/system_module/logger.py @@ -1,28 +1,34 @@ +import sys import logging class Logger: def __init__(self): - self.logger_file = logging.getLogger(__name__) - self.logger_cli = logging.getLogger(__name__) + self.logger = logging.getLogger(__name__) + self.logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') file_handler = logging.FileHandler("logs.log", encoding="utf-8") + file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) console_handler = logging.StreamHandler() + console_handler.setLevel(logging.DEBUG) console_handler.setFormatter(formatter) - self.logger_file.setLevel(logging.DEBUG) - self.logger_file.addHandler(file_handler) - - self.logger_cli.setLevel(logging.INFO) - self.logger_cli.addHandler(console_handler) - - def send(self, level_log: str, type_log: str, message: str): - if type_log == "file": - getattr(self.logger_file, level_log)(message) - elif type_log == "cli": - getattr(self.logger_cli, level_log)(message) - else: - getattr(self.logger_file, level_log)(message) - getattr(self.logger_cli, level_log)(message) \ No newline at end of file + self.logger.addHandler(file_handler) + self.logger.addHandler(console_handler) + + def init_global_exception_hook(self): + def handle_exception(exc_type, exc_value, exc_traceback): + if issubclass(exc_type, KeyboardInterrupt): + sys.__excepthook__( + exc_type, + exc_value, + exc_traceback + ) + return + self.logger.critical("ERROR:", exc_info=(exc_type, exc_value, exc_traceback)) + sys.excepthook = handle_exception + + def send(self, level_log: str, message: str): + getattr(self.logger, level_log)(message) \ No newline at end of file