mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-14 02:20:53 +08:00
修改 parser 结构,着手重构 parser.py
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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__)
|
||||
|
||||
|
||||
@@ -11,4 +11,5 @@ def setup_logger():
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
|
||||
setup_logger()
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user