diff --git a/.gitignore b/.gitignore index 9af62208..3b911810 100644 --- a/.gitignore +++ b/.gitignore @@ -172,3 +172,4 @@ cython_debug/ /auto_bangumi/parser/analyser/tmdb.py /auto_bangumi/run_debug.sh +/auto_bangumi/debug_run.sh diff --git a/auto_bangumi/api.py b/auto_bangumi/api.py index 3290d0d6..cb96eeaa 100644 --- a/auto_bangumi/api.py +++ b/auto_bangumi/api.py @@ -3,7 +3,7 @@ import re import uvicorn from uvicorn.config import LOGGING_CONFIG from fastapi import FastAPI, Request -from fastapi.responses import HTMLResponse +from fastapi.responses import HTMLResponse, FileResponse from fastapi.templating import Jinja2Templates from pydantic import BaseModel import logging @@ -13,7 +13,6 @@ from conf import settings, parse from utils import json_config logger = logging.getLogger(__name__) - app = FastAPI() @@ -32,9 +31,9 @@ def get_data(): @app.get("/api/v1/log") -def get_log(): - with open(settings.log_path, "r") as f: - return f.read() +async def get_log(): + log_path = settings.log_path + return FileResponse(log_path) @app.get("/api/v1/resetRule") @@ -45,12 +44,8 @@ def reset_rule(): return "Success" -class RuleName(BaseModel): - name: str - - -@app.post("/api/v1/removeRule") -def remove_rule(name: RuleName): +@app.get("api/v1/removeRule/{name}") +def remove_rule(name: str): datas = json_config.load(settings.info_path)["bangumi_info"] for data in datas: if re.search(name.name.lower(), data["title_raw"].lower()) is not None: @@ -60,12 +55,8 @@ def remove_rule(name: RuleName): return "Not matched" -class RSS(BaseModel): - link: str - - -@app.post("/api/v1/subscriptions") -async def receive(link: RSS): +@app.get("/api/v1/subscribe/{link}") +async def receive(link: str): client = DownloadClient() try: data = RSSAnalyser().rss_to_data(link.link) @@ -76,17 +67,6 @@ async def receive(link: RSS): return "Error" -class Search(BaseModel): - group: str - title: str - subtitle: str - - -@app.post("/api/v1/search") -async def search(input: Search): - return "Nothing Happened" - - class AddRule(BaseModel): title: str season: int @@ -107,7 +87,7 @@ def run(): logger.debug("Please copy `const_dev.py` to `const_dev.py` to use custom settings") else: settings.init() - LOGGING_CONFIG["formatters"]["default"]["fmt"] = "%(asctime)s %(levelprefix)s %(message)s" + LOGGING_CONFIG["formatters"]["default"]["fmt"] = "[%(asctime)s] %(levelprefix)s\t%(message)s" uvicorn.run(app, host="0.0.0.0", port=settings.webui_port) diff --git a/auto_bangumi/app.py b/auto_bangumi/app.py index ba6d8f84..04630760 100644 --- a/auto_bangumi/app.py +++ b/auto_bangumi/app.py @@ -12,6 +12,13 @@ from core import RSSAnalyser, DownloadClient, Renamer, FullSeasonGet logger = logging.getLogger(__name__) +def reset_log(): + try: + os.remove(settings.log_path) + except FileNotFoundError: + pass + + def load_data_file(): info_path = settings.info_path if not os.path.exists(info_path): @@ -85,6 +92,7 @@ def run(): else: settings.init() # 初始化 + reset_log() setup_logger() show_info() download_client = DownloadClient() diff --git a/auto_bangumi/conf/const.py b/auto_bangumi/conf/const.py index 2ffd0809..85abd1e3 100644 --- a/auto_bangumi/conf/const.py +++ b/auto_bangumi/conf/const.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- DEFAULT_SETTINGS = { - "version": "2.5.7", + "version": "2.5.8", "data_version": 4.0, "host_ip": "localhost:8080", "sleep_time": 7200, diff --git a/auto_bangumi/conf/log.py b/auto_bangumi/conf/log.py index 1641d34a..5c0772d5 100644 --- a/auto_bangumi/conf/log.py +++ b/auto_bangumi/conf/log.py @@ -4,11 +4,13 @@ from conf import settings def setup_logger(): level = logging.DEBUG if settings.debug_mode else logging.INFO - DATE_FORMAT = "%Y-%m-%d %X" - LOGGING_FORMAT = "%(asctime)s %(levelname)s: %(message)s" + LOGGING_FORMAT = "[%(asctime)s] %(levelname)s:\t%(message)s" logging.basicConfig( level=level, - datefmt=DATE_FORMAT, format=LOGGING_FORMAT, encoding="utf-8", + handlers=[ + logging.FileHandler(settings.log_path), + logging.StreamHandler(), + ] ) diff --git a/auto_bangumi/downloader/qb_downloader.py b/auto_bangumi/downloader/qb_downloader.py index 440be7f2..5e875dc3 100644 --- a/auto_bangumi/downloader/qb_downloader.py +++ b/auto_bangumi/downloader/qb_downloader.py @@ -25,7 +25,7 @@ class QbDownloader: self._client.auth_log_in() break except LoginFailed: - logger.warning( + logger.debug( f"Can't login qBittorrent Server {host} by {username}, retry in {settings.connect_retry_interval}" ) time.sleep(settings.connect_retry_interval)