Skip to content

Commit 69588e1

Browse files
committed
新增 [屏蔽指定用户、屏蔽盐选内容] 功能
1 parent fe07e12 commit 69588e1

1 file changed

Lines changed: 123 additions & 3 deletions

File tree

Zhihu-Enhanced.user.js

Lines changed: 123 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// ==UserScript==
22
// @name 知乎增强
3-
// @version 1.3.6
3+
// @version 1.3.7
44
// @author X.I.U
5-
// @description 移除登录弹窗、一键收起回答、收起当前回答/评论(点击两侧空白处)、快捷回到顶部(右键两侧空白处)、置顶显示时间、显示问题时间、区分问题文章、默认高清原图、默认站外直链
5+
// @description 移除登录弹窗、一键收起回答、收起当前回答/评论(点击两侧空白处)、快捷回到顶部(右键两侧空白处)、屏蔽指定用户、屏蔽盐选内容、置顶显示时间、显示问题时间、区分问题文章、默认高清原图、默认站外直链
66
// @match *://www.zhihu.com/*
77
// @match *://zhuanlan.zhihu.com/*
88
// @icon https://static.zhihu.com/heifetz/favicon.ico
@@ -21,11 +21,13 @@ var menu_ALL = [
2121
['menu_collapsedAnswer', '一键收起回答', '一键收起回答', true],
2222
['menu_collapsedNowAnswer', '收起当前回答/评论(点击两侧空白处)', '收起当前回答/评论', true],
2323
['menu_backToTop', '快捷回到顶部(右键两侧空白处)', '快捷回到顶部', true],
24+
['menu_blockUsers', '屏蔽指定用户(测试)', '屏蔽指定用户', false],
25+
['menu_blockYanXuan', '屏蔽盐选内容', '屏蔽盐选内容', false],
2426
['menu_publishTop', '置顶显示时间', '置顶显示时间', true],
2527
['menu_allTime', '完整显示时间', '完整显示时间', true],
2628
['menu_typeTips', '区分问题文章', '区分问题文章', true],
2729
['menu_directLink', '默认站外直链', '默认站外直链', true]
28-
], menu_ID = [];
30+
], menu_ID = [], blockUsersList = ['故事档案局', '盐选推荐', '盐选科普', '盐选成长计划', '知乎盐选会员', '知乎盐选创作者', '盐选心理', '盐选健康必修课', '盐选奇妙物语', '盐选生活馆', '盐选职场', '盐选文学甄选', '盐选作者小管家', '盐选博物馆', '盐选点金', '盐选测评室', '盐选科技前沿', '盐选会员精品'];
2931
for (let i=0;i<menu_ALL.length;i++){ // 如果读取到的值为 null 就写入默认值
3032
if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])};
3133
}
@@ -185,6 +187,120 @@ function isElementInViewport(el) {
185187
}
186188

187189

