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); } } })()