2.5.0-beta1

This commit is contained in:
EstrellaXD
2022-06-12 19:25:31 +08:00
parent c9056e61ac
commit 87f9d48e89
10 changed files with 40 additions and 31 deletions

1
.gitignore vendored
View File

@@ -165,3 +165,4 @@ cython_debug/
/auto_bangumi/tester.py
/resource/names.txt
/auto_bangumi/webui/

View File

@@ -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
View File

@@ -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>

View File

@@ -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)

View File

@@ -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

View File

@@ -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,

View File

@@ -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.")

View File

@@ -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):

View File

@@ -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)

View File

@@ -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