190+
// 屏蔽指定用户(测试)
191+
function blockUsers(type) {
192+
if (!menu_value('menu_blockUsers')) return
193+
switch(type) {
194+
case 'index':
195+
blockUsers_index();
196+
break;
197+
case 'question':
198+
blockUsers_question();
199+
break;
200+
case 'search':
201+
blockUsers_search();
202+
break;
203+
}
204+
205+
function blockUsers_index() {
206+
let blockUsers = e => {
207+
if (e.target.innerHTML && e.target.getElementsByClassName('Feed').length > 0) {
208+
let item = e.target.getElementsByClassName('Feed')[0].getElementsByClassName('ContentItem AnswerItem')[0]; // 用户名所在元素
209+
if (item) {
210+
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
211+
if (item.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该信息流
212+
console.log(item.dataset.zop);
213+
item.parentNode.parentNode.remove();
214+
}
215+
})
216+
}
217+
}
218+
}
219+
document.addEventListener('DOMNodeInserted', blockUsers); // 监听插入事件
220+
221+
let listItem = document.getElementsByClassName('Card TopstoryItem TopstoryItem--old TopstoryItem-isRecommend');
222+
Array.from(listItem).forEach(function(item){ // 遍历所有回答
223+
let listName = item.querySelector('.ContentItem.AnswerItem') // 用户名所在元素
224+
if (listName) {
225+
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
226+
if (listName.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该信息流
227+
console.log(listName.dataset.zop);
228+
item.remove();
229+
}
230+
})
231+
}
232+
})
233+
}
234+
235+
function blockUsers_question() {
236+
let blockUsers = e => {
237+
if (e.target.innerHTML && e.target.getElementsByClassName('ContentItem AnswerItem').length > 0) {
238+
let item = e.target.getElementsByClassName('ContentItem AnswerItem')[0]; // 用户名所在元素
239+
if (item) {
240+
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
241+
if (item.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该回答
242+
console.log(item.dataset.zop)
243+
item.parentNode.remove();
244+
}
245+
})
246+
}
247+
}
248+
}
249+
document.addEventListener('DOMNodeInserted', blockUsers); // 监听插入事件
250+
251+
let listItem = document.getElementsByClassName('ContentItem AnswerItem');
252+
Array.from(listItem).forEach(function(item){ // 遍历所有回答 // 用户名所在元素
253+
if (item) {
254+
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
255+
if (item.dataset.zop.indexOf('authorName":"' + item1 + '",') > -1) { // 找到就删除该回答
256+
console.log(item.dataset.zop)
257+
item.parentNode.remove();
258+
}
259+
})
260+
}
261+
})
262+
}
263+
264+
function blockUsers_search() {
265+
let blockUsers = e => {
266+
if (e.target.innerHTML && e.target.getElementsByClassName('List-item').length > 0) {
267+
let item = e.target.getElementsByClassName('List-item')[0];
268+
let listName = item.querySelector('.RichText.ztext.CopyrightRichText-richText b') // 用户名所在元素
269+
if (listName) {
270+
blockUsersList.forEach(function(item1){ // 遍历用户黑名单
271+
if (item1 === listName.innerText) { // 找到就删除该搜索结果
272+
console.log(listName.innerText);
273+
item.parentNode.remove();
274+
}
275+
})
276+
}
277+
}
278+
}
279+
document.addEventListener('DOMNodeInserted', blockUsers); // 监听插入事件
280+
}
281+
}
282+
283+
284+
// 屏蔽盐选内容
285+
function blockYanXuan() {
286+
if (!menu_value('menu_blockYanXuan')) return
287+
let blockYanXuan = e => {
288+
if (e.target.innerHTML && e.target.getElementsByClassName('KfeCollection-PurchaseBtn-mask').length > 0) {
289+
let item = e.target.getElementsByClassName('KfeCollection-PurchaseBtn-mask')[0];
290+
item.parentNode.parentNode.parentNode.parentNode.parentNode.remove();
291+
}
292+
}
293+
document.addEventListener('DOMNodeInserted', blockYanXuan); // 监听插入事件
294+
295+
let listItem = document.getElementsByClassName('List-item');
296+
Array.from(listItem).forEach(function(item){
297+
if (item.getElementsByClassName('KfeCollection-PurchaseBtn-mask').length > 0) {
298+
item.remove();
299+
}
300+
})
301+
}
302+
303+
188304
var postNum;
189305
// 区分问题文章
190306
function addTypeTips() {
@@ -520,6 +636,8 @@ function questionInvitation(){
520636
collapsedAnswer(); // 一键收起回答
521637
collapsedNowAnswer(".QuestionPage"); // 收起当前回答 + 快捷返回顶部
522638
collapsedNowAnswer(".Question-main"); // 收起当前回答 + 快捷返回顶部
639+
blockUsers('question');
640+
blockYanXuan();
523641
}
524642
setInterval(topTime_question, 300); // 置顶显示时间
525643
} else if (window.location.href.indexOf("search") > -1) { // 搜索结果页 //
@@ -528,6 +646,7 @@ function questionInvitation(){
528646
collapsedNowAnswer(".Search-container"); // 收起当前回答 + 快捷返回顶部
529647
setInterval(topTime_search, 300); // 置顶显示时间
530648
EventXMLHttpRequest(); // 区分问题文章
649+
blockUsers('search');
531650
} else if (window.location.href.indexOf("topic") > -1) { // 话题页 //
532651
if (window.location.href.indexOf("hot") > -1 || window.location.href.indexOf("top-answers") > -1) { // 仅限 [讨论] [精华]
533652
collapsedAnswer(); // 一键收起回答
@@ -555,5 +674,6 @@ function questionInvitation(){
555674
collapsedNowAnswer(".Topstory-container"); // 收起当前回答 + 快捷返回顶部
556675
setInterval(topTime_index, 300); // 置顶显示时间
557676
EventXMLHttpRequest(); // 区分问题文章
677+
blockUsers('index');
558678
}
559679
})();

0 commit comments

Comments
 (0)