屏蔽特定用户帖子
// ==UserScript==
// @name 屏蔽特定用户帖子
// @namespace http://tampermonkey.net/
// @version 0.2
// @description 输入用户ID来屏蔽其帖子
// @author alizoed
// @match https://www.gcores.com/topics/home
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 在页面上添加输入框、保存按钮和删除按钮
var inputHTML = `<div style="position: fixed; top: 10px; left: 10px; z-index: 9999;">
<input type="text" id="userIdInput" placeholder="输入用户ID">
<button id="saveUserBtn">保存</button>
<button id="deleteUserBtn">删除</button>
</div>`;
document.body.insertAdjacentHTML('afterbegin', inputHTML);
// 当保存按钮被点击时获取用户ID并保存
document.getElementById('saveUserBtn').addEventListener('click', function() {
var userId = document.getElementById('userIdInput').value;
if (userId) {
saveUser(userId);
}
});
// 当删除按钮被点击时获取用户ID并删除
document.getElementById('deleteUserBtn').addEventListener('click', function() {
var userId = document.getElementById('userIdInput').value;
if (userId) {
deleteUser(userId);
}
});
// 保存用户函数
function saveUser(userId) {
var blockedUsers = JSON.parse(localStorage.getItem('blockedUsers')) || [];
if (!blockedUsers.includes(userId)) {
blockedUsers.push(userId);
localStorage.setItem('blockedUsers', JSON.stringify(blockedUsers));
alert('已保存,当前屏蔽列表: ' + blockedUsers.join(', '));
} else {
alert('用户ID已存在于屏蔽列表中');
}
}
// 删除用户函数
function deleteUser(userId) {
var blockedUsers = JSON.parse(localStorage.getItem('blockedUsers')) || [];
var index = blockedUsers.indexOf(userId);
if (index > -1) {
blockedUsers.splice(index, 1);
localStorage.setItem('blockedUsers', JSON.stringify(blockedUsers));
alert('已删除,当前屏蔽列表: ' + blockedUsers.join(', '));
} else {
alert('用户ID不在屏蔽列表中');
}
}
// 屏蔽用户帖子函数
function blockUserPosts() {
var blockedUsers = JSON.parse(localStorage.getItem('blockedUsers')) || [];
var talks = document.querySelectorAll('div.talk');
talks.forEach(function(talk) {
blockedUsers.forEach(function(userId) {
var userLink = talk.querySelector(`a[href*="/users/${userId}"]`);
if (userLink) {
talk.style.display = 'none';
}
});
});
}
// 定时执行屏蔽操作,以处理动态加载的内容
setInterval(blockUserPosts, 1000);
})();