Greasy Fork is available in English.

Ricerca inversa Subito.it

Lo script permette di vedere gli annunci degli utenti da cui si è stati contattati per un proprio annuncio.

// ==UserScript==
// @name     Ricerca inversa Subito.it
// @description  Lo script permette di vedere gli annunci degli utenti da cui si è stati contattati per un proprio annuncio.
// @author       StephenP
// @version  1.1
// @grant    GM.xmlHttpRequest
// @match    https://areariservata.subito.it/messaggi*
// @namespace StephenP
// ==/UserScript==
var tabella;
(function(){
  var header=document.getElementById("desktop_header");
  if(header===null){
    header=document.getElementById("mobile_navigation");
  }
  var myid=header.getAttribute("data-prop-userid");
  var requrl='https://areariservata.subito.it/hades/v1/mcproxy/api/hal/'+myid+'/conversations/?presenceStatus=true';
  
  GM.xmlHttpRequest({
    method: "GET",
    url: requrl,
    onload: function(response) {
			var messagelist=JSON.parse(response.responseText);
      tabella=document.createElement("TABLE");
      for(var i=0;i<messagelist["_embedded"]["conversations"].length;i++){
        tabella.appendChild(document.createElement("TR"));
        tabella.children[i].appendChild(document.createElement("TD"));
        tabella.children[i].children[0].innerHTML='<a href="https://subito.it/annunciutente/'+messagelist["_embedded"]["conversations"][i]["partnerId"]+'.htm">'+messagelist["_embedded"]["conversations"][i]["partnerName"]+'</a>';
        tabella.children[i].appendChild(document.createElement("TD"));
        tabella.children[i].children[1].innerHTML=messagelist["_embedded"]["conversations"][i]["subject"].substr(20);
        tabella.children[i].appendChild(document.createElement("TD"));
        tabella.children[i].children[2].innerHTML=messagelist["_embedded"]["conversations"][i]["lastMessagePreview"];
      }
      var tableButton=document.createElement("button");
      tableButton.setAttribute("id","tableButton");
      tableButton.setAttribute("class","msg-list__edit-bar-primary-button");
      tableButton.innerHTML='Ricerca inversa';
      const targetNode = document.body;
      const config = { attributes: false, childList: true, subtree: true };
      const callback = function(mutationsList, observer) {
        console.log(document.getElementsByClassName("msg-list__edit-bar-primary").length);
        if((document.getElementById("edit-bar")!==null)&&(document.getElementsByClassName("msg-list__edit-bar-primary").length<2)){
          document.getElementsByClassName("msg-list__edit-bar-primary")[0].appendChild(tableButton);
          tableButton.addEventListener("click",function(){addList();});
          observer.disconnect();
          observer.observe(targetNode, config);
        }
      };
      const observer = new MutationObserver(callback);
      observer.observe(targetNode, config);
    }
  });
})();
function addList(){
  if(document.getElementById("contacts-overlay")===null){
    var contatti=document.createElement("DIV");
    contatti.innerHTML='<div id="contacts-overlay" style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px; background-color: rgba(100,100,100,0.5); z-index: 1000;"></div><div id="contacts-links" style="font-size: 1.5em; position: fixed; overflow: scroll; border-radius: 5px; width: 60%; height: 90%; left: 20%; top: 5%; padding: 2em; background-color: white; z-index: 1001;"></div><style>table{width: 100%;} tr:nth-child(even) {background-color: #f2f2f2;}</style>';
    contatti.children[0].addEventListener("click",function(){document.body.removeChild(document.getElementById("contacts-overlay").parentNode);});
    contatti.children[1].appendChild(tabella);
    document.body.appendChild(contatti);
  }
}