Subito.it Tools

Rimuove i banner pubblicitari e i prodotti venduti dalla ricerca

// ==UserScript==
// @name         Subito.it Tools
// @namespace    https://gist.github.com/nicola02nb
// @version      0.11
// @description  Rimuove i banner pubblicitari e i prodotti venduti dalla ricerca
// @author       nicola02nb (https://gist.github.com/nicola02nb)
// @match        https://www.subito.it/annunci-*/vendita/*
// @match        https://www.subito.it/*/*.htm
// @icon         https://www.google.com/s2/favicons?sz=64&domain=subito.it
// @grant        none
// @run-at       document-start
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js
// ==/UserScript==
var $ = window.jQuery;//Dipendenza

var btn;
var btnAriaStatus=false;
var hiddenList=new Array();

//Funzione che rimuove tutti i prodotti venduti
function toggleHideSold(){
    var hide=btnAriaStatus;
    if(hide){
        var list=$(".item-sold-badge");
        hiddenList=new Array();
        list.each(function() {
            var item=$( this ).parents(".item-card");
            item.hide();
            hiddenList.push(item);
        });
    }
    else{
        hiddenList.forEach((item) => item.show());
    }
}

//Funzione che elimina tutti i banner pubblicitari durante la ricerca
function deleteAds(){
    document.querySelectorAll('div[id^="ad_wrapper_"], iframe[id^="google_ads_iframe_"], div[class^="AdsGAMP"], div[id="apn_skin_tag"], button[class^="banner-module_sticky-banner__"], div[id^="desktop-after-listing-lp-market"]').forEach(div => {
        div.remove();
    });
}

//Funzione eliminare elementi dalla apgina
function deleteStuff(){
    toggleHideSold();
    deleteAds();
}

//Aggiorna lo stile del bottone per nascondere i prodotti venduti
function updateButton(){
    if(btnAriaStatus){
        btn.attr("aria-checked","false");
        btn.attr("data-state","unchecked");
        btn.html('<span class="pointer-events-none absolute inset-none flex items-center transition-all duration-200 ease-in-out translate-x-none"><span data-state="unchecked" class="absolute left-none top-none flex items-center justify-center bg-surface rounded-full ring-0 transition-all duration-200 ease-in-out h-sz-24 w-sz-24 translate-x-none text-on-surface/dim-4"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" data-title="Close" fill="currentColor" stroke="none" class="transition-opacity duration-200 h-sz-12 w-sz-12"><path fill-rule="evenodd" d="m21.6,19.67l-7.68-7.68,7.57-7.59c.53-.53.53-1.4,0-1.93-.53-.53-1.4-.53-1.93,0l-7.57,7.58L4.33,2.4c-.53-.53-1.4-.53-1.93,0-.53.53-.53,1.4,0,1.93l7.66,7.66-7.66,7.65c-.53.53-.53,1.4,0,1.93.53.53,1.4.53,1.93,0l7.66-7.66,7.68,7.68c.53.53,1.4.53,1.93,0,.53-.53.53-1.4,0-1.93h0Z"></path></svg></span></span>');
    }
    else{
        btn.attr("aria-checked","true");
        btn.attr("data-state","checked");
        btn.html('<span class="pointer-events-none absolute inset-none flex items-center transition-all duration-200 ease-in-out translate-x-full"><span data-state="checked" class="absolute left-none top-none flex items-center justify-center bg-surface rounded-full ring-0 transition-all duration-200 ease-in-out h-sz-24 w-sz-24 -translate-x-full"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" data-title="Check" fill="currentColor" stroke="none" class="transition-opacity duration-200 h-sz-12 w-sz-12"><path d="m8.92,19.08c-.18,0-.36-.03-.53-.1s-.33-.17-.47-.31l-5.49-5.34c-.28-.28-.42-.61-.42-1s.14-.73.42-1c.28-.28.62-.41,1.02-.41s.74.14,1.05.41l4.43,4.3,10.62-10.29c.28-.28.62-.42,1.02-.43.39,0,.73.13,1.02.43.28.28.42.61.42,1s-.14.73-.42,1l-11.65,11.32c-.14.14-.3.24-.47.31-.17.07-.35.1-.53.1Z"></path></svg></span></span>');
    }
    btnAriaStatus=btn.attr("aria-checked")=="true";
}

//Funzione che crea un interruttore per abilitare/disabilitare la visione di prodotti venduti
function initializeButton(){
    var old_section=$("#filters-container:nth-child(1)");

    var section=old_section.clone();
    section.find("h5").text("Plugin Filters");
    section.find("p").text("Custom Filters");
    section.find("label").text("Nascondi venduti").attr("id","radx-99").attr("for","/isSold");

    btn=section.find("button");
    btn.attr("id","/isSold").attr("aria-labelledby","radx-99");
    btn.on("click",updateButton);
    updateButton();

    var i=0;
    section.find(".index-module_container__JaNg0").each(function(){
        if(i>0)$( this ).remove();
        i+=1;
    });
    old_section.before(section);
}

//Inizializzatione del bottone e Interval al termine del caricamento della pagina
window.onload = () =>{
    initializeButton();
    setInterval(deleteStuff,1000);
}