Skip to content

Instantly share code, notes, and snippets.

@silvasur
Created March 30, 2015 20:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save silvasur/476624d131f4a6b23108 to your computer and use it in GitHub Desktop.
Save silvasur/476624d131f4a6b23108 to your computer and use it in GitHub Desktop.
Warmmiete in Suche immowelt
// ==UserScript==
// @name Warmmiete in Suche immowelt
// @namespace kch42
// @include http://www.immowelt.de/immobilien/immoliste.aspx*
// @version 1
// @grant none
// ==/UserScript==
function mkinfoelem(label, data) {
var info = document.createElement("div");
info.appendChild(document.createTextNode(data));
var labeldiv = document.createElement("div");
labeldiv.appendChild(document.createTextNode(label));
labeldiv.classList.add("hardfactlabel");
info.appendChild(labeldiv);
info.classList.add("hardfact");
return info;
}
function procres(sr) {
if (sr.classList.contains("warmmiete-adder-processed")) {
return;
}
sr.classList.add("warmmiete-adder-processed");
var href = null;
var links = sr.querySelectorAll("a[href]");
for (var i = 0; i < links.length; i++) {
var _href = links[i].getAttribute("href");
if (_href.match(/\/expose\//)) {
href = _href;
break;
}
}
if (!href) {
return;
}
var req = new XMLHttpRequest();
req.addEventListener("load", function() {
var doc = this.responseXML;
var datarows = doc.querySelectorAll(".datarow");
for (var i = 0; i < datarows.length; i++) {
var label = datarows[i].querySelector(".label").textContent;
var data = datarows[i].querySelector(".data").textContent;
if (
!label.match(/warmmiete|gesamtmiete/i) ||
label.match(/in\s+(warmmiete|gesamtmiete)\s+enthalten/i)
) {
continue;
}
var info = mkinfoelem(label, data);
var firsthardfact = sr.querySelector(".hardfact");
firsthardfact.parentNode.insertBefore(info, firsthardfact);
break;
}
});
req.open("GET", href);
req.responseType = "document";
req.send();
}
var search_results = document.querySelectorAll("div.divObject");
for (var i = 0; i < search_results.length; i++) {
procres(search_results[i]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment