最近發現了一個比動漫花園更好用的網站 mikanani.me,這裡分享一個方便設定 Flexget 的腳本,讓你可以自動下載新番。
Flexget 安裝
可參考我過去這篇文章,安裝好 Flexget;或者直接參考官方文件。
UserScript 腳本
安裝暴力猴或 Tampermonkey,然後新增以下腳本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
// ==UserScript==
// @name mikanani.me 新番組出 flexget 設定
// @namespace Violentmonkey Scripts
// @match https://mikanani.me/Home/Bangumi/*
// @grant none
// @version 1.0
// @author -
// @grant GM_xmlhttpRequest
// @grant GM_setClipboard
// @description 2024/1/16 下午11:50:50
// ==/UserScript==
// Processed by 繁化姬
// 這邊可以依序喜歡字幕組排順序
let url = `https://${location.host}${$('.mikan-rss[href*=583]').attr('href') ?? $('.mikan-rss[href*=382]').attr('href') ?? $('.mikan-rss:nth(1)').attr('href')}`
// 選擇元素並獲取日期
let date = $(`.bangumi-info:contains('放送开始')`).text().split(':')[1];
// 將字串轉換成 Date 物件
let dateObj = new Date(date);
// 獲取年份和月份
let year = dateObj.getFullYear();
let month = dateObj.getMonth() + 1; // getMonth() 從 0 開始計數,所以需要加 1
// 根據月份決定季度
let quarter;
if (month >= 1 && month <= 3) {
quarter = '01';
} else if (month >= 4 && month <= 6) {
quarter = '04';
} else if (month >= 7 && month <= 9) {
quarter = '07';
} else {
quarter = '10';
}
// 組合成 "YYYYMM" 格式的字串
let formattedDate = year + quarter;
// 你的原始標題
let title = $('.bangumi-title').text().trim();
// 在線的繁簡轉換 API
let api = 'https://api.zhconvert.org/convert?converter=Traditional&text=' + encodeURIComponent(title);
// 使用 GM_xmlhttpRequest 來請求 API
GM_xmlhttpRequest({
method: "GET",
url: api,
onload: function(response) {
// 解析回應並獲取轉換後的文字
let convertedText = JSON.parse(response.responseText).data.text;
// 使用轉換後的文字
title = convertedText;
let result = ` "TV-${title}":
rss:
url: ${url}
other_fields: [category]
accept_all: yes
template: default
transmission:
path: /media/extHDD/Download/TV/${formattedDate}/{{task[3:]}}
regexp:
reject:
- 720p
- 简(?!繁)
- \[01-1
console.log(result);
GM_setClipboard (result);
}
});
|
進去 https://mikanani.me/Home/Bangumi/3354
這個頁面,你的剪貼簿就會有一段 flexget 設定,你可以直接貼到你的 config.yml
裡面。
最後組出來的設定檔大概長這樣:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
"TV-多數欠":
rss:
url: https://mikanani.me/RSS/Bangumi?bangumiId=3361&subgroupid=639
other_fields: [category]
accept_all: yes
template: default
transmission:
path: /media/extHDD/Download/TV/202407/{{task[3:]}}
regexp:
reject:
- 720p
- 简(?!繁)
- \[01-1
|
這邊腳本也有做抓取字幕組的優先順序,可以自己調整。
1
2
3
|
# 這邊可以依序喜歡字幕組排順序
$('.mikan-rss[href*=583]').attr('href') ?? $('.mikan-rss[href*=382]').attr('href') ?? $('.mikan-rss:nth(1)').attr('href')
# href*=583 是字幕組的編號,可以自己調整
|
有時候只想設定某一個字幕組的 RSS,可以用這個腳本:
新進去 RSS 網址,開啟 Console 可複製出 flexget 設定
腳本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
// ==UserScript==
// @name New script mikanani.me RSS
// @namespace Violentmonkey Scripts
// @match https://mikanani.me/RS/Bangumi?bangumiId=*&subgroupid=*
// @grant none
// @version 1.0
// @author -
// @grant GM_xmlhttpRequest
// @grant GM_setClipboard
// @description 2024/1/16 下午11:50:50
// ==/UserScript==
// Processed by 繁化姬
let url = location.href;
let dateObj = new Date();
let year = dateObj.getFullYear();
let month = dateObj.getMonth() + 1;
let quarter;
if (month >= 1 && month <= 3) {
quarter = '01';
} else if (month >= 4 && month <= 6) {
quarter = '04';
} else if (month >= 7 && month <= 9) {
quarter = '07';
} else {
quarter = '10';
}
let formattedDate = year + quarter;
let title = document.querySelector('rss channel title').textContent;
let api = 'https://api.zhconvert.org/convert?converter=Traditional&text=' + encodeURIComponent(title);
GM_xmlhttpRequest({
method: "GET",
url: api,
onload: function(response) {
let convertedText = JSON.parse(response.responseText).data.text;
title = convertedText;
let result = ` "TV-${title}":
rss:
url: ${url}
other_fields: [category]
accept_all: yes
template: default
transmission:
path: /media/extHDD/Download/TV/${formattedDate}/{{task[3:]}}
regexp:
reject:
- 720p
- 简(?!繁)
- \[01-1
console.log(result);
GM_setClipboard (result);
}
});
|
Tip
這個因為是用 RSS(XML) 無法呼叫GM_setClipboard
,但可以去打開開發者工具去 console 複製資料。
其他可用的 AutoBangumi 工具介紹
如果你還沒有使用過 flexget,可以考慮試試看這個 AutoBangumi
工具。不過,由於我已經架設好了其他工具,所以不打算折騰自己了,這裡提供一些參考連結。
相關連結: