eBay Extras

Replaces default navigation buttons, adds a notification bar when searching for 'US only' or when searching for 'Sold items', removes certain ads

Από την 08/03/2022. Δείτε την τελευταία έκδοση.

// ==UserScript==
// @name            eBay Extras
// @version         1.4
// @description     Replaces default navigation buttons, adds a notification bar when searching for 'US only' or when searching for 'Sold items', removes certain ads
// @author          asheroto
// @license         MIT
// @icon            https://www.ebay.com/favicon.ico
// @match           https://*.ebay.com/*
// @namespace       https://greasyfork.org/en/scripts/388337-ebay-extras
// @grant           GM_addElement
// ==/UserScript==

// ==OpenUserScript==
// @author          asheroto
// ==/OpenUserScript==

/* jshint esversion: 6 */

(function () {
	// Function: insert nav buttons
	function addLink(text, url) {
		let bodChild = document.createElement("li");
		bodChild.classList.add("gh-t");
		bodChild.classList.add("gh-divider-l");
		bodChild.id = "gh-p-3";
		bodChild.innerHTML = '<a href="' + url + '" class="gh-p"> ' + text + "</a>";
		document.getElementById("gh-p-3").parentNode.insertBefore(bodChild, document.getElementById("gh-p-3").nextSibling);
	}
	// Function: for top bar
	function addTopBar(atext) {
		let elChild = document.createElement("div");
		elChild.style.background = "black";
		elChild.style.color = "white";
		elChild.innerHTML = "<center><font size=4>" + atext + "</font></center>";
		document.body.insertBefore(elChild, document.body.firstChild);
	}
	// Function: try to remove item
	function tryRemove(itm) {
		if(itm) {
			try {
				itm.remove();
			} catch(err) {}
		}
	}

	// Insert nav buttons
	addLink("Orders", "https://www.ebay.com/sh/ord/?filter=status:ALL_ORDERS");
	addLink("Active Listings", "https://www.ebay.com/sh/lst/active");
	addLink("Purchases", "https://www.ebay.com/myb/PurchaseHistory");
	addLink("Watch List", "https://www.ebay.com/myb/WatchList");
	addLink("Messages", "https://mesg.ebay.com/mesgweb/ViewMessages/0");

	// If on a category or search, and on a sold/unsold page, then show unsold link / show sold link
	if(document.location.pathname.startsWith("/e/") || document.location.pathname.startsWith("/sch/")) {
		if(document.location.href.includes("&LH_Sold=1")) {
			addLink("This page > unsold items", document.location.href.replace("&LH_Sold=1","").replace("&LH_Complete=1",""));
		} else {
			addLink("This page > sold items", document.location + "&LH_Sold=1&LH_Complete=1");
		}
	}

	// If username is detected, show feedback link
	let userId = document.body.innerHTML.match(/id:"(.*?)"}/);
	if (userId) {
		let userFeedbackId = userId[1];
		addLink("My Feedback", "https://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback2&ftab=AllFeedback&userid=" + userFeedbackId);
	}

	// Additional nav buttons
	addLink("Leave Feedback", "https://www.ebay.com/fdbk/leave_feedback");
	addLink("Account Settings", "https://my.ebay.com/ws/eBayISAPI.dll?MyEbay&CurrentPage=MyeBayMyAccounts&ssPageName=STRK:ME:MAX");

	// Hide ads
	document.getElementById("gh-p-4").style.display = "none";
	document.getElementById("gh-p-1").style.display = "none";
	document.getElementById("gh-p-3").style.display = "none";

	window.onload = function () {
		// Remove ads
		tryRemove(document.getElementById("gh-ti"));
		tryRemove(document.getElementsByClassName("topRtm")[0]);
		tryRemove(document.getElementsByClassName("hl-leaderboard-ad")[0]);
		tryRemove(document.getElementsByClassName("leaderboard_ad"));
		tryRemove(document.getElementById("myEbayBody"));
		tryRemove(document.getElementsByClassName("vi-lb-placeholder"));
		tryRemove(document.querySelector(".srp-1p__link"));
	};

	// Notify if searching US only
	if (window.location.toString().includes("LH_PrefLoc=1")) {
		addTopBar("Showing items from USA");
	}

	// Notify if searching sold items
	if (window.location.toString().includes("LH_Sold=1")) {
		addTopBar("Showing Sold + Completed Items");
	}
})();