ACT.Google.MO.Stay

Stay in web not app, Google Widget and APP Banner Remove.

// ==UserScript==
// @name               ACT.Google.MO.Stay
// @name:zh-CN         ACT.谷歌.MO.Stay
// @description        Stay in web not app, Google Widget and APP Banner Remove.
// @description:zh-CN  留在网络而非应用,移除谷歌微件和APP推广横幅。
// @author             ACTCD
// @version            20220722.1
// @license            GPL-3.0-or-later
// @namespace          ACTCD/Userscripts
// @supportURL         https://github.com/ACTCD/Userscripts#contact
// @homepageURL        https://github.com/ACTCD/Userscripts
// @match              *://*.google.com/*
// @match              *://*.google.com.hk/*
// @grant              none
// @inject-into        content
// @run-at             document-start
// ==/UserScript==

(function () {
	"use strict";

	function cleaner() {
		const careful_remove = (e) =>
			!e ||
			e.className == "main" ||
			e.id == "gb-main" ||
			e.remove() ||
			console.info("REMOVE:", e);
		// Index - Bottom App Banner
		document.querySelectorAll("mobile-promo").forEach((e) => {
			// console.info('GOTCHA:', e); // DEBUG
			careful_remove(e.closest("body>div"));
		});
		document.querySelectorAll("g-raised-button").forEach((e) => {
			if (e.textContent.includes("Try it") || e.textContent.includes("试用")) {
				// console.info('GOTCHA:', e); // DEBUG
				careful_remove(e.closest("body>div[style]"));
			}
		});
		// Search - Bottom Widget Banner
		document.querySelectorAll("button").forEach((e) => {
			if (e.textContent == "Get the app" || e.textContent == "获取该应用") {
				// console.info('GOTCHA:', e); // DEBUG
				careful_remove(e.closest("body>div[id][style]"));
			}
		});
	}

	new MutationObserver(cleaner).observe(document, {
		subtree: true,
		childList: true,
	});

	function DOMContentLoaded() {
		cleaner();
	}

	if (document.readyState === "loading") {
		document.addEventListener("DOMContentLoaded", DOMContentLoaded);
	} else {
		DOMContentLoaded();
	}

	const style = document.createElement("style");
	style.textContent = `/* Global style */
#center_col #taw { display: none !important; } /* AD */
#center_col #tads { display: none !important; } /* AD */
`;

	if (document.head) {
		document.head.append(style);
	} else {
		new MutationObserver((mutationList, observer) => {
			document.head && (observer.disconnect(), document.head.append(style));
		}).observe(document, { subtree: true, childList: true });
	}
})();