diff --git a/.gitignore b/.gitignore
index ff0573f4..451c94c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -165,3 +165,4 @@ cython_debug/
/auto_bangumi/tester.py
/resource/names.txt
+/auto_bangumi/webui/
diff --git a/.idea/Bangumi_Auto_Rename.iml b/.idea/Bangumi_Auto_Rename.iml
index 25a1b778..f79e6193 100644
--- a/.idea/Bangumi_Auto_Rename.iml
+++ b/.idea/Bangumi_Auto_Rename.iml
@@ -4,7 +4,8 @@
-
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 37b833f1..e863a931 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/auto_bangumi/app.py b/auto_bangumi/app.py
index a8c84658..c21113eb 100644
--- a/auto_bangumi/app.py
+++ b/auto_bangumi/app.py
@@ -3,8 +3,6 @@ import os
import time
import logging
-from multiprocessing import Process
-
from conf import settings
from argument_parser import parse
from log import setup_logger
@@ -31,6 +29,7 @@ def load_data_file():
bangumi_data = json_config.load(info_path)
if bangumi_data["data_version"] != settings.data_version or bangumi_data["rss_link"] != settings.rss_link:
bangumi_data["bangumi_info"] = []
+ bangumi_data["data_version"] = settings.data_version
bangumi_data["first_run"] = True
bangumi_data["rss_link"] = settings.rss_link
logger.info("Rebuilding data information...")
@@ -51,18 +50,21 @@ def show_info():
logger.info(" /_/ \_\__,_|\__\___/|____/ \__,_|_| |_|\__, |\__,_|_| |_| |_|_|")
logger.info(" __/ | ")
logger.info(" |___/ ")
- logger.info("Version 2.4.10 Author: EstrellaXD Twitter: https://twitter.com/Estrella_Pan")
+ logger.info(f"Version {settings.version} Author: EstrellaXD Twitter: https://twitter.com/Estrella_Pan")
logger.info("GitHub: https://github.com/EstrellaXD/Auto_Bangumi/")
logger.info("Starting AutoBangumi...")
+
def run():
args = parse()
if args.debug:
try:
from const_dev import DEV_SETTINGS
+ import sys
except ModuleNotFoundError:
logger.debug("Please copy `const_dev.py` to `const_dev.py` to use custom settings")
+ sys.path.append('/opt/homebrew/Caskroom/miniforge/base/envs/auto_bangumi/bin/python')
settings.init(DEV_SETTINGS)
else:
settings.init()
@@ -83,7 +85,7 @@ def run():
rss_collector.collect(bangumi_data)
if settings.enable_eps_complete:
download_client.eps_collect(bangumi_data["bangumi_info"])
- download_client.add_rules(bangumi_data["bangumi_info"])
+ download_client.add_rules(bangumi_data["bangumi_info"], settings.rss_link)
if bangumi_data["first_run"]:
logger.info(f"Waiting for downloading torrents...")
time.sleep(settings.first_sleep)
diff --git a/auto_bangumi/bangumi_parser/fuzz_match.py b/auto_bangumi/bangumi_parser/fuzz_match.py
index 61241c2e..d0e8ffb3 100644
--- a/auto_bangumi/bangumi_parser/fuzz_match.py
+++ b/auto_bangumi/bangumi_parser/fuzz_match.py
@@ -10,11 +10,11 @@ class FuzzMatch:
def __init__(self):
try:
anidb_data = json_config.get(settings.anidb_url)
- json_config.save("anidb.json", anidb_data)
+ json_config.save(settings.anidb_path, anidb_data)
except Exception as e:
logger.debug(e)
logger.info(f"Fail to get anidb data, reading local data")
- anidb_data = json_config.load("anidb.json")
+ anidb_data = json_config.load(settings.anidb_path)
self.match_data = anidb_data
@staticmethod
diff --git a/auto_bangumi/const.py b/auto_bangumi/const.py
index cb371b9d..6bd7d0c7 100644
--- a/auto_bangumi/const.py
+++ b/auto_bangumi/const.py
@@ -1,11 +1,13 @@
# -*- encoding: utf-8 -*-
DEFAULT_SETTINGS = {
- "host_ip": "localhost:8181",
+ "version": "2.5.0-beta1",
+ "data_version": 4.0,
+ "host_ip": "localhost:8080",
"sleep_time": 1800,
"user_name": "admin",
"password": "adminadmin",
- "download_path": "",
+ "download_path": "/downloads/Bangumi",
"method": "pn",
"enable_group_tag": False,
"info_path": "/config/bangumi.json",
@@ -18,7 +20,6 @@ DEFAULT_SETTINGS = {
"season_one_tag": True,
"remove_bad_torrent": False,
"dev_debug": False,
- "data_version": 4.0,
"enable_eps_complete": False,
"first_sleep": 600,
"webui_port": 7892,
diff --git a/auto_bangumi/core/download_client.py b/auto_bangumi/core/download_client.py
index 68bede5b..6934e5d8 100644
--- a/auto_bangumi/core/download_client.py
+++ b/auto_bangumi/core/download_client.py
@@ -30,7 +30,8 @@ class DownloadClient:
prefs = self.client.get_app_prefs()
settings.download_path = os.path.join(prefs["save_path"], "Bangumi")
- def set_rule(self, official_name, raw_name, group, season, rss):
+ def set_rule(self, info: dict, rss):
+ official_name, raw_name, season, group = info["title"], info["title_raw"], info["season"], info["group"]
rule = {
"enable": True,
"mustContain": raw_name,
@@ -53,7 +54,7 @@ class DownloadClient:
),
}
rule_name = f"[{group}] {official_name}" if settings.enable_group_tag else official_name
- self.client.rss_set_rule(rule_name=rule_name, rule_def=rule)
+ self.client.rss_set_rule(rule_name=f"{rule_name} {season}", rule_def=rule)
def rss_feed(self):
try:
@@ -72,11 +73,11 @@ class DownloadClient:
self.client.rss_add_feed(url=rss_link, item_path=item_path)
logger.info("Add RSS Feed successfully.")
- def add_rules(self, bangumi_info, rss_link=settings.rss_link):
+ def add_rules(self, bangumi_info, rss_link):
logger.info("Start adding rules.")
for info in bangumi_info:
if not info["added"]:
- self.set_rule(info["title"], info["title_raw"], info["group"], info["season"], rss_link)
+ self.set_rule(info, rss_link)
info["added"] = True
logger.info("Finished.")
diff --git a/auto_bangumi/core/eps_complete.py b/auto_bangumi/core/eps_complete.py
index 595f2fa8..b1bcb10a 100644
--- a/auto_bangumi/core/eps_complete.py
+++ b/auto_bangumi/core/eps_complete.py
@@ -13,19 +13,10 @@ logger = logging.getLogger(__name__)
class FullSeasonGet:
def __init__(self, group, bangumi_name, season, sub, source, dpi):
self.bangumi_name = re.sub(settings.rule_name_re, " ", bangumi_name).strip()
- if group is not None:
- self.group = group
- else:
- self.group = ""
+ self.group = "" if group is None else group
self.season = season
- if sub is not None:
- self.subtitle = sub
- else:
- self.subtitle = ""
- if source is not None:
- self.source = source
- else:
- self.source = ""
+ self.subtitle = "" if sub is None else sub
+ self.source = "" if source is None else source
self.dpi = dpi
def get_season_rss(self):
diff --git a/auto_bangumi/web.py b/auto_bangumi/web.py
index 08b88d63..83964aaa 100644
--- a/auto_bangumi/web.py
+++ b/auto_bangumi/web.py
@@ -72,9 +72,20 @@ async def receive(link: RSS):
settings.init(DEV_SETTINGS)
client = DownloadClient()
client.add_collection_feed(link.link, item_path=data["title"])
- client.add_rules(data, rss_link=link.link)
+ client.set_rule(data, link.link)
return "Successed"
+class Search(BaseModel):
+ group: str
+ title: str
+ subtitle: str
+
+
+@app.post("/api/v1/search")
+async def search(input: Search):
+ return "Nothing Happened"
+
+
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=settings.webui_port)
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 2e934b92..c2e858e0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,9 +1,10 @@
qbittorrent-api
-bs4~=4.11.1
+bs4
requests~=2.27.1
lxml
thefuzz~=0.19.0
setuptools~=62.1.0
-fastapi~=0.78.0
-uvicorn
\ No newline at end of file
+fastapi
+uvicorn
+jinja2
\ No newline at end of file