LeBonCode

Améliore l'UX sur LebonCoin (affiche les téls, masque les annonces vendus et en cours d'achat)

  1. // ==UserScript==
  2. // @name LeBonCode
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.2
  5. // @description Améliore l'UX sur LebonCoin (affiche les téls, masque les annonces vendus et en cours d'achat)
  6. // @author Yohann Nizon
  7. // @match https://www.leboncoin.fr/*
  8. // @icon https://www.leboncoin.fr/_next/static/media/favicon-16.fe104e12.png
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. let showPhone = true;
  14. let showVendu = true;
  15. let showAchat = true;
  16.  
  17. window.setInterval(function() {
  18. const phoneButtons = document.querySelectorAll('button[title="voir le numéro"]');
  19.  
  20. if (phoneButtons && showPhone) {
  21. const delay = Math.floor(2000 + Math.random() * 1000); // Random delay between 2 et 3 seconds
  22. setTimeout(() => phoneButtons.forEach(button => button.click()), delay);
  23. }
  24.  
  25. let nbRemove = 0;
  26. let mosaic = document.querySelectorAll('div[data-test-id=listing-mosaic]');
  27. if (mosaic.length == 1){
  28. for (const div of mosaic[0].childNodes) {
  29. if (div.innerText.indexOf('Vendu') > -1 && showVendu) {
  30. nbRemove++;
  31. div.style.display = 'none';
  32. }
  33. if (div.innerText.indexOf('Achat en cours') > -1 && showAchat) {
  34. nbRemove++;
  35. div.style.display = 'none';
  36. }
  37. }
  38. } else {
  39. let divs = document.getElementsByTagName('div');
  40. for (let div of divs) {
  41. if (div.className.indexOf('styles_adCard') > -1){
  42. if (div.innerText.indexOf('Vendu') > -1 && showVendu) {
  43. nbRemove++;
  44. div.style.display = 'none';
  45. }
  46. if (div.innerText.indexOf('Achat en cours') > -1 && showAchat) {
  47. nbRemove++;
  48. div.style.display = 'none';
  49. }
  50. }
  51. }
  52. }
  53. console.log(nbRemove + " annonce(s) supprimée(s)");
  54. }, 1000);