1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | // ==UserScript==
// @name Fluther Reply
// @description Add a reply link to each comment
// @namespace http://elliottcable.com/
// @include http://*fluther.com/*
// @exclude # http://*fluther.com/messages_write.gne*
// ==/UserScript==
(function() {
textareas = document.evaluate("//textarea",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
textArray = new Array();
messageIndex = 0;
function tagIt (tagOpen,tagClose,i) {
var v = textArray[i].value;
var selLength = textArray[i].textLength;
var selStart = textArray[i].selectionStart;
var selEnd = textArray[i].selectionEnd;
if (selEnd==1 || selEnd==2) selEnd=selLength;
var start = (v).substring(0,selStart);
var middle = (v).substring(selStart, selEnd)
var end = (v).substring(selEnd, selLength);
textArray[i].value = start + tagOpen + middle + tagClose + end;
textArray[i].selectionStart = textArray[i].value.length;
textArray[i].selectionEnd = textArray[i].value.length;
textArray[i].focus();
}
function usernameItAuto (username, i) {
if (username != null) {
tagIt('<b>ยป <a href="/users/'+ username +'/">'+ username +'</a> -</b> ','', i);
}
}
for (i=0; i<textareas.snapshotLength; i++) {
textArray[i] = textareas.snapshotItem(i);
//GM_log('doc18' + textArray[i].parentNode.innerHTML);
if (textArray[i].name == 'message') {
messageIndex = i;
//GM_log('doc18 > textarea index' + messageIndex);
}
}
comments = document.evaluate("//td[@class='quip']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
for (i=0; i< comments.snapshotLength; i++) {
var who = comments.snapshotItem(i);
var imgSrc = who.getElementsByTagName('img')[0].src;
var bar = who.getElementsByTagName('div')[1];
var bar_span = bar.getElementsByTagName('span')[0];
var name_link = bar_span.getElementsByTagName('a')[0];
if (name_link) {
var username = name_link.textContent;
var nameA = bar_span.appendChild(document.createElement('a'));
nameA.href='javascript:;';
nameA.innerHTML = "reply";
nameA.addEventListener('click',
(function(a,b) { return function(){usernameItAuto(a,b)};})(username,messageIndex),false);
}
}
})() |