diff options
Diffstat (limited to 'static/js/autorefresh.js')
-rw-r--r-- | static/js/autorefresh.js | 263 |
1 files changed, 209 insertions, 54 deletions
diff --git a/static/js/autorefresh.js b/static/js/autorefresh.js index 3f9dbd4..cec1e33 100644 --- a/static/js/autorefresh.js +++ b/static/js/autorefresh.js @@ -18,15 +18,21 @@ function checkNew(e) { } function loadJSON() { - if (chk.checked) - stopCounter("..."); - if (manual) - document.getElementById("counter").innerText = "..."; + if (chk.checked) stopCounter("..."); + if (manual) document.getElementById("counter").innerText = "..."; var data_file; if (serviceType == 2 || serviceType == 3) { board = document.getElementsByName("board")[0].value; parent = document.getElementsByName("parent")[0].value; - data_file = "/cgi/api/thread?dir=" + board + "&id=" + parent + "&offset=" + thread_length + "&time=" + lastTime; + data_file = + "/cgi/api/thread?dir=" + + board + + "&id=" + + parent + + "&offset=" + + thread_length + + "&time=" + + lastTime; } else { return false; } @@ -38,69 +44,220 @@ function updateThread(posts, total_replies, serverTime) { var thread_div = document.getElementsByClassName("thread")[0]; if (serviceType == 2) var last_elem = document.getElementById("size"); else var last_elem = document.getElementsByClassName("cut")[0]; - for (var i=0; i<posts.length; i++) { + for (var i = 0; i < posts.length; i++) { post = posts[i]; var num = thread_length + i + 1; - var div = document.createElement('div'); + var div = document.createElement("div"); if (serviceType == 2) div.className = "reply"; else div.className = "replycont"; if (post.email) { - if (post.tripcode) s_name = '<a href="mailto:' + post.email + '"><span class="name"><b>' + post.name + '</b> ' + post.tripcode + '</span></a>'; - else s_name = '<a href="mailto:' + post.email + '"><span class="name"><b>' + post.name + '</b></span></a>'; + if (post.tripcode) + s_name = + '<a href="mailto:' + + post.email + + '"><span class="name"><b>' + + post.name + + "</b> " + + post.tripcode + + "</span></a>"; + else + s_name = + '<a href="mailto:' + + post.email + + '"><span class="name"><b>' + + post.name + + "</b></span></a>"; } else { - if (post.tripcode) s_name = '<span class="name"><b>' + post.name + '</b> ' + post.tripcode + '</span>'; - else s_name = '<span class="name"><b>' + post.name + '</b></span>'; + if (post.tripcode) + s_name = + '<span class="name"><b>' + + post.name + + "</b> " + + post.tripcode + + "</span>"; + else s_name = '<span class="name"><b>' + post.name + "</b></span>"; } if (serviceType == 2) { if (post.file) { - s_img = '<a href="/' + board + '/src/' + post.file + '" target="_blank" class="thumb"><img src="/' + board + '/thumb/' + post.thumb + '" width="' + post.thumb_width + '" height="' + post.thumb_height + '" /><br />' + Math.round(post.file_size/1024) + 'KB ' + post.file.substring(post.file.lastIndexOf(".")+1, post.file.length).toUpperCase() + '</a>'; - } else s_img = ''; - if (post.IS_DELETED == 1) div.innerHTML = '<h4 class="deleted">' + num + ' : Mensaje eliminado por el usuario.</h4>'; - else if (post.IS_DELETED == 2) div.innerHTML = '<h4 class="deleted">' + num + ' : Mensaje eliminado por miembro del staff.</h4>'; - else - div.innerHTML = '<h4><a class="num" href="#">' + num + '</a> : ' + s_name + ' : <span class="date" data-unix="' + post.timestamp + '">' + post.timestamp_formatted + '</span> <span class="del"><a href="/cgi/report/' + board + '/' + post.id + '/' + num + '">rep</a> <a href="#">del</a></span></h4>' + s_img + '<div class="msg">' + post.message + '</div>'; + s_img = + '<a href="/' + + board + + "/src/" + + post.file + + '" target="_blank" class="thumb"><img src="/' + + board + + "/thumb/" + + post.thumb + + '" width="' + + post.thumb_width + + '" height="' + + post.thumb_height + + '" /><br />' + + Math.round(post.file_size / 1024) + + "KB " + + post.file + .substring(post.file.lastIndexOf(".") + 1, post.file.length) + .toUpperCase() + + "</a>"; + } else s_img = ""; + if (post.IS_DELETED == 1) + div.innerHTML = + '<h4 class="deleted">' + + num + + " : Mensaje eliminado por el usuario.</h4>"; + else if (post.IS_DELETED == 2) + div.innerHTML = + '<h4 class="deleted">' + + num + + " : Mensaje eliminado por miembro del staff.</h4>"; + else + div.innerHTML = + '<h4><a class="num" href="#">' + + num + + "</a> : " + + s_name + + ' : <span class="date" data-unix="' + + post.timestamp + + '">' + + post.timestamp_formatted + + '</span> <span class="del"><a href="/cgi/report/' + + board + + "/" + + post.id + + "/" + + num + + '">rep</a> <a href="#">del</a></span></h4>' + + s_img + + '<div class="msg">' + + post.message + + "</div>"; } else { if (post.file) { if (post.image_width != 0) { - s_img = '<div class="fs"><a href="/' + board + '/src/' + post.file + '" class="expimg" data-id="' + post.id + '" data-thumb="/' + board + '/thumb/' + post.thumb + '" data-w="' + post.image_width + '" data-h="' + post.image_height + '" data-tw="' + post.thumb_width + '" data-th="' + post.thumb_height + '">' + post.file + '</a>-(' + post.file_size+ ' B, ' + post.image_width + 'x' + post.image_height + ')</div>'; + s_img = + '<div class="fs"><a href="/' + + board + + "/src/" + + post.file + + '" class="expimg" data-id="' + + post.id + + '" data-thumb="/' + + board + + "/thumb/" + + post.thumb + + '" data-w="' + + post.image_width + + '" data-h="' + + post.image_height + + '" data-tw="' + + post.thumb_width + + '" data-th="' + + post.thumb_height + + '">' + + post.file + + "</a>-(" + + post.file_size + + " B, " + + post.image_width + + "x" + + post.image_height + + ")</div>"; } else { - s_img = '<div class="fs"><a href="/' + board + '/src/' + post.file + '" target="_blank">' + post.file + '</a>-(' + post.file_size+ ' B)</div>'; + s_img = + '<div class="fs"><a href="/' + + board + + "/src/" + + post.file + + '" target="_blank">' + + post.file + + "</a>-(" + + post.file_size + + " B)</div>"; } - s_img += '<a target="_blank" href="/' + board + '/src/' + post.file + '" id="thumb' + post.id + '"><img class="thumb" alt="' + post.id + '" src="/' + board + '/thumb/' + post.thumb + '" width="' + post.thumb_width + '" height="' + post.thumb_height + '" /></a>'; - s_msg = '<blockquote style="margin-left:' + (post.thumb_width+40) + 'px;">' + post.message + '</blockquote>'; + s_img += + '<a target="_blank" href="/' + + board + + "/src/" + + post.file + + '" id="thumb' + + post.id + + '"><img class="thumb" alt="' + + post.id + + '" src="/' + + board + + "/thumb/" + + post.thumb + + '" width="' + + post.thumb_width + + '" height="' + + post.thumb_height + + '" /></a>'; + s_msg = + '<blockquote style="margin-left:' + + (post.thumb_width + 40) + + 'px;">' + + post.message + + "</blockquote>"; } else { - s_img = ''; - s_msg = '<blockquote>' + post.message + '</blockquote>'; + s_img = ""; + s_msg = "<blockquote>" + post.message + "</blockquote>"; } if (post.IS_DELETED == 0) { - div.innerHTML = '<table border="0"><tr><td class="ell">…</td><td class="reply" id="reply' + post.id + '"><div class="info"><input type="checkbox" name="delete" value="' + post.id + '" />' + (post.subject ? (' <span class="subj">' + post.subject + '</span>') : '') + ' ' + s_name + ' ' + '<span class="date" data-unix="' + post.timestamp + '">' + post.timestamp_formatted + '</span> <span class="reflink"><a href="#' + post.id + '">No.</a><a href="#" class="postid">' + post.id + '</a></span> <a class="rep" href="/cgi/report/' + board + '/' + post.id + '">rep</a></div>' + s_img + s_msg + '</td></tr></table>'; + div.innerHTML = + '<table border="0"><tr><td class="ell">…</td><td class="reply" id="reply' + + post.id + + '"><div class="info"><input type="checkbox" name="delete" value="' + + post.id + + '" />' + + (post.subject + ? ' <span class="subj">' + post.subject + "</span>" + : "") + + " " + + s_name + + " " + + '<span class="date" data-unix="' + + post.timestamp + + '">' + + post.timestamp_formatted + + '</span> <span class="reflink"><a href="#' + + post.id + + '">No.</a><a href="#" class="postid">' + + post.id + + '</a></span> <a class="rep" href="/cgi/report/' + + board + + "/" + + post.id + + '">rep</a></div>' + + s_img + + s_msg + + "</td></tr></table>"; } } thread_div.insertBefore(div, last_elem); - thread_div.setAttribute("data-length",num); - if (serviceType == 2) document.getElementsByTagName("h3")[0].getElementsByTagName("span")[0].innerText = "("+num+" respuestas)"; + thread_div.setAttribute("data-length", num); + if (serviceType == 2) + document + .getElementsByTagName("h3")[0] + .getElementsByTagName("span")[0].innerText = "(" + num + " respuestas)"; } if (posts.length > 0) { - if (!manual) - refreshMaxTime = 10; + if (!manual) refreshMaxTime = 10; if (!document.hasFocus()) - if (posts.length > 1) notif(thread_title, posts.length + ' nuevos mensajes'); - else notif(thread_title, 'Un nuevo mensaje'); + if (posts.length > 1) + notif(thread_title, posts.length + " nuevos mensajes"); + else notif(thread_title, "Un nuevo mensaje"); } else { - if (refreshMaxTime <= 60) - refreshMaxTime += 5; + if (refreshMaxTime <= 60) refreshMaxTime += 5; } thread_length = parseInt(total_replies) + 1; //document.getElementsByClassName("thread")[0].firstChild.children[0].innerHTML = "("+thread_length+")"; new_unread = thread_length - thread_first_length; - if (new_unread) - document.title = "(" + new_unread + ") " + thread_title; - else - document.title = thread_title; + if (new_unread) document.title = "(" + new_unread + ") " + thread_title; + else document.title = thread_title; } function notif(title, msg) { @@ -115,7 +272,7 @@ function counter() { loadJSON(); } else { refreshTime--; - document.getElementById("counter").innerHTML = (refreshTime + 1); + document.getElementById("counter").innerHTML = refreshTime + 1; } } @@ -123,7 +280,9 @@ function detectService() { if (document.body.classList.contains("threadpage")) { if (!document.getElementById("n")) return; thread_title = document.title; - thread_length = parseInt(document.getElementsByClassName("thread")[0].dataset.length); + thread_length = parseInt( + document.getElementsByClassName("thread")[0].dataset.length + ); thread_first_length = thread_length; replylist = document.getElementsByClassName("reply"); lastr = replylist[replylist.length - 1].textContent; @@ -158,7 +317,9 @@ function detectService() { } else if (document.body.className === "res") { serviceType = 3; thread_title = document.title; - thread_length = parseInt(document.getElementsByClassName("thread")[0].dataset.length); + thread_length = parseInt( + document.getElementsByClassName("thread")[0].dataset.length + ); thread_first_length = thread_length; replylist = document.getElementsByClassName("thread"); replylist += document.getElementsByClassName("reply"); @@ -208,15 +369,13 @@ function stopCounter(str) { function autoRefresh(e) { chk_snd = document.getElementById("autosound"); if (document.getElementById("autorefresh").checked) { - if (chk_snd) - chk_snd.disabled = false; + if (chk_snd) chk_snd.disabled = false; Notification.requestPermission(); lastTime = Math.floor(Date.now() / 1000); refreshTime = refreshMaxTime; startCounter(); } else { - if (chk_snd) - document.getElementById("autosound").disabled = true; + if (chk_snd) document.getElementById("autosound").disabled = true; stopCounter("OFF"); } } @@ -228,15 +387,14 @@ http_request.onreadystatechange = function() { if (serviceType == 2 || serviceType == 3) updateThread(jsonObj.posts, jsonObj.total_replies, jsonObj.time); lastTime = jsonObj.time; - if (chk.checked) - startCounter(); + if (chk.checked) startCounter(); } if (!chk.checked) { document.getElementById("counter").innerText = "OFF"; } manual = 0; } -} +}; document.addEventListener("DOMContentLoaded", function() { if (!detectService()) return; @@ -254,17 +412,14 @@ document.addEventListener("DOMContentLoaded", function() { window.addEventListener("unload", function() { if (!serviceType) return; - + chk = document.getElementById("autorefresh"); chk_snd = document.getElementById("autosound"); - if (chk.checked) - localStorage.setItem("autorefresh", true); - else - localStorage.removeItem("autorefresh"); + if (chk.checked) localStorage.setItem("autorefresh", true); + else localStorage.removeItem("autorefresh"); if (!chk_snd) return; if (!document.getElementById("autosound").checked) localStorage.setItem("mainpage_nosound", true); - else - localStorage.removeItem("mainpage_nosound"); -});
\ No newline at end of file + else localStorage.removeItem("mainpage_nosound"); +}); |