From 1cf752d7e68d16e48ce42f09368aebfff7325524 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Thu, 2 Jun 2022 20:20:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20parser=20=E7=BB=93?= =?UTF-8?q?=E6=9E=84=EF=BC=8C=E7=9D=80=E6=89=8B=E9=87=8D=E6=9E=84=20parser?= =?UTF-8?q?.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AutoBangumi/app/app.py | 1 - AutoBangumi/app/conf.py | 3 +- AutoBangumi/app/downloader/qb_downloader.py | 2 +- AutoBangumi/app/log.py | 1 + AutoBangumi/app/parser/parser.py | 59 +++++++++++++++++++-- 5 files changed, 59 insertions(+), 7 deletions(-) diff --git a/AutoBangumi/app/app.py b/AutoBangumi/app/app.py index 0f71850f..2da9e8f6 100644 --- a/AutoBangumi/app/app.py +++ b/AutoBangumi/app/app.py @@ -21,7 +21,6 @@ if __name__ == "__main__": args = parse() if args.debug: from const_dev import DEV_SETTINGS - settings.init(DEV_SETTINGS) else: settings.init() diff --git a/AutoBangumi/app/conf.py b/AutoBangumi/app/conf.py index ec7e626c..3c05a97a 100644 --- a/AutoBangumi/app/conf.py +++ b/AutoBangumi/app/conf.py @@ -1,7 +1,7 @@ import os - import const + class Settings(dict): def __getattr__(self, item): return self.get(item) @@ -22,7 +22,6 @@ class Settings(dict): val = conv_func(val) return val - def _settings_from_env(self): """Loads settings from env.""" return { diff --git a/AutoBangumi/app/downloader/qb_downloader.py b/AutoBangumi/app/downloader/qb_downloader.py index eecdc4ea..597c8414 100644 --- a/AutoBangumi/app/downloader/qb_downloader.py +++ b/AutoBangumi/app/downloader/qb_downloader.py @@ -7,7 +7,7 @@ from tomlkit import item from conf import settings -from downloader.exceptions import ConflictError +from exceptions import ConflictError logger = logging.getLogger(__name__) diff --git a/AutoBangumi/app/log.py b/AutoBangumi/app/log.py index f0918bf0..06151245 100644 --- a/AutoBangumi/app/log.py +++ b/AutoBangumi/app/log.py @@ -11,4 +11,5 @@ def setup_logger(): encoding="utf-8", ) + setup_logger() \ No newline at end of file diff --git a/AutoBangumi/app/parser/parser.py b/AutoBangumi/app/parser/parser.py index ee4b227e..c2533784 100644 --- a/AutoBangumi/app/parser/parser.py +++ b/AutoBangumi/app/parser/parser.py @@ -1,4 +1,57 @@ +import re +from conf import settings +from utils import json_config +import requests +from log import logger + + + class Parser: - def parse(filename): - # TODO 番剧名称识别 - pass + # TODO 番剧名称识别 + def __init__(self, info): + self.raw_name = info + self.name = None + self.season = None + self.episode = None + self.group = None + self.dpi = None + self.language = None + try: + self.rules = requests.get(settings.rule_url).json() + except Exception as e: + logger.exception(e) + json_config.save(settings.rule_path, self.rules) + + def parser_type_1(self): + + self.name = "name" + self.season = "S01" + self.episode = 1 + self.dpi = "1080p" + self.language = "CHT" + + + def parser_type_2(self): + self.name = "name" + + def method(self, method): + if method == 1: + self.parser_type_1() + elif method == 2: + self.parser_type_2() + elif method == 3: + + + + def split_info(self): + break_flag = False + for rule in self.rules: + for group in rule["group"]: + if re.search(group, self.raw_name): + self.method(rule["type"]) + self.group = group + break_flag = True + break + if break_flag: + break +