Files
Auto_Bangumi/auto_bangumi/parser/title_parser.py

63 lines
2.3 KiB
Python

import logging
from parser.analyser import RawParser, DownloadParser, TMDBMatcher
from conf import settings
logger = logging.getLogger(__name__)
class TitleParser:
def __init__(self):
self._raw_parser = RawParser()
self._download_parser = DownloadParser()
def raw_parser(self, raw):
return self._raw_parser.analyse(raw)
def download_parser(self, download_raw, folder_name, season, suffix, method=settings.method):
return self._download_parser.download_rename(download_raw, folder_name, season, suffix, method)
def return_dict(self, raw):
tmdb = TMDBMatcher()
try:
episode = self.raw_parser(raw)
if settings.enable_tmdb:
try:
tmdb_info = tmdb.tmdb_search(episode.title)
official_title = tmdb_info.title_zh if settings.title_language == "zh" 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
else:
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 and episode.ep_info.number > 1 else False,
}
logger.debug(f"RAW:{raw} >> {episode.title}")
return data
except Exception as e:
logger.debug(e)
if __name__ == '__main__':
import re
T = TitleParser()
raw = "[Lilith-Raws] 神渣☆偶像 / Kami Kuzu☆Idol - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MP4]"
season = int(re.search(r"\d{1,2}", "S02").group())
title = T.raw_parser(raw)
print(season, title.title, title.ep_info.number)
print(T.return_dict(raw))