So, we can ignore users through our
ignore list, and when they post something, we won't see their posts.
The problem is that we still see their quotes, so sometimes we're reading a topic and we get their bs jumpscared on our face because another user replied to them.
To fix that, I wrote a small usercript that fetches your ignore list and removes the entire quote content when they're from a user on that list. The ignore list is cached for 1 hour.

1. Download the Tampermonkey or ViolentMonkey extension for PC, Kiwi Browser for Android.
2. Install the script:
https://greasyfork.org/en/scripts/535425-full-ignore-bitcointalk-usersOr copy and paste a script with the source code:
// ==UserScript==
// @name Full Ignore bitcointalk users
// @version 0.1
// @description Ignore quotes from users you already ignore on the forum
// @author TryNinja
// @match https://bitcointalk.org/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=bitcointalk.org
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
(async function () {
'use strict';
let list;
const isLogged = document.querySelector('#hellomember') !== null;
if (!isLogged) return;
const getCachedList = () => {
const cached = GM_getValue('ignoreListCache');
if (cached) {
const parsed = JSON.parse(cached);
const cacheDate = new Date(parsed.date);
const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000);
if (cacheDate > oneHourAgo) {
return parsed;
}
}
return null;
};
const setCachedList = (list) => {
return GM_setValue('ignoreListCache', JSON.stringify({ list, date: new Date().toISOString() }));
};
const fetchIgnoreList = async () => {
const res = await fetch('https://bitcointalk.org/index.php?action=profile;sa=ignprefs');
const html = await res.text();
const parser = new DOMParser();
const page = parser.parseFromString(html, 'text/html');
const ignoreListTextArea = page.querySelector('#ign_ignore_list');
const ignoreListUsers = ignoreListTextArea?.textContent?.split('\n');
return ignoreListUsers;
};
const cached = getCachedList();
if (cached) {
list = cached.list;
} else {
console.log('No cached ignore list, fetching now...')
list = await fetchIgnoreList();
setCachedList(list);
}
console.log('ignore list', { list });
const quoteHeaders = document.querySelectorAll('.post .quoteheader')
for (const quoteHeader of quoteHeaders) {
const quoteBody = quoteHeader.nextElementSibling
const authorMatch = quoteHeader.getHTML().match(/Quote from: (.*) on/)
if (authorMatch && authorMatch[1]) {
if (list.includes(authorMatch[1]) && quoteBody) {
quoteBody.innerHTML = 'USER IS IGNORED'
}
}
}
})();