From 8371d417f209192af9fa80fe32b9ae6658331a2a Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Thu, 2 Jun 2022 22:56:28 +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/argument_parser.py | 2 +- AutoBangumi/app/parser/parser.py | 33 +++++++++++++++++++----------- AutoBangumi/app/set_rule.py | 1 - 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/AutoBangumi/app/argument_parser.py b/AutoBangumi/app/argument_parser.py index 8e4b15c9..a917bf4b 100644 --- a/AutoBangumi/app/argument_parser.py +++ b/AutoBangumi/app/argument_parser.py @@ -11,5 +11,5 @@ def parse(): 无需二次刮削。""", ) - parser.add_argument("-d", "--debug",action="store_true", help="debug mode") + parser.add_argument("-d", "--debug", action="store_true", help="debug mode") return parser.parse_args() diff --git a/AutoBangumi/app/parser/parser.py b/AutoBangumi/app/parser/parser.py index c2533784..bab0d875 100644 --- a/AutoBangumi/app/parser/parser.py +++ b/AutoBangumi/app/parser/parser.py @@ -1,8 +1,5 @@ import re -from conf import settings -from utils import json_config import requests -from log import logger @@ -22,26 +19,38 @@ class Parser: 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" - + name_re_group = re.sub(r"^[^]]*]", "", self.raw_name).strip() + match_obj = re.match(r"(.*|\[.*\])( - \d{1,3}|\[d{1,3}])(.*)", name_re_group) + name_season = match_obj.group(1).strip() + if re.search(r"S\d{1,2}", name_season) is not None: + split = re.sub(r"S\d{1,2}", "", name_season).split("/") + self.season = re.findall(r"S\d{1,2}", name_season)[0] + else: + split = name_season.split("/") + self.season = "S01" + try: + self.name = split[1].strip() + except IndexError: + self.name = split[-1].strip() + self.episode = int(match_obj.group(2).replace("-", "").strip()) + other = match_obj.group(3).strip() + language = None def parser_type_2(self): self.name = "name" + def parser_type_3(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: - - + self.parser_type_3() def split_info(self): break_flag = False diff --git a/AutoBangumi/app/set_rule.py b/AutoBangumi/app/set_rule.py index da4cf712..ab28bf63 100644 --- a/AutoBangumi/app/set_rule.py +++ b/AutoBangumi/app/set_rule.py @@ -1,6 +1,5 @@ import re import logging -import json import os from downloader import getClient