1
- import { _log , $n , $na , fnElChange } from "./_base" ;
2
- import _config from "./_config" ;
1
+ import {
2
+ _log ,
3
+ $n ,
4
+ $na ,
5
+ fnElChange ,
6
+ } from "./_base" ;
3
7
4
- // 选项为 sc 时,则排除匹配 tc 字段的节点文本
5
- const _filter_map = {
6
- "tc" : [ "big5" , "cht" , "繁日双语" , "繁体内嵌" , "繁体" ] ,
7
- "sc" : [ "gb" , "chs" , "简日双语" , "简体内嵌" , "简体" ] ,
8
- "720" : [ "720" ] ,
9
- "1080" : [ "1080" ] ,
10
- } ;
11
-
12
- const fnGenFilter = ( opt ) => {
13
- const filter = { } ;
14
- const string = JSON . stringify ( opt ) ;
15
- if ( string . includes ( "720" ) ) {
16
- filter [ "size" ] = _filter_map [ "1080" ] ;
17
- }
18
- if ( string . includes ( "1080" ) ) {
19
- filter [ "size" ] = _filter_map [ "720" ] ;
20
- }
21
- if ( string . includes ( "tc" ) ) {
22
- filter [ "subtitle" ] = _filter_map [ "sc" ] ;
23
- }
24
- if ( string . includes ( "sc" ) ) {
25
- filter [ "subtitle" ] = _filter_map [ "tc" ] ;
26
- }
27
- // 其他过滤条件
28
- filter [ "other" ] = [ "cr 1920" , "b-global" ] ;
29
- return filter ;
30
- } ;
31
-
32
- const _filter = fnGenFilter ( _config . data ) ;
33
- _log ( "_filter\n" , _filter ) ;
34
-
35
- // 过滤含有指定字符的节点
36
- function fnFilter ( text , filter ) {
37
- let bolBlock = false ;
38
- for ( const key in filter ) {
39
- if ( Object . hasOwnProperty . call ( filter , key ) ) {
40
- const element = filter [ key ] ;
41
- for ( let i = 0 ; i < element . length ; i ++ ) {
42
- // _log(element[i], text, text.includes(element[i]));
43
- if ( text . includes ( element [ i ] ) ) {
44
- bolBlock = true ;
45
- break ;
46
- }
47
- }
48
- }
49
- }
50
- return bolBlock ;
51
- }
8
+ import _pick from "./_pick" ;
52
9
53
10
// 遍历 nodeList
54
11
function fnEachNodeList ( nodeList , fn ) {
@@ -58,59 +15,30 @@ function fnEachNodeList(nodeList, fn) {
58
15
}
59
16
}
60
17
61
- // 添加批量复制磁力链接功能
62
- function fnAddBatchCopy ( $th , magnetList ) {
63
- const $btn = document . createElement ( "button" ) ;
64
- $btn . innerText = "批量复制" ;
65
- $btn . addEventListener ( "click" , ( ) => {
66
- const magnetStr = magnetList . join ( "\n" ) ;
67
- GM_setClipboard ( magnetStr ) ;
68
- $btn . innerText = "复制成功" ;
69
- _log ( `已复制 ${ magnetStr } ` ) ;
70
- } , false ) ;
71
- // appendChild 2 elements
72
- $th . appendChild ( $btn ) ;
73
- }
74
-
75
- // 过滤磁力链接中的 tr
76
- function fnRemoveTracker ( magnet ) {
77
- const regex = / & t r = .+ ?(? = & | $ ) / g;
78
- return magnet . replace ( regex , "" ) ;
18
+ // 按发布组获取信息
19
+ function fnGetGroupInfo ( ) {
20
+ const arrGroup = [ ] ;
21
+ // 获取全部 div.subgroup-text
22
+ const $listGroup = $na ( ".subgroup-text" ) ;
23
+ fnEachNodeList ( $listGroup , ( $group , i ) => {
24
+ const $groupTitle = $group . querySelector ( "div.dropdown-toggle span" ) || $group . querySelector ( "a" ) ;
25
+ const groupName = $groupTitle . innerText ;
26
+ const $groupTable = $group . nextElementSibling ;
27
+ arrGroup . push ( {
28
+ name : groupName ,
29
+ $table : $groupTable ,
30
+ } ) ;
31
+ } ) ;
32
+ return arrGroup ;
79
33
}
80
34
81
-
82
35
// main
83
36
function fnMain ( ) {
84
- const $listTr = $na ( "table tr" ) ;
85
- _log ( $listTr . length ) ;
86
- let $curTh = null ;
87
- // let $lstTh = null;
88
- let magnetList = [ ] ;
89
- fnEachNodeList ( $listTr , ( $tr , i ) => {
90
- if ( $tr . innerText . includes ( "番组名" ) ) {
91
- $curTh = $tr . querySelector ( "th" ) ;
92
- // $lstTh = $curTh;
93
- _log ( "fnMain() $curTh\n" , $curTh ) ;
94
- fnAddBatchCopy ( $curTh , magnetList ) ;
95
- magnetList = [ ] ;
96
- // return;
97
- }
98
- const $curA = $tr . querySelector ( ".magnet-link-wrap" ) ;
99
- const $curB = $tr . querySelector ( ".js-magnet" ) ;
100
- if ( ! $curA ) {
101
- return ;
102
- }
103
- const curText = $curA . innerText . toLowerCase ( ) ;
104
- // data-clipboard-text
105
- let magnet = $curB . getAttribute ( "data-clipboard-text" ) ;
106
- magnet = fnRemoveTracker ( magnet ) ;
107
- if ( fnFilter ( curText , _filter ) ) {
108
- // _log(`${curText} ${magnet}`);
109
- $tr . remove ( ) ;
110
- } else {
111
- magnetList . push ( magnet ) ;
112
- }
113
- // _log(`${i} ${curText}`);
37
+ const arrGroup = fnGetGroupInfo ( ) ;
38
+ // _log("arrGroup", arrGroup);
39
+ arrGroup . forEach ( ( group ) => {
40
+ _pick ( group . name , group . $table ) ;
41
+ // _log("group", group);
114
42
} ) ;
115
43
}
116
44
@@ -124,8 +52,10 @@ function fnAutoExpand() {
124
52
fnMain ( ) ;
125
53
} , 3000 ) ;
126
54
}
55
+
127
56
fnAutoExpand ( ) ;
128
57
58
+
129
59
// fnElChange($n(".central-container"),
130
60
// () => {
131
61
// fnMain();
0 commit comments