Adds a blacklist for sellers on eBay that will emphasize or remove r###lts from blacklisted sellers
// ==UserScript== // @name eBay Seller Blacklist // @namespace https://www.ebay.co.uk/ // @version 0.3 // @description Adds a blacklist for sellers on eBay that will emphasize or remove r###lts from blacklisted sellers // @author xdpirate // @license GPLv3 // @include /^https:\/\/www\.ebay\.(co\.uk|com|com\.au)\/(itm|sch|usr)\/.*/ // @icon https://www.google.com/s2/favicons?sz=64&domain=ebay.co.uk // @run-at document-end // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // ==/UserScript== GM_addStyle(` #eBSBToggleButton { cursor: pointer; } #eBSBBlacklistArea { background-color: black; color: white; font-family: monospace; } #eBSBOuterDiv { float: left; background-color: black; color: white; padding: 5px; border: 1px solid white; border-radius: 10px; z-index: 2147483647; display: block; position: absolute; top: 5px; left: 5px; } .hidden { display: none; } `); let blacklist = GM_getValue("blacklist", []); let hideBlacklisted = GM_getValue("hideBlacklisted", false); let newBox = document.createElement("div"); newBox.innerHTML = ` <div id="eBSBOuterDiv"> <span id="eBSBToggleButton" title="eBay Seller Blacklist">💀</span> <div id="eBSBInnerDiv" class="hidden"> <b>eBay Seller Blacklist</b><br /> Comma-separated list of blacklisted sellers:<br /> <textarea id="eBSBBlacklistArea" rows="10" cols="80">${blacklist}</textarea><br /> <input type="checkbox" id="eBSBHideBlacklistedCheckBox"${hideBlacklisted ? ' checked' : ''} /> <label for="eBSBHideBlacklistedCheckBox">Hide listings from blacklisted sellers in search instead of emphasizing them?</label><br /> <input type="button" value="Save and reload" id="eBSBSaveButton"></input> <div> </div> `; document.body.append(newBox); document.getElementById("eBSBSaveButton").onclick = function() { GM_setValue("blacklist", document.getElementById("eBSBBlacklistArea").value.replace(/\s+/g, '').split(",")); GM_setValue("hideBlacklisted", document.getElementById("eBSBHideBlacklistedCheckBox").checked); location.reload(); }; document.getElementById("eBSBToggleButton").onclick = function() { document.getElementById('eBSBInnerDiv').classList.toggle('hidden'); }; function highlightSeller(sellerElement) { sellerElement.style.color = "red"; sellerElement.style.fontWeight = "bold"; sellerElement.innerHTML = sellerElement.innerHTML + " (Blacklisted!)"; } if(window.location.href.includes("/itm/")) { let sellerElement = document.querySelector("div.x-sellercard-atf__info span.ux-textspans.ux-textspans--BOLD");; if(sellerElement) { if(blacklist.includes(sellerElement.innerText.trim())) { highlightSeller(sellerElement); } } } else if(window.location.href.includes("/sch/")) { let sellerElements = document.querySelectorAll("span.s-item__seller-info-text"); if(sellerElements) { for(let i = 0; i < sellerElements.length; i++) { let seller = sellerElements[i].innerHTML.match(/^([^ ]+) .*/)[1]; if(seller) { if(blacklist.includes(seller)) { if(hideBlacklisted) { sellerElements[i].closest("li.s-item").classList.add("hidden"); } else { highlightSeller(sellerElements[i]); sellerElements[i].closest("li.s-item").style.border = "2px solid red"; } } } } } } else if(window.location.href.includes("/usr/")) { let sellerElement = document.querySelector("a.mbg-id"); if(sellerElement) { let seller = sellerElement.href.match(/\/usr\/(.+)$/)[1]; if(seller) { if(blacklist.includes(seller)) { highlightSeller(sellerElement); } } } }