NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name RKLinks
// @description Odnośniki na blogu "Powrót Roberta"
// @match https://disqus.com/embed/comments/*
// @version 1.0
// ==/UserScript==
if(window.top == window.self) return;
if(window.location.search.indexOf('powrotroberta.blogspot.com') == -1)return;
var MutationObserver = window.MutationObserver;
var observer = new MutationObserver (update);
var config = {
attributes: true,
characterData: true,
childList: true,
subtree: true,
attributeOldValue: true,
characterDataOldValue: true
};
function inspect(node) {
if (node.nodeType !== 1) return;
if (!node.classList.contains ("post-content"))return;
var body = node.querySelector("div.post-message div");
if (body == null) return;
var regex = /(http:\/\/|https:\/\/|www\(\.\)|www\(\,\))[^ <"]+/g
var changed = false;
var content = body.innerHTML;
content = content.replace(regex, function(url) {
var nurl = url.replace(/\(\.\)/g, ".").replace(/,/g,".");
if (nurl !== url) {
changed = true;
if (!nurl.startsWith("http"))
nurl = "http://" + nurl;
return "<a href = \"" + nurl + "\" target = \"_blank\">" + nurl + "</a>";
}
return url;
});
if (changed) {
body.innerHTML = content;
}
}
function update(records) {
records.forEach(function(mutation) {
if (mutation.type == "childList" && typeof mutation.addedNodes == "object" && mutation.addedNodes.length ) {
for(var i = 0, L = mutation.addedNodes.length; i < L; ++i) {
inspect(mutation.addedNodes[i]);
}
}else if (mutation.type == "attributes") {
inspect(mutation.target);
}
});
}
var init = function() {
var root = document.getElementById('conversation');
if(root) {
observer.observe(root, config);
} else {
setTimeout(init, 100);
}
};
init();