mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-05-11 10:35:50 +08:00
Merge remote-tracking branch 'origin/main'
# Conflicts: # .idea/Bangumi_Auto_Rename.iml # .idea/misc.xml # auto_bangumi/core/download_client.py # requirements.txt
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -163,5 +163,5 @@ cython_debug/
|
||||
/auto_bangumi/const_dev.py
|
||||
/config/bangumi.json
|
||||
/auto_bangumi/tester.py
|
||||
/source/names.txt
|
||||
/resource/names.txt
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ def load_data_file():
|
||||
bangumi_data["bangumi_info"] = []
|
||||
bangumi_data["first_run"] = True
|
||||
bangumi_data["rss_link"] = settings.rss_link
|
||||
logger.info("Rebuilding data information...")
|
||||
return bangumi_data
|
||||
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class FullSeasonGet:
|
||||
season = ""
|
||||
else:
|
||||
season = self.season
|
||||
search_str = re.sub(r"[& ]", "+",
|
||||
search_str = re.sub(r"[\W_]", "+",
|
||||
f"{self.group} {self.bangumi_name} {season} {self.subtitle} {self.source} {self.dpi}")
|
||||
season = requests.get(
|
||||
f"https://mikanani.me/RSS/Search?searchstr={search_str}"
|
||||
|
||||
@@ -63,7 +63,18 @@ class QbDownloader:
|
||||
self._client.rss_remove_item(item_path)
|
||||
except Conflict409Error as e:
|
||||
logger.exception(e)
|
||||
logger.info("Add new RSS")
|
||||
raise ConflictError()
|
||||
|
||||
def rss_set_rule(self, rule_name, rule_def):
|
||||
self._client.rss_set_rule(rule_name, rule_def)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
from const_dev import DEV_SETTINGS
|
||||
except ModuleNotFoundError:
|
||||
logger.debug("Please copy `const_dev.py` to `const_dev.py` to use custom settings")
|
||||
settings.init(DEV_SETTINGS)
|
||||
client = QbDownloader(settings.host_ip, settings.user_name, settings.password)
|
||||
client.rss_remove_item("Mikan_RSS")
|
||||
|
||||
@@ -7,3 +7,8 @@
|
||||
- 检查宿主机器是否可以 `ping` 通蜜柑计划
|
||||
- 更改宿主机器或者容器的 `DNS` 选项设置
|
||||
- 订阅番组太多,mikanani 无法快速解析,推荐一个番组只订阅一个字幕组。
|
||||
|
||||
## 下载错误番剧,重命名失败
|
||||
- 目前不支持合集,剧场版,OVA 等订阅。
|
||||
- 检查订阅是否错误。
|
||||
- 订阅时请遵循:一个番剧订阅一个字幕组的一种语言
|
||||
|
||||
36
docs/部署说明.md
36
docs/部署说明.md
@@ -168,22 +168,22 @@ docker run -d \
|
||||
2022-06-05 16:49:32 INFO: Finished rename process.
|
||||
```
|
||||
## `AutoBangumi` 环境变量说明
|
||||
| 环境变量 | 作用 | 参数 |
|
||||
| ------------------------ |----------------------------|------------------|
|
||||
| `TZ` | 时区 | `Asia/Shanghai` |
|
||||
| `AB_INTERVAL_TIME` | 间隔时间 | `1800` |
|
||||
| `AB_DOWNLOADER_HOST` | qBittorrent 的地址和端口号 | `localhost:8080` |
|
||||
| `AB_DOWNLOADER_USERNAME` | qBittorrent 的用户名 | `admin` |
|
||||
| `AB_DOWNLOADER_PASSWORD` | qBittorrent 的密码 | `adminadmin` |
|
||||
| `AB_METHOD` | 重命名方法 | `pn` |
|
||||
| `AB_GROUP_TAG` | 是否在下载规则中添加组名 | `False` |
|
||||
| `AB_DOWNLOAD_PATH` | qBittorrent 中的下载路径 | 必填项 |
|
||||
| `AB_RSS` | RSS 订阅地址 | 必填项 |
|
||||
| `AB_NOT_CONTAIN` | 输入想要过滤的元素 | `720` |
|
||||
| `AB_DEBUG_MODE` | 调试模式 | `False` |
|
||||
| `AB_EP_COMPLETE` | 历史番剧下载 | `False` |
|
||||
| `AB_SEASON_ONE`| 开启后如果没有 Season 信息自动添加为 S01 | `True` |
|
||||
| `AB_REMOVE_BAD_BT`| 碰到无法重命名的合集等,自动删除种子 | `False` |
|
||||
| 环境变量 | 作用 | 参数 |
|
||||
| ------------------------ |---------------------------------------|------------------|
|
||||
| `TZ` | 时区 | `Asia/Shanghai` |
|
||||
| `AB_INTERVAL_TIME` | 间隔时间 | `1800` |
|
||||
| `AB_DOWNLOADER_HOST` | qBittorrent 的地址和端口号 | `localhost:8080` |
|
||||
| `AB_DOWNLOADER_USERNAME` | qBittorrent 的用户名 | `admin` |
|
||||
| `AB_DOWNLOADER_PASSWORD` | qBittorrent 的密码 | `adminadmin` |
|
||||
| `AB_METHOD` | 重命名方法 `normal` 保留字幕组信息, `pn` 为纯净模式 | `pn` |
|
||||
| `AB_GROUP_TAG` | 是否在下载规则中添加组名 | `False` |
|
||||
| `AB_DOWNLOAD_PATH` | qBittorrent 中的下载路径 | 必填项 |
|
||||
| `AB_RSS` | RSS 订阅地址 | 必填项 |
|
||||
| `AB_NOT_CONTAIN` | 输入想要过滤的元素 | `720` |
|
||||
| `AB_DEBUG_MODE` | 调试模式 | `False` |
|
||||
| `AB_EP_COMPLETE` | 历史番剧下载 | `False` |
|
||||
| `AB_SEASON_ONE`| 开启后如果没有 Season 信息自动添加为 S01 | `True` |
|
||||
| `AB_REMOVE_BAD_BT`| 碰到无法重命名的合集等,自动删除种子 | `False` |
|
||||
|
||||
|
||||
# FAQ
|
||||
@@ -199,6 +199,10 @@ docker run -d \
|
||||
- 设置 >> RSS >> 启用获取 RSS 订阅
|
||||
- Options >> RSS >> Enable fetching RSS feeds
|
||||
- 检查 qb 配置,看是否有权限新建文件夹
|
||||
- 没有自动重命名怎么办:
|
||||
- 首次运行会等待十分钟等待下载完成才会开始重命名。
|
||||
- 如果 `Finished checking` 后有文件个数,但是无法重命名请重新部署。
|
||||
- `rename failed` 通常是碰到带有文件夹的合集,目前并不支持这类重命名
|
||||
- [错误排查](https://github.com/EstrellaXD/Auto_Bangumi/blob/main/docs/常见错误解决.md)
|
||||
|
||||
**出现错误请先检查文档再提问!!!!!!**
|
||||
76
resource/anidb.py
Normal file
76
resource/anidb.py
Normal file
@@ -0,0 +1,76 @@
|
||||
#! /usr/bin/python
|
||||
import re
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
from utils import json_config
|
||||
|
||||
header = {
|
||||
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ApplewebKit/537.36 (KHtml, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
|
||||
}
|
||||
|
||||
|
||||
def get_html(url):
|
||||
requests.adapters.DEFAULT_RETRIES = 5 # 增加重连次数
|
||||
s = requests.session()
|
||||
s.keep_alive = False # 关闭多余连接
|
||||
html = s.get(url=url, headers=header).text
|
||||
print("get html success")
|
||||
return html
|
||||
|
||||
|
||||
def get_list(year, season):
|
||||
season = ["spring", "summer", "autumn", "winter"][season - 1]
|
||||
url = "https://anidb.net/anime/season/%s/%s/" % (year, season)
|
||||
html = get_html(url)
|
||||
ids = re.findall("<a href=\"/anime/(\d+)\"><picture>", html)
|
||||
return ids
|
||||
|
||||
|
||||
def get_title(id):
|
||||
url = "https://anidb.net/anime/%s" % id
|
||||
soup = BeautifulSoup(get_html(url), "lxml")
|
||||
titles = soup.find("div", id="tab_2_pane")
|
||||
g = titles.findAll("th")
|
||||
v = titles.findAll("td")
|
||||
t_dic = {
|
||||
"id": id,
|
||||
"main": None,
|
||||
"verified": None,
|
||||
"en": None,
|
||||
"chs": None,
|
||||
"cht": None,
|
||||
"jp": None,
|
||||
"synonym": None,
|
||||
"kana": None
|
||||
}
|
||||
for i in range(0, len(g)):
|
||||
if g[i].text == "Main Title":
|
||||
t_dic["main"] = re.sub("\(a\d+\)", "", v[i].text).strip("\n\t")
|
||||
elif g[i].text == "Official Title":
|
||||
if re.search("verified", str(v[i])):
|
||||
t_dic["verified"] = v[i].find("label").text
|
||||
if re.search("language: english", str(v[i])):
|
||||
t_dic["en"] = v[i].find("label").text
|
||||
elif re.search("span>zh-Hant", str(v[i])):
|
||||
t_dic["cht"] = v[i].find("label").text
|
||||
elif re.search("span>zh-Hans", str(v[i])):
|
||||
t_dic["chs"] = v[i].find("label").text
|
||||
elif re.search("language: japanese", str(v[i])):
|
||||
t_dic["jp"] = v[i].find("label").text
|
||||
elif g[i].text == "Synonym":
|
||||
t_dic["synonym"] = v[i].text
|
||||
elif g[i].text == "Kana":
|
||||
t_dic["kana"] = v[i].text
|
||||
return t_dic
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("start")
|
||||
# 年份,季度
|
||||
id_list = (get_list(2022, 1))
|
||||
for i in id_list:
|
||||
url = f"http://api.anidb.net:9001/httpapi?request=anime&client=autobangumi&clientver=1&protover=1&aid={i}"
|
||||
req = requests.get(url)
|
||||
soup = BeautifulSoup(req.text, "xml")
|
||||
titles = soup.find("titles")["official"]
|
||||
for item in titles:
|
||||
print(item)
|
||||
Reference in New Issue
Block a user