|
本帖最后由 星之子 于 2024-12-24 19:35 编辑
动机
泥潭的功能允许单独查看某一特定类型的帖子、却不能单独屏蔽某一类型的帖子。我个人的口味不太爱看韩漫(爱看韩漫的坛友dbq),想单独让这种类型不显示,所以写了这个脚本。
功能
输入你想要屏蔽的某一特定类型,作为关键词填入指定位置即可。
需要注意的是,这些关键词是所有版块共用的,以下两种情况可能不太适用:- 两版块包含同一类型的帖子,将其作为关键词会一并屏蔽。例:动漫分享 和 和谐动漫 都包含“其他”。
- 因为是检测关键词,所以无法应对关键词互相包含的情况。例:屏蔽“其他”也会一并屏蔽 五花八门 的“其他内容”。
比如这里我随便选了CGAI区域按照时间排序的帖子,然后将所有带有 [AI 生成] 的帖子屏蔽,效果如下:
代码
@Name @Match
- // ==UserScript==
- // @name 看帖:不显示特定类型的帖子
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description 默认隐藏特定类型的帖子,按Shift+Q切换显示
- // @author Étoiles + GPT
- // @match https://www.gamemale.com/forum.php?*
- // @match https://www.gamemale.com/forum-*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- let hidden = false;
- // 关键词列表,包含你希望隐藏的帖子类型
- const keywordList = [
- '关键词1','关键词2','关键词3','关键词4'
- ];
- // Function to hide elements containing specific keywords in <tr> > th > em > a
- function hideRewardQuestions() {
- // Select all <tr> elements
- var rows = document.querySelectorAll('tr');
- rows.forEach(function(row) {
- // Check if the <tr> contains the <th> > <em> > <a> element with specific keywords
- var link = row.querySelector('th > em > a'); // Select the specific <a> element within <th> > <em>
- if (link) {
- // Check if the link's text content includes any of the keywords
- let containsKeyword = keywordList.some(keyword => link.textContent.includes(keyword));
- // If the link contains a keyword, hide the entire <tr>
- if (containsKeyword) {
- row.style.display = hidden ? '' : 'none'; // Toggle visibility
- }
- }
- });
- }
- // 用来调整是否隐藏的开关
- function toggleHiddenState() {
- hidden = !hidden;
- hideRewardQuestions();
- }
- // 在这里可以调整切换开关的快捷键
- document.addEventListener('keydown', function(event) {
- if (event.shiftKey && event.key === 'Q') {
- toggleHiddenState();
- }
- });
- // 在页面加载时运行
- window.addEventListener('load', hideRewardQuestions);
- })();
复制代码
来自群组: 星象占卜 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
查看全部评分
|