mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-03-20 03:46:40 +08:00
2.5.0-beta1
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -165,3 +165,4 @@ cython_debug/
|
||||
/auto_bangumi/tester.py
|
||||
/resource/names.txt
|
||||
|
||||
/auto_bangumi/webui/
|
||||
|
||||
3
.idea/Bangumi_Auto_Rename.iml
generated
3
.idea/Bangumi_Auto_Rename.iml
generated
@@ -4,7 +4,8 @@
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/auto_bangumi" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.10 (auto_bangumi)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="bootstrap" level="application" />
|
||||
</component>
|
||||
</module>
|
||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (np_veclib)" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (auto_bangumi)" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.")
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
fastapi
|
||||
uvicorn
|
||||
jinja2
|
||||
Reference in New Issue
Block a user