Skip to content

Commit 0922bde

Browse files
committed
优化 [屏蔽指定用户] 支持自定义屏蔽用户
1 parent af22880 commit 0922bde

1 file changed

Lines changed: 26 additions & 9 deletions

File tree

Zhihu-Enhanced.user.js

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ==UserScript==
22
// @name 知乎增强
3-
// @version 1.3.7
3+
// @version 1.3.8
44
// @author X.I.U
55
// @description 移除登录弹窗、一键收起回答、收起当前回答/评论(点击两侧空白处)、快捷回到顶部(右键两侧空白处)、屏蔽指定用户、屏蔽盐选内容、置顶显示时间、显示问题时间、区分问题文章、默认高清原图、默认站外直链
66
// @match *://www.zhihu.com/*
@@ -21,13 +21,14 @@ var menu_ALL = [
2121
['menu_collapsedAnswer', '一键收起回答', '一键收起回答', true],
2222
['menu_collapsedNowAnswer', '收起当前回答/评论(点击两侧空白处)', '收起当前回答/评论', true],
2323
['menu_backToTop', '快捷回到顶部(右键两侧空白处)', '快捷回到顶部', true],
24-
['menu_blockUsers', '屏蔽指定用户(测试)', '屏蔽指定用户', false],
24+
['menu_blockUsers', '屏蔽指定用户', '屏蔽指定用户', false],
25+
['menu_customBlockUsers', '自定义屏蔽用户', '自定义屏蔽用户', ['故事档案局', '盐选推荐', '盐选科普', '盐选成长计划', '知乎盐选会员', '知乎盐选创作者', '盐选心理', '盐选健康必修课', '盐选奇妙物语', '盐选生活馆', '盐选职场', '盐选文学甄选', '盐选作者小管家', '盐选博物馆', '盐选点金', '盐选测评室', '盐选科技前沿', '盐选会员精品']],
2526
['menu_blockYanXuan', '屏蔽盐选内容', '屏蔽盐选内容', false],
2627
['menu_publishTop', '置顶显示时间', '置顶显示时间', true],
2728
['menu_allTime', '完整显示时间', '完整显示时间', true],
2829
['menu_typeTips', '区分问题文章', '区分问题文章', true],
2930
['menu_directLink', '默认站外直链', '默认站外直链', true]
30-
], menu_ID = [], blockUsersList = ['故事档案局', '盐选推荐', '盐选科普', '盐选成长计划', '知乎盐选会员', '知乎盐选创作者', '盐选心理', '盐选健康必修课', '盐选奇妙物语', '盐选生活馆', '盐选职场', '盐选文学甄选', '盐选作者小管家', '盐选博物馆', '盐选点金', '盐选测评室', '盐选科技前沿', '盐选会员精品'];
31+
], menu_ID = [];
3132
for (let i=0;i<menu_ALL.length;i++){ // 如果读取到的值为 null 就写入默认值
3233
if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])};
3334
}
@@ -42,7 +43,11 @@ function registerMenuCommand() {
4243
}
4344
for (let i=0;i<menu_ALL.length;i++){ // 循环注册脚本菜单
4445
menu_ALL[i][3] = GM_getValue(menu_ALL[i][0]);
45-
menu_ID[i] = GM_registerMenuCommand(`[ ${menu_ALL[i][3]?'√':'×'} ] ${menu_ALL[i][1]}`, function(){menu_switch(`${menu_ALL[i][3]}`,`${menu_ALL[i][0]}`,`${menu_ALL[i][2]}`)});
46+
if (menu_ALL[i][0] === 'menu_customBlockUsers') {
47+
menu_ID[i] = GM_registerMenuCommand(`[ ⚑ ] ${menu_ALL[i][1]}`, function(){customBlockUsers()});
48+
} else {
49+
menu_ID[i] = GM_registerMenuCommand(`[ ${menu_ALL[i][3]?'√':'×'} ] ${menu_ALL[i][1]}`, function(){menu_switch(`${menu_ALL[i][3]}`,`${menu_ALL[i][0]}`,`${menu_ALL[i][2]}`)});
50+
}
4651
}
4752
menu_ID[menu_ID.length] = GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});window.GM_openInTab('https://greasyfork.org/zh-CN/scripts/419081/feedback', {active: true,insert: true,setParent: true});});
4853
}
@@ -187,7 +192,19 @@ function isElementInViewport(el) {
187192
}
188193

189194

190-
// 屏蔽指定用户(测试)
195+
// 自定义屏蔽用户
196+
function customBlockUsers() {
197+
let nowBlockUsers = '';
198+
menu_value('menu_customBlockUsers').forEach(function(item){nowBlockUsers = nowBlockUsers + '|' + item})
199+
let newBlockUsers = prompt('编辑 [自定义屏蔽用户]\n(不同用户名之间使用 "|" 分隔,例如:用户A|用户B|用户C )', nowBlockUsers.replace('|',''));
200+
if (newBlockUsers != null) {
201+
GM_setValue('menu_customBlockUsers', newBlockUsers.split('|'));
202+
registerMenuCommand(); // 重新注册脚本菜单
203+
}
204+
};
205+
206+
207+
// 屏蔽指定用户
191208
function blockUsers(type) {
192209
if (!menu_value('menu_blockUsers')) return
193210
switch(type) {
@@ -207,7 +224,7 @@ function blockUsers(type) {
207224
if (e.target.innerHTML && e.target.getElementsByClassName('Feed').length > 0) {
208225
let item = e.target.getElementsByClassName('Feed')[0].getElementsByClassName('ContentItem AnswerItem')[0]; // 用户名所在元素
209226
if (item) {
210-
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
227+
menu_value('menu_customBlockUsers').forEach(function(item1){ // 遍历用户黑名单
211228
if (item.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该信息流
212229
console.log(item.dataset.zop);
213230
item.parentNode.parentNode.remove();
@@ -222,7 +239,7 @@ function blockUsers(type) {
222239
Array.from(listItem).forEach(function(item){ // 遍历所有回答
223240
let listName = item.querySelector('.ContentItem.AnswerItem') // 用户名所在元素
224241
if (listName) {
225-
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
242+
menu_value('menu_customBlockUsers').forEach(function(item1){ // 遍历用户黑名单
226243
if (listName.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该信息流
227244
console.log(listName.dataset.zop);
228245
item.remove();
@@ -237,7 +254,7 @@ function blockUsers(type) {
237254
if (e.target.innerHTML && e.target.getElementsByClassName('ContentItem AnswerItem').length > 0) {
238255
let item = e.target.getElementsByClassName('ContentItem AnswerItem')[0]; // 用户名所在元素
239256
if (item) {
240-
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
257+
menu_value('menu_customBlockUsers').forEach(function(item1){ // 遍历用户黑名单
241258
if (item.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该回答
242259
console.log(item.dataset.zop)
243260
item.parentNode.remove();
@@ -251,7 +268,7 @@ function blockUsers(type) {
251268
let listItem = document.getElementsByClassName('ContentItem AnswerItem');
252269
Array.from(listItem).forEach(function(item){ // 遍历所有回答 // 用户名所在元素
253270
if (item) {
254-
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
271+
menu_value('menu_customBlockUsers').forEach(function(item1){ // 遍历用户黑名单
255272
if (item.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该回答
256273
console.log(item.dataset.zop)
257274
item.parentNode.remove();

0 commit comments

Comments
 (0)