NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// @require http://code.jquery.com/jquery-latest.js // ==UserScript== // @name DJIForumImprove // @namespace http://tampermonkey.net/ // @version 0.4 // @description Improve DJI Forum by turning all last-post-date into links plus giving the abilty to highlight any thread // @author M4veric17 // @license GPL-3.0-or-later; http://www.gnu.org/licenses/gpl-3.0.txt // @match https://forum.dji.com/* // @grant none // ==/UserScript== var $ = window.jQuery; $(document).ready(function() { var a,b,spanTxt,len,myRegexp,match,threadID=[],x=false,curTitleb,h_thread_t,curThreadID,res,curCookie; function setCookie(name,value,days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } function eraseCookie(name) { document.cookie = name+'=; Max-Age=-99999999;'; } var arr = document.getElementsByClassName("h_posttime"); var pageURL = window.location.href var postDateClick = function(e) { if (e.ctrlKey) { if (confirm('Are you sure you want to delete all your highlights ?')) { eraseCookie('DJIMarkedTids') window.location.reload(true); } } else { if (pageURL.search("mod=viewthread")!==-1 || pageURL.match(/thread-(\d*)-\d-1\.html/gm)) { var idx=$(arr).index(this) if (idx==0) { h_thread_t = document.getElementsByClassName("thread_subject xst")[0] if (h_thread_t.style.backgroundColor!="lemonchiffon") { h_thread_t.style.backgroundColor="lemonchiffon"; } else { h_thread_t.style.backgroundColor=""; } } } else { h_thread_t = this.parentElement.parentElement.firstElementChild if (h_thread_t.style.backgroundColor!="lemonchiffon") { h_thread_t.style.backgroundColor="lemonchiffon"; } else { h_thread_t.style.backgroundColor=""; } } if (pageURL.search("mod=viewthread")!==-1 || pageURL.match(/thread-(\d*)-\d-1\.html/gm)) { if (idx==0) { curThreadID = pageURL; if (curThreadID.match(/-\d-1\.html/g)) { myRegexp = /thread-(\d*)-\d-1\.html/gm; match = myRegexp.exec(curThreadID); curThreadID = match[1]; } else { myRegexp = /tid=(\d*)\&/gm; match = myRegexp.exec(curThreadID); curThreadID = match[1]; } } } else { curThreadID = h_thread_t.innerHTML; if (curThreadID.match(/-\d-1\.html/gm)) { myRegexp = /thread-(\d*)-\d-1\.html/gm; match = myRegexp.exec(curThreadID); curThreadID = match[1]; } else { myRegexp = /tid=(\d*)\&extra/gm; match = myRegexp.exec(curThreadID); curThreadID = match[1]; } } var curCookie = getCookie('DJIMarkedTids'); if (curCookie) { var res = curCookie.search(curThreadID) if (res == -1){ setCookie('DJIMarkedTids',curCookie + curThreadID + ",",3999); } else { setCookie('DJIMarkedTids',curCookie.replace(curThreadID + ",",""),3999); } } else { setCookie('DJIMarkedTids',curThreadID + ",",3999); } } }; for (var k=0; k<arr.length; k++) { arr[k].addEventListener("click",postDateClick,false); } if (pageURL.search("mod=viewthread")!==-1 || pageURL.search("mod=redirect")!==-1 || pageURL.match(/thread-(\d*)-\d-1\.html/gm)) { curThreadID = pageURL; if (curThreadID.match(/-\d-1\.html/gm)) { myRegexp = /thread-(\d*)-\d-1\.html/gm; match = myRegexp.exec(curThreadID); curThreadID = match[1]; } else { myRegexp = /tid=(\d*)\&/gm; match = myRegexp.exec(curThreadID); curThreadID = match[1]; } curCookie = getCookie('DJIMarkedTids'); if (curCookie) { res= curCookie.search(curThreadID) if (res!==-1){ document.getElementsByClassName("thread_subject xst")[0].style.backgroundColor="lemonchiffon"; } } } a = document.querySelectorAll(".h_thread_v span:nth-of-type(5)"); len = a.length; for (var i=0; i <= len - 1; i++) { spanTxt = a[i].textContent; x = a[i].innerHTML.match('font color="red"'); b = a[i].parentElement.parentElement.firstElementChild.innerHTML; if (b.match(/-\d-1\.html/gm)) { myRegexp = /thread-(\d*)-\d-1\.html/gm; match = myRegexp.exec(b); threadID[i] = match[1]; } else { myRegexp = /tid=(\d*)\&extra/gm; match = myRegexp.exec(b); threadID[i] = match[1]; } curCookie = getCookie('DJIMarkedTids'); if (curCookie) { res= curCookie.search(threadID[i]) if (res!==-1){ a[i].parentElement.parentElement.firstElementChild.style.backgroundColor="lemonchiffon"; } } if (x) { a[i].innerHTML = '<a href="https://forum.dji.com/forum.php?mod=redirect&tid=' + threadID[i]+ '&goto=lastpost#lastpost" style="color:red">' + spanTxt + ' </a>'; } else { a[i].innerHTML = '<a href="https://forum.dji.com/forum.php?mod=redirect&tid=' + threadID[i]+ '&goto=lastpost#lastpost">' + spanTxt + ' </a>'; } } });