修复bug

This commit is contained in:
EstrellaXD
2022-06-16 09:27:14 +08:00
parent f89aeb85bc
commit 8dedb0232c
8 changed files with 46 additions and 49 deletions

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 (auto_bangumi)" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (np_veclib)" project-jdk-type="Python SDK" />
</project>

View File

@@ -49,20 +49,18 @@ def show_info():
logger.info("Starting AutoBangumi...")
def rss_process(download_client: DownloadClient):
bangumi_data = json_config.load(settings.info_path)
def main_process(bangumi_data, download_client: DownloadClient):
rss_analyser = RSSAnalyser()
rename = Renamer(download_client)
while True:
rss_analyser.run(bangumi_data["bangumi_info"], download_client)
save_data_file(bangumi_data)
time.sleep(settings.sleep_time)
def rename_process(download_client: DownloadClient):
rename = Renamer(download_client)
while True:
rename.run()
time.sleep(settings.rename_sleep)
times = 0
while times < settings.times:
rename.refresh()
rename.run()
times += 1
time.sleep(settings.sleep_time)
def run():
@@ -86,14 +84,9 @@ def run():
logger.error("Please add RIGHT RSS url.")
quit()
download_client.rss_feed()
bangumi_data = load_data_file()
# 主程序循环
rss_thread = Process(target=rss_process, args=(download_client,))
rename_thread = Process(target=rss_process, args=(download_client,))
rss_thread.start()
rename_thread.start()
rename_thread.join()
rename_thread.join()
main_process(bangumi_data, download_client)
if __name__ == "__main__":

View File

@@ -4,7 +4,8 @@ DEFAULT_SETTINGS = {
"version": "2.5.0-beta2",
"data_version": 4.0,
"host_ip": "localhost:8080",
"sleep_time": 1800,
"sleep_time": 180,
"times": 10,
"rename_sleep": 600,
"user_name": "admin",
"password": "adminadmin",

View File

@@ -10,8 +10,8 @@ logger = logging.getLogger(__name__)
class Renamer:
def __init__(self, downloadClient: DownloadClient):
self.client = downloadClient
def __init__(self, download_client: DownloadClient):
self.client = download_client
self._renamer = TitleParser()
self.recent_info = self.client.get_torrent_info()
self.rename_count = 0
@@ -29,7 +29,7 @@ class Renamer:
for i in range(0, self.torrent_count):
info = self.recent_info[i]
name = info.name
hash = info.hash
torrent_hash = info.hash
path_parts = PurePath(info.content_path).parts \
if PurePath(info.content_path).name != info.content_path \
else PureWindowsPath(info.content_path).parts
@@ -40,14 +40,14 @@ class Renamer:
logger.debug(f"Origin name: {path_name}")
logger.debug(f"New name: {new_name}")
if path_name != new_name:
self.client.rename_torrent_file(hash, path_name, new_name)
self.client.rename_torrent_file(torrent_hash, path_name, new_name)
self.rename_count += 1
else:
continue
except:
logger.warning(f"{path_name} rename failed")
if settings.remove_bad_torrent:
self.client.delete_torrent(hash)
self.client.delete_torrent(torrent_hash)
self.print_result()

View File

@@ -20,7 +20,7 @@ class RSSAnalyser:
rss_titles = self._request.get_titles(settings.rss_link)
self._request.close_session()
for raw_title in rss_titles:
logger.info(raw_title)
logger.debug(raw_title)
extra_add = True
for d in bangumi_info:
if re.search(d["title_raw"], raw_title) is not None:
@@ -33,7 +33,7 @@ class RSSAnalyser:
def run(self, bangumi_info: list, download_client: DownloadClient):
self.rss_to_data(bangumi_info)
download_client.add_rules(bangumi_info)
download_client.add_rules(bangumi_info, rss_link=settings.rss_link)
if __name__ == "__main__":

View File

@@ -1 +1 @@
from .parser import TitleParser
from .parser import TitleParser

View File

@@ -4,7 +4,7 @@ import requests
from conf.conf import settings
from utils import json_config
from bangumi_parser.episode import Episode
from parser.episode import Episode
logger = logging.getLogger(__name__)

View File

@@ -19,26 +19,29 @@ class TitleParser:
def return_dict(self, raw):
tmdb = TMDBMatcher()
episode = self.raw_parser(raw)
try:
tmdb_info = tmdb.tmdb_search(episode.title)
official_title = tmdb_info.title_zh if settings.zh_title else tmdb_info.title_jp
season = tmdb_info.last_season
episode = self.raw_parser(raw)
try:
tmdb_info = tmdb.tmdb_search(episode.title)
official_title = tmdb_info.title_zh if settings.zh_title else tmdb_info.title_jp
season = tmdb_info.last_season
except Exception as e:
logger.debug(e)
logger.info("Not Match in TMDB")
official_title = episode.title
season = episode.season_info.number
data = {
"official_title": official_title,
"title_raw": episode.title,
"season": season,
"season_raw": episode.season_info.raw,
"group": episode.group,
"dpi": episode.dpi,
"source": episode.source,
"subtitle": episode.subtitle,
"added": False,
"eps_collect": True if settings.eps_complete else False,
}
return data
except Exception as e:
logger.debug(e)
logger.info("Not Match in TMDB")
official_title = episode.title
season = episode.season_info.number
data = {
"official_title": official_title,
"title_raw": episode.title,
"season": season,
"season_raw": episode.season_info.raw,
"group": episode.group,
"dpi": episode.dpi,
"source": episode.source,
"subtitle": episode.subtitle,
"added": False,
"eps_collect": True if settings.eps_complete else False,
}
return data
logger.debug(e)