NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Mask Likes from Ignored Users // @version 0.0.6 // @description I don't like your likes! // @updateURL https://openuserjs.org/meta/gyakkun/Mask_Likes_from_Ignored_Users.meta.js // @downloadURL https://openuserjs.org/install/gyakkun/Mask_Likes_from_Ignored_Users.user.js // @copyright gyakkun // @include /^https?:\/\/(((fast\.)?bgm\.tv)|chii\.in|bangumi\.tv)\/(group|subject)\/topic\/*/ // @include /^https?:\/\/(((fast\.)?bgm\.tv)|chii\.in|bangumi\.tv)\/ep\/*/ // @include /^https?:\/\/(((fast\.)?bgm\.tv)|chii\.in|bangumi\.tv)\/subject\/[0-9]+/ // @include /^https?:\/\/(((fast\.)?bgm\.tv)|chii\.in|bangumi\.tv)\/subject\/[0-9]+\/comments/ // @include /^https?:\/\/(((fast\.)?bgm\.tv)|chii\.in|bangumi\.tv)(\/?)/ // @include /^https?:\/\/(((fast\.)?bgm\.tv)|chii\.in|bangumi\.tv)\/timeline/ // @license MIT // ==/UserScript== (function () { // The whole document document.addEventListener("readystatechange", (event) => { if (document.readyState === "complete") { if (typeof data_likes_list === 'undefined') return console.debug("[mlfiu] document-complete ready state detected. Going to mask likes from ignored users.") maskIt() chiiLib.likes.init() } }); // Homepage timeline const tmlContent = document.getElementById("tmlContent"); if (tmlContent != null) { const tmlCb = function (mutationsList, observer) { if (typeof data_likes_list === 'undefined') return console.debug("[mlfiu] Timeline reload detected. Going to mask likes from ignored users.") maskIt() chiiLib.likes.init() }; const tmlObserver = new MutationObserver(tmlCb); tmlObserver.observe(tmlContent, { childList: true }); } function maskIt() { let origDataIgnoreUsers = JSON.parse(JSON.stringify(data_ignore_users)) let ignoreUserSet = {} origDataIgnoreUsers.forEach(element => { ignoreUserSet[element] = true }); let ctr = 0 for (let pid in data_likes_list) { let val = data_likes_list[pid] if (Array.isArray(val)) { for (let faceObj of val) { let v = faceObj v["users"] = v["users"].filter(i => { let res = !!!ignoreUserSet[i["username"]] if (!res) ctr++ return res }) v["total"] = v["users"].length } data_likes_list[pid] = val.filter(i => i["total"] != 0) } else { for (let faceId in val) { let v = val[faceId] v["users"] = v["users"].filter(i => { let res = !!!ignoreUserSet[i["username"]] if (!res) ctr++ return res }) v["total"] = v["users"].length if (v["users"].length == 0) { delete val[faceId] } } } } console.debug(`[mlfiu] ${ctr} likes being masked `) } })();