// ==UserScript== // @name Real Estate Blocker // @namespace http://chenglongma.com/ // @version 2025-03-12 // @description Hide the properties you don't like // @author Chenglong Ma // @match https://www.realestate.com.au/* // @icon https://www.google.com/s2/favicons?sz=64&domain=realestate.com.au // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Helper function to get cookie by name function getCookie(name) { let match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); if (match) return match[2]; } // Helper function to set cookie function setCookie(name, value, days) { let expires = ""; if (days) { let date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } // Function to wrap divs in details function wrapDivsInDetails() { // const divs = document.querySelectorAll('div[role="presentation"]'); const divs = document.querySelectorAll('article'); const defTitle = 'Click here to hide this property'; divs.forEach(div => { const parent = div.parentNode; const details = document.createElement('details'); details.open = true; const summary = document.createElement('summary'); summary.innerHTML = '

' + defTitle + '

'; details.appendChild(summary); parent.parentNode.insertBefore(details, parent); details.appendChild(parent); const addressSpan = div.querySelector('h2.residential-card__address-heading > a > span'); console.log("address: ", addressSpan); if (addressSpan) { const address = addressSpan.textContent; const cookieValue = getCookie(address); if (cookieValue === 'closed') { details.open = false; } details.addEventListener('toggle', () => { setCookie(address, details.open ? 'open' : 'closed', 365); const title = details.open ? defTitle : address; summary.innerHTML = '

' + title + '

'; }); } }); } // Run the function after the page loads wrapDivsInDetails(); })();