Skip to content

Commit f3d1a1d

Browse files
author
XDCedar
committed
minor modification
1 parent 486a318 commit f3d1a1d

File tree

1 file changed

+54
-39
lines changed

1 file changed

+54
-39
lines changed

cedar/homepage_rakuen_content_blacklist.user.js

Lines changed: 54 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
2-
// @name 首页与超展开内容屏蔽
3-
// @namespace tv.bgm.cedar.homepagerakuencontentblacklist
4-
// @version 2.2
2+
// @name Bangumi多页面内容屏蔽
3+
// @namespace tv.bgm.cedar.bangumicontentblacklist
4+
// @version 2.2.1
55
// @description 根据指定关键词或ID屏蔽首页热门条目, 小组讨论
66
// @author Cedar
77
// @include /^https?://((bangumi|bgm)\.tv|chii\.in)/$/
@@ -840,7 +840,7 @@ async function rakuenFilter() {
840840
parsedList = filteredList.map(x => x.topicId);
841841
indexes = await model.IDFilter(parsedList, null, true);
842842
for (let idx of indexes) {
843-
itemList[idx].style.display = "none";
843+
filteredList[idx].node.style.display = "none";
844844
}
845845

846846
// 筛选小组的标题关键词
@@ -941,6 +941,7 @@ async function rakuenFilter() {
941941
}
942942
}
943943

944+
// discover filter 筛选“随便看看”
944945
async function discoverFilter() {
945946
let model = await Model.build();
946947

@@ -998,7 +999,7 @@ class ConfigUI {
998999
let action = e.target.dataset.action;
9991000
if (action) {
10001001
let el = e.target.closest('.content-blacklist-config>li');
1001-
if (el) this[action](el);
1002+
if (el) this[`_action_${action}`](el);
10021003
}
10031004
}
10041005

@@ -1020,7 +1021,11 @@ class ConfigUI {
10201021
let itemListEl = createElement('ul', {className: 'content-blacklist-config'}, [
10211022
...items.map(this._toConfigItemEl),
10221023
createElement('li', {className: 'new'}, [
1023-
createElement('button', {className: 'new-button', dataset: {action: 'new'}, textContent: '新增'}, null, null)
1024+
createElement('button', {
1025+
className: 'new-button',
1026+
dataset: {action: 'new'},
1027+
textContent: '新增',
1028+
})
10241029
])
10251030
]);
10261031
return createElement(
@@ -1045,17 +1050,19 @@ class IDConfigUI extends ConfigUI {
10451050
* 不过,注意!目前的功能还比较简单,暂时不需要“编辑”“更新”“取消”按钮, 也不需要edit-wrapper
10461051
* 只需要删除功能
10471052
* 布局如下
1048-
<li class='item'>
1053+
<li class='item' data-type='id.group_topic' data-id='123456'>
10491054
<div class='edit-wrapper'>
1055+
<!-- 暂时不需要与编辑相关的元素
10501056
<form>
10511057
<label>
10521058
<span>链接:</span>
10531059
<input name='url' class='edit-input'>
10541060
</label>
10551061
</form>
1062+
-->
10561063
</div>
1057-
<div class='type' data-type='id.group_topic'>小组帖子ID</div>
1058-
<div class='id', data-id='123456'>
1064+
<div class='type'>小组帖子ID</div>
1065+
<div class='id'>
10591066
<a href='/group/topic/123456'>123456</a></div>
10601067
</div>
10611068
<div class='action'>
@@ -1082,13 +1089,14 @@ class IDConfigUI extends ConfigUI {
10821089
], null
10831090
);
10841091
*/
1085-
let typeWrapper = createElement(
1086-
'div', {className: 'type', dataset: {type: item.type}},
1087-
[ID_TYPE.toReadableString(item.type)]);
1092+
let typeWrapper = createElement('div', {
1093+
className: 'type',
1094+
textContent: ID_TYPE.toReadableString(item.type)
1095+
});
10881096

10891097
let idWrapper = createElement(
1090-
'div', {className: 'id', dataset: {id: item.id}},
1091-
[createElement('a', {href: url, target: '_blank', rel: 'noreferrer noopener'}, [item.id])]
1098+
'div', {className: 'id'},
1099+
[createElement('a', {href: url, target: '_blank', rel: 'noreferrer noopener', textContent: item.id})]
10921100
);
10931101

10941102
let actionWrapper = createElement( 'div', {className: 'action'}, [
@@ -1099,7 +1107,10 @@ class IDConfigUI extends ConfigUI {
10991107
createElement('button', {className: 'delete-button', dataset: {action: 'delete'}, textContent: '删除'}),
11001108
]);
11011109

1102-
let li = createElement( 'li', {className: 'item'}, [typeWrapper, idWrapper, actionWrapper]);
1110+
let li = createElement(
1111+
'li', {className: 'item', dataset: {type: item.type, id: item.id}},
1112+
[typeWrapper, idWrapper, actionWrapper]
1113+
);
11031114
return li;
11041115
}
11051116

@@ -1140,13 +1151,13 @@ class IDConfigUI extends ConfigUI {
11401151
return li;
11411152
}
11421153

1143-
new(li) {
1154+
_action_new(li) {
11441155
let el = this._getAddNewEl();
11451156
li.insertAdjacentElement('beforebegin', el);
11461157
//li.parentElement.removeChild(li);
11471158
}
11481159

1149-
async add(li) {
1160+
async _action_add(li) {
11501161
let buttons = li.querySelectorAll('button');
11511162
buttons.forEach(btn => {btn.disabled = true;});
11521163
let url = new FormData(li.querySelector('.edit-wrapper form')).get('url');
@@ -1170,15 +1181,15 @@ class IDConfigUI extends ConfigUI {
11701181
li.parentElement.removeChild(li);
11711182
}
11721183

1173-
cancelAdd(li) {
1184+
_action_cancelAdd(li) {
11741185
li.parentElement.removeChild(li);
11751186
}
11761187

1177-
async delete(li) {
1188+
async _action_delete(li) {
11781189
let buttons = li.querySelectorAll('button');
11791190
buttons.forEach(btn => {btn.disabled = true;});
1180-
let type = li.querySelector('div.type').dataset.type;
1181-
let id = li.querySelector('div.id').dataset.id;
1191+
let type = li.dataset.type;
1192+
let id = li.dataset.id;
11821193
try {
11831194
await this._model.deleteID({type, id});
11841195
} catch(e) {
@@ -1206,15 +1217,17 @@ class KeywordConfigUI extends ConfigUI {
12061217
* 不过,注意!目前的功能还比较简单,暂时不需要“编辑”“更新”“取消”按钮, 也不需要edit-wrapper
12071218
* 只需要删除功能
12081219
* 布局如下
1209-
<li>
1220+
<li data-type='kw.group_topic' data-match='里番'>
1221+
<!-- 暂时不需要与编辑相关的元素
12101222
<div class='edit-wrapper'>
12111223
<label>
12121224
<span>关键词:</span>
12131225
<input name='match' class='edit-input'>
12141226
</label>
12151227
</div>
1228+
-->
12161229
<div class='type'>小组帖子</div>
1217-
<div class='match' data-match='里番'>里番</div>
1230+
<div class='match'>里番</div>
12181231
<div class='action'>
12191232
<button class='update-button' data-action='update'>更新</button>
12201233
<button class='cancel-button' data-action='cancel'>取消</button>
@@ -1231,13 +1244,12 @@ class KeywordConfigUI extends ConfigUI {
12311244
// createElement('input', {name: 'url', className: 'edit-input', val: url})
12321245
// ])
12331246
// ]);
1234-
let typeWrapper = createElement(
1235-
'div', {className: 'type', dataset: {type: item.type}},
1236-
[KW_TYPE.toReadableString(item.type)]);
1247+
let typeWrapper = createElement('div', {
1248+
className: 'type',
1249+
textContent: KW_TYPE.toReadableString(item.type)
1250+
});
12371251

1238-
let kwWrapper = createElement(
1239-
'div', {className: 'match', dataset: {match: item.match}}, [item.match]
1240-
);
1252+
let kwWrapper = createElement('div', {className: 'match', textContent: item.match});
12411253

12421254
let actionWrapper = createElement( 'div', {className: 'action'}, [
12431255
// 暂时不需要与编辑相关的按钮
@@ -1247,7 +1259,10 @@ class KeywordConfigUI extends ConfigUI {
12471259
createElement('button', {className: 'delete-button', dataset: {action: 'delete'}, textContent: '删除'}),
12481260
]);
12491261

1250-
let li = createElement( 'li', {className: 'item'}, [typeWrapper, kwWrapper, actionWrapper]);
1262+
let li = createElement(
1263+
'li',
1264+
{className: 'item', dataset: {type: item.type, match: item.match}},
1265+
[typeWrapper, kwWrapper, actionWrapper]);
12511266
return li;
12521267
}
12531268

@@ -1282,7 +1297,7 @@ class KeywordConfigUI extends ConfigUI {
12821297
let optionEl = createElement(
12831298
'select', {name: 'type'},
12841299
Object.values(KW_TYPE).filter(v => !(v instanceof Function))
1285-
.map(v => createElement('option', {value: v}, [KW_TYPE.toReadableString(v)]))
1300+
.map(v => createElement('option', {value: v, textContent: KW_TYPE.toReadableString(v)}))
12861301
);
12871302
let editWrapper = createElement('div', {className: 'edit-wrapper'}, [
12881303
createElement('form', null, [
@@ -1303,13 +1318,13 @@ class KeywordConfigUI extends ConfigUI {
13031318
return li;
13041319
}
13051320

1306-
new(li) {
1321+
_action_new(li) {
13071322
let el = this._getAddNewEl();
13081323
li.insertAdjacentElement('beforebegin', el);
13091324
//li.parentElement.removeChild(li);
13101325
}
13111326

1312-
async add(li) {
1327+
async _action_add(li) {
13131328
let buttons = li.querySelectorAll('button');
13141329
buttons.forEach(btn => {btn.disabled = true;});
13151330
let fd = new FormData(li.querySelector('.edit-wrapper form'));
@@ -1334,15 +1349,15 @@ class KeywordConfigUI extends ConfigUI {
13341349
li.parentElement.removeChild(li);
13351350
}
13361351

1337-
cancelAdd(li) {
1352+
_action_cancelAdd(li) {
13381353
li.parentElement.removeChild(li);
13391354
}
13401355

1341-
async delete(li) {
1356+
async _action_delete(li) {
13421357
let buttons = li.querySelectorAll('button');
13431358
buttons.forEach(btn => {btn.disabled = true;});
1344-
let type = li.querySelector('div.type').dataset.type;
1345-
let match = li.querySelector('div.match').dataset.match;
1359+
let type = li.dataset.type;
1360+
let match = li.dataset.match;
13461361
try {
13471362
await this._model.deleteKeyword({type, match});
13481363
} catch(e) {
@@ -1391,11 +1406,11 @@ class RakuenMenu {
13911406
let action = e.target.dataset.action;
13921407
if (action) {
13931408
let el = e.target.closest('li');
1394-
if (el) this[action](el);
1409+
if (el) this[`_action_${action}`](el);
13951410
}
13961411
}
13971412

1398-
async ban(li) {
1413+
async _action_ban(li) {
13991414
let buttons = li.querySelectorAll('button.content-blacklist-rakuen-button');
14001415
buttons.forEach(btn => {btn.disabled = true;});
14011416
let item = Parser.rakuen.topicIdParser(li);

0 commit comments

Comments
 (0)