From f54df0e67512a8f5c053947920d2c4672fb23ac8 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Wed, 18 May 2022 20:47:38 +0800 Subject: [PATCH] add some new feature, but it is not working now --- AutoBangumi2.0/app/collect_bangumi_info.py | 23 ++++---- requirements.txt | 4 ++ test/rule.json | 63 ++++++++++++++++++++++ test/test.py | 53 +++++++++--------- test/test2.py | 13 +++++ 5 files changed, 120 insertions(+), 36 deletions(-) create mode 100644 test/rule.json create mode 100644 test/test2.py diff --git a/AutoBangumi2.0/app/collect_bangumi_info.py b/AutoBangumi2.0/app/collect_bangumi_info.py index 2d66e01e..8114d7a9 100644 --- a/AutoBangumi2.0/app/collect_bangumi_info.py +++ b/AutoBangumi2.0/app/collect_bangumi_info.py @@ -1,7 +1,6 @@ # -*- coding: UTF-8 -*- import sys import time - import requests from bs4 import BeautifulSoup import json @@ -27,19 +26,21 @@ class CollectRSS: soup = BeautifulSoup(rss.text, 'xml') item = soup.find_all('item') for a in item: - name = str(a.find('title')) - name = re.sub('|', '', name) - parrten = r'\[|\]|\u3010|\u3011|\★|\*|\(|\)|\(|\)' + name = a.title.string + pattern = r'\[|\]|\u3010|\u3011|\★|\*|\(|\)|\(|\)|\_' for i in range(2): - n = re.split(parrten, name) + n = re.split(pattern, name) try: - name = re.sub(f'\[{n[1]}\]|【{n[1]}】|★{n[1]}★', '', name) - except: - name = name + if re.search("\d{2,3}^月", n[1]) is None: + name = re.sub(f'\[{n[1]}\]|【{n[1]}】|★{n[1]}★', '', name).strip() + else: + break + except IndexError: + break for rule in episode_rules: - matchObj = re.match(rule, name, re.I) - if matchObj is not None: - new_name = re.sub(r'\[|\]', '', f'{matchObj.group(1)}') + match_obj = re.match(rule, name, re.I) + if match_obj is not None: + new_name = re.sub(r'\[|\]', '', f'{match_obj.group(1)}') new_name = re.split(r'/', new_name)[-1].strip() if new_name not in self.bangumi_title: self.bangumi_title.append(new_name) diff --git a/requirements.txt b/requirements.txt index 69f84d88..daa0131b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,5 @@ qbittorrent_api==2022.4.30 + +requests~=2.27.1 +bs4~=0.0.1 +beautifulsoup4~=4.11.1 \ No newline at end of file diff --git a/test/rule.json b/test/rule.json new file mode 100644 index 00000000..1b13af45 --- /dev/null +++ b/test/rule.json @@ -0,0 +1,63 @@ +[ + { + "group_name": [ + "Lilith-Raws", + "NC-Raws", + "Skymoon-Raws", + "天月搬运组", + "LoliHouse", + "ANi", + "❀拨雪寻春❀", + "澄空学园&华盟字幕社" + ], + "name_position": [2], + "second_split": true + }, + { + "group_name": [ + "猎户不鸽发布组", + "NaN-Raws", + "猎户随缘发布组", + "桜都字幕组", + "澄空学园&雪飘工作室", + "千夏字幕组", + "IET字幕组", + "离谱Sub", + "酷漫404", + "星空字幕组", + "轻之国度字幕组", + "枫叶字幕组", + "雪飘工作室", + "豌豆字幕组", + "云光字幕组" + + ], + "name_position": [2,3], + "second_split": false + }, + { + "group_name": [ + "喵萌奶茶屋", + "爱恋字母社", + "诸神字幕组", + "驯兽师联盟", + "夏沐字幕组" + ], + "name_position": [3,4], + "second_split": false + }, + { + "group_name": [ + "漫猫字幕组" + ], + "name_position": [4,5], + "second_split": false + }, + { + "group_name": [ + "幻樱" + ], + "name_position": [5,7], + "second_split": false + } +] \ No newline at end of file diff --git a/test/test.py b/test/test.py index 4803ef1d..01b0ed23 100644 --- a/test/test.py +++ b/test/test.py @@ -1,27 +1,30 @@ +import re + +import requests +from bs4 import BeautifulSoup import json -import os -config_path = "config.json" -info_path = "bangumi.json" - - -def create_config(): - if not os.path.exists(config_path): - config = { - "host_ip": "127.0.0.1:8080", - "user_name": "admin", - "password": "adminadmin", - "method": "pn", - "rss_link": "https://mikanani.me/RSS/MyBangumi?token=qTxKo48gH1SrFNy8X%2fCfQUoeElNsgKNWFNzNieKwBH8%3d", - "download_path": "/downloads/Bangumi" - } - with open(config_path,"w") as c: - json.dump(config, c, indent=4, separators=(',', ': '), ensure_ascii=False) - if not os.path.exists(info_path): - bangumi_info = [{"title": "simple","season": ""}] - with open(info_path, "w") as i: - json.dump(bangumi_info, i, indent=4, separators=(',', ': '), ensure_ascii=False) - print("请填入配置参数") - quit() - -create_config() \ No newline at end of file +url = "https://mikanani.me/RSS/Classic" +rss = requests.get(url, 'utf-8') +soup = BeautifulSoup(rss.text, 'xml') +items = soup.find_all('item') +with open("rule.json") as f: + rules = json.load(f) +split_rule = r"\[|\]|\【|\】|\★|\(|\)|\(|\)" +bangumi_title = '' +for item in items: + name = item.title.string + bangumi_title = '' + print(name) + exit_flag = False + for rule in rules: + for group in rule["group_name"]: + if re.search(group, name): + exit_flag = True + n = re.split(split_rule, name) + for i in rule["name_position"]: + bangumi_title = bangumi_title + ' ' + n[i].strip() + print(bangumi_title) + break + if exit_flag: + break \ No newline at end of file diff --git a/test/test2.py b/test/test2.py new file mode 100644 index 00000000..c5c4aed0 --- /dev/null +++ b/test/test2.py @@ -0,0 +1,13 @@ +import re + +import requests + +url = "http://192.168.200.2" +try: + r = requests.get(url) + print(r.content) +except ConnectionError: + print("e") +except KeyboardInterrupt: + print("end") +