diff options
author | Choom | 2023-01-20 00:36:43 -0300 |
---|---|---|
committer | Choom | 2023-01-22 07:57:56 -0300 |
commit | 8e519f17d144165b6de31bf3ebabdab5eb13bf0d (patch) | |
tree | 10b3bd7affd037d198fc6ec54af6862cb0ce85b0 /static/js | |
parent | 649a2e5f4fa0b13a58068772ec72605dba6624d2 (diff) | |
download | weabot-8e519f17d144165b6de31bf3ebabdab5eb13bf0d.tar.gz weabot-8e519f17d144165b6de31bf3ebabdab5eb13bf0d.tar.xz weabot-8e519f17d144165b6de31bf3ebabdab5eb13bf0d.zip |
Config para el usuario
Diffstat (limited to 'static/js')
-rw-r--r-- | static/js/aquiencitas.js | 14 | ||||
-rw-r--r-- | static/js/shobon.js | 84 | ||||
-rw-r--r-- | static/js/userconf.js | 164 | ||||
-rw-r--r-- | static/js/weabot.js | 139 | ||||
-rw-r--r-- | static/js/weabotxt.js | 295 |
5 files changed, 363 insertions, 333 deletions
diff --git a/static/js/aquiencitas.js b/static/js/aquiencitas.js index 93f5323..309df8f 100644 --- a/static/js/aquiencitas.js +++ b/static/js/aquiencitas.js @@ -141,12 +141,12 @@ function remove_quote_preview(e) { if (pst) pst.scrollIntoView(); }*/ function quotePreview() { - if (localStorage.getItem("shobon_on") == "false") { - return; + if (localStorage.hasOwnProperty("weabot")) { + weabot = JSON.parse(localStorage.getItem("weabot")); + var showprev = weabot.qpreview; + var showlink = weabot.backlink; + if (showprev == false && showlink == false) { return; } } - var showprev = localStorage.getItem("shobon_preview"); - var showlink = localStorage.getItem("shobon_backlink"); - if (showprev == "false" && showlink == "false") return; var i, q, replies, quotes; @@ -168,12 +168,12 @@ function quotePreview() { q = quotes[i]; if (q.textContent.length < 3 || !q.textContent.startsWith(">>")) continue; - if (showprev != "false") { + if (showprev != false) { q.addEventListener("mouseover", who_are_you_quoting, false); q.addEventListener("mouseout", remove_quote_preview, false); } - if (showlink != "false") { + if (showlink != false) { fill_links(q); } } diff --git a/static/js/shobon.js b/static/js/shobon.js index 9eccf86..3a790a7 100644 --- a/static/js/shobon.js +++ b/static/js/shobon.js @@ -25,28 +25,6 @@ function shobon() { var newRepliesCounter = 0; - var shobon_time = localStorage.getItem("shobon_time"); - if (shobon_time != "false") { - if (boardName == "world") - week = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; - else if (boardName == "2d") - week = ["日", "月", "火", "水", "木", "金", "土"]; - else week = ["dom", "lun", "mar", "mie", "jue", "vie", "sab"]; - } - - if (where == "threads") { - if (shobon_time != "false") { - var dt = document.getElementsByClassName("date"); - for (var i = 0; i < dt.length; i++) { - dt[i].addEventListener("mouseover", function(e) { - this.title = "Hace " + timeAgo(this.dataset.unix); - }); - dt[i].textContent = localTime(dt[i].dataset.unix); - } - } - return; - } - if (localStorage.getItem("shobon_usefilters") != "false") { loadFilters(); } @@ -77,16 +55,6 @@ function shobon() { var message = reply.getElementsByClassName("msg")[0]; var id = 0; - if (shobon_time != "false") { - var date = reply.getElementsByClassName("date")[0]; - date.addEventListener("mouseover", function(e) { - this.title = "Hace " + timeAgo(this.dataset.unix); - }); - if (date.textContent.includes("ID:")) - id = date.textContent.split(" ")[1]; - date.textContent = localTime(date.dataset.unix, id); - } - if (localStorage.getItem("shobon_newposts") == "true") { var replyId = reply.attributes["data-n"].value; var isNewReply = parseInt(lastSeen) < parseInt(replyId); @@ -185,37 +153,6 @@ function createTh(label, w) { th.width = w; return th; } -function timeAgo(timestamp) { - var time = Math.round(Date.now() / 1000); - var el = time - timestamp; - if (el == 0) return "un instante"; - else if (el == 1) return "un segundo"; - else if (el < 60) return el + " segundos"; - else if (el < 120) return "un minuto"; - else if (el < 3600) return Math.round(el / 60) + " minutos"; - else if (el < 7200) return "una hora"; - else if (el < 86400) return Math.round(el / 3600) + " horas"; - else if (el < 172800) return "un día"; - else if (el < 2628000) return Math.round(el / 86400) + " días"; - else if (el < 5256000) return "un mes"; - else if (el < 31536000) return Math.round(el / 2628000) + " meses"; - else if (el > 31535999) return "más de un año"; -} - -function localTime(timestamp, id) { - id = id || 0; - var lcl = new Date(timestamp * 1000); - lcl = - ("0" + lcl.getDate()).slice(-2) + "/" + - ("0" + (lcl.getMonth() + 1)).slice(-2) + - "/" + lcl.getFullYear().toString().slice(-2) + - "(" + week[lcl.getDay()] + ")" + - ("0" + lcl.getHours()).slice(-2) + ":" + - ("0" + lcl.getMinutes()).slice(-2) + ":" + - ("0" + lcl.getSeconds()).slice(-2); - if (id) lcl = lcl + " " + id; - return lcl; -} function loadFilters() { var filters = JSON.parse(localStorage.getItem("shobon_filters")); @@ -315,7 +252,6 @@ function shobonSettings(e) { p.appendChild(createCheckbox("shobon_ids", "Colorear IDs", false)); p.appendChild(createCheckbox("shobon_embedimg", "Insertar imágenes miniatura", false)); p.appendChild(createCheckbox("shobon_newposts", "Destacar mensajes nuevos", false)); - p.appendChild(createCheckbox("shobon_time", "Convertir fechas a hora local", true)); p.appendChild(createCheckbox("shobon_backlink", "Mostrar quién ha citado un post", true)); p.appendChild(createCheckbox("shobon_preview", "Previsualizar citas", true)); p.appendChild(createCheckbox("shobon_usefilters", "Activar filtros", false)); @@ -443,26 +379,6 @@ function paintIds(reply) { ";padding:0 3px;border-radius:5px; font-size:0.9em;vertical-align:top;'>ID:" + userId + "</span>"; - dateId.getElementsByClassName("uid")[0].addEventListener("click", markId, false); - } -} - -function markId(e) { - var uid = this.textContent.slice(0, -1).replace(":", "_"); - var sel = document.getElementsByClassName("sel"); - var len = sel.length; - for (i = 0; i < len; i++) { - var prev = String(sel[0].className); - sel[0].className = sel[0].className.toString().replace(/ sel/i, ""); - } - if (currentSel == uid) { - currentSel = null; - return; - } - currentSel = uid; - var tosel = document.getElementsByClassName(uid); - for (j = 0; j < tosel.length; j++) { - tosel[j].className = tosel[j].className + " sel"; } } diff --git a/static/js/userconf.js b/static/js/userconf.js index 985090a..0118e88 100644 --- a/static/js/userconf.js +++ b/static/js/userconf.js @@ -7,25 +7,25 @@ function cargarEstilos() { } function listarEstilos(id, estilos, def) { - var select = document.getElementById(id); - - for (var i=0; i < estilos.length; i++) { - var opt = document.createElement('option'); - opt.value = estilos[i]; - opt.textContent = estilos[i]; - if (i == def) { - opt.selected = true; - } - select.appendChild(opt); - } + var select = document.getElementById(id); + + for (var i=0; i < estilos.length; i++) { + var opt = document.createElement('option'); + opt.value = estilos[i]; + opt.textContent = estilos[i]; + if (i == def) { + opt.selected = true; + } + select.appendChild(opt); + } } request.onreadystatechange = function() { if (request.readyState == 4) { var json = JSON.parse(request.responseText); if (json.state == "success") { - listarEstilos('stylebbs', json.bbs_styles, json.bbs_styles_default); - listarEstilos('styleib', json.ib_styles, json.ib_styles_default); + listarEstilos('stylebbs', json.bbs_styles, json.bbs_styles_default); + listarEstilos('styleib', json.ib_styles, json.ib_styles_default); } } }; @@ -37,11 +37,11 @@ function cambiarModo(e) { if (this.dataset.view == '1') { iframe.addEventListener('load', mostrarEstilo); iframe.src = '/static/example/bbs2.html'; - this.value = 'Ver modo frontal'; + this.value = 'Previsualizar board'; this.dataset.view = '2'; } else { iframe.src = '/static/example/bbs1.html'; - this.value = 'Ver modo respuesta'; + this.value = 'Previsualizar respuesta'; this.dataset.view = '1'; } } @@ -64,6 +64,10 @@ function mostrarEstilo(e) { } css.href = loc + estilo.toLowerCase() + ".css"; + + var key = 'weabot_style_' + tipo; + var estilo = document.getElementById(('style'+tipo)).value; + localStorage.setItem(key, estilo); } function cargariframe(tipo) { @@ -73,7 +77,6 @@ function cargariframe(tipo) { iframe.addEventListener('load', cargarDatos); iframe.src = '/static/example/' + tipo + '1.html'; var div = document.getElementById("desc" + tipo); - div.appendChild(document.createElement("br")); div.appendChild(iframe); } @@ -89,26 +92,135 @@ function cargarDatos(e) { this.removeEventListener('load', cargarDatos); } -function establecerEstilo(e) { - var key = e.target.dataset.key; -} - function init(tipo) { cargariframe(tipo); document.getElementById('style'+tipo).addEventListener('change', mostrarEstilo); - document.getElementById('set'+tipo).addEventListener('click', function() { - var key = 'weabot_style_' + tipo; - var estilo = document.getElementById(('style'+tipo)).value; - localStorage.setItem(key, estilo); - }); +} + +function checkboxes() { + var chk = document.getElementsByClassName("weabot-obj"); + for (var i=0; i < chk.length; i++) { + chk[i].addEventListener("change", saveInput); + } +} + +function saveInput(e) { + var key = e.target.id; + weabot[key] = e.target.checked; + localStorage.setItem("weabot", JSON.stringify(weabot)); +} + +function setInputs() { + for (key in weabot) { + var chk = document.getElementById(key); + if (chk) { + document.getElementById(key).checked = weabot[key]; + } + } +} + +function cargarFiltros() { + var del = document.getElementsByClassName("f-remove"); + for (var i=0; i < del.length; i++) { + del[i].addEventListener('click', quitarFiltro); + } + + if (localStorage.hasOwnProperty("weabot-filtros")) { + var lista = document.getElementById("filterlist"); + var filtros = JSON.parse(localStorage.getItem("weabot-filtros")); + + for (var i=0; i < filtros.length; i++) { + nuevoFiltro(filtros[i].usar, filtros[i].patron, filtros[i].tipo); + } + } else { + nuevoFiltro(); + } + + document.getElementById('newfilter').addEventListener('click', function(){ nuevoFiltro(); }); + document.getElementById('savefilters').addEventListener('click', guardarFiltros); +} + +function nuevoFiltro(usar, patron, tipo) { + if (arguments.length == 0) { + var usar = true; + var patron = ''; + var tipo = 0; + } else { + tipo = parseInt(tipo); + } + + var lista = document.getElementById("filterlist"); + var fila = document.createElement("tr"); + var selected = ['', '', '', '']; + selected[tipo] = ' selected="selected"'; + var html = '<td><input type="checkbox" name="f-enabled"' + + (usar ? ' checked="checked"></td>' : '></td>'); + html += '<td><input type="text" name="f-pattern" value="' + patron + '"></td>'; + html += '<td><select class="f-type">' + + '<option value="0"' + selected[0] + '>Mensaje</option>' + + '<option value="1"' + selected[1] + '>ID</option>' + + '<option value="2"' + selected[2] + '>Tripcode</option>' + + '<option value="3"' + selected[3] + '>Nombre</option>' + + '</select></td>'; + html += '<td><input type="button" name="f-remove" class="f-remove" value="x"></td>'; + fila.innerHTML = html; + fila.children[3].firstChild.addEventListener('click', quitarFiltro); + lista.appendChild(fila); +} + +function quitarFiltro(e) { + var lista = document.getElementById("filterlist"); + var delme = e.target.parentElement.parentElement; + if (lista.children.length == 1) { + nuevoFiltro(); + } + delme.parentNode.removeChild(delme); +} + +function guardarFiltros() { + var f; + var filtros = []; + var tr = document.getElementById("filterlist").getElementsByTagName("tr"); + + for (var i=0; i < tr.length; i++) { + var pat = tr[i].children[1].firstChild.value.trim(); + if (pat != '') { + f = { + usar: tr[i].children[0].firstChild.checked, + patron: pat, + tipo: parseInt(tr[i].children[2].firstChild.value) + } + filtros.push(f); + } + } + + if (filtros.length > 0) { + localStorage.setItem("weabot-filtros", JSON.stringify(filtros)); + } else { + localStorage.removeItem("weabot-filtros"); + } } document.addEventListener("DOMContentLoaded", function() { - document.getElementById("escondeme").style.display = 'none'; + if (localStorage.hasOwnProperty("weabot")) { + weabot = JSON.parse(localStorage.getItem("weabot")); + } else { + weabot = { + localtime: false, + qpreview: true, + backlink: true, + filters: false + }; + localStorage.setItem("weabot", JSON.stringify(weabot)); + } + setInputs(); cargarEstilos(); + checkboxes(); + cargarFiltros(); document.getElementById('switchview').addEventListener('click', cambiarModo); + init('bbs'); init('ib'); }); diff --git a/static/js/weabot.js b/static/js/weabot.js index 693d138..afe65c8 100644 --- a/static/js/weabot.js +++ b/static/js/weabot.js @@ -1,30 +1,11 @@ var style_cookie = "weabot_style_ib"; if (localStorage.hasOwnProperty(style_cookie)) { - setTheme(localStorage.getItem(style_cookie)); -} - -function setTheme(styletitle) { var css = document.getElementById("css"); if (css) { - css.href = "/static/css/" + styletitle.toLowerCase() + ".css"; - localStorage.setItem(style_cookie, styletitle); + css.href = "/static/css/" + localStorage.getItem(style_cookie).toLowerCase() + ".css"; } } -/* IE/Opera fix, because they need to go learn a book on how to use indexOf with arrays */ -if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function(elt /*, from*/) { - var len = this.length; - var from = Number(arguments[1]) || 0; - from = from < 0 ? Math.ceil(from) : Math.floor(from); - if (from < 0) from += len; - for (; from < len; from++) { - if (from in this && this[from] === elt) return from; - } - return -1; - }; -} - function postClick(num) { var sel = window.getSelection().toString(); if (sel) sel = sel.replace(/^/gm, ">") + "\n"; @@ -204,16 +185,6 @@ function getPassword() { return pass; } -function catSearch() { - var filter = this.value.toLowerCase(); - var nodes = document.getElementsByTagName("p"); - for (var i = 0; i < nodes.length; i++) { - if (nodes[i].innerText.toLowerCase().includes(filter)) - nodes[i].parentNode.removeAttribute("style"); - else nodes[i].parentNode.style.display = "none"; - } -} - function togglePost(e) { if (e.tagName == "DIV") { var post = e.parentElement; @@ -223,24 +194,32 @@ function togglePost(e) { var pid = post.id.slice(1); var typ = post.id.charAt(0); - var itm = "hid-" + typ + "-" + document.body.dataset.brd; + var itm = "hid-" + typ + "-" + board; var hidp = localStorage.getItem(itm); var hid = Array(); - if (hidp) hid = hidp.split("!"); + if (hidp) { hid = hidp.split("!"); } if (post.classList.contains("hidden")) { - if (hid.includes(pid)) hid.splice(hid.indexOf(pid), 1); + if (hid.includes(pid)) { + hid.splice(hid.indexOf(pid), 1); + } } else { - if (!hid.includes(pid)) hid.push(pid); + if (!hid.includes(pid)) { + hid.push(pid); + } } post.classList.toggle("hidden"); localStorage.setItem(itm, hid.join("!")); } +function checkHidden() { + +} + document.addEventListener("DOMContentLoaded", function(e) { - var board = document.body.dataset.brd; + board = document.body.dataset.brd; checkhighlight(); if (localStorage.hasOwnProperty("weabot")) { @@ -249,15 +228,10 @@ document.addEventListener("DOMContentLoaded", function(e) { weabot = { name: null, email: null, password: null }; } - var head = document.getElementById("main_nav"); - var a = head.getElementsByTagName("a"); - for (var i = 0; i < a.length; i++) { - if (a[i].getAttribute("href") == "/" + board + "/") { - a[i].className = "cur_brd"; - break; - } - } + var blink = document.getElementById("b-" + board); + if (blink) { blink.className = "cur_brd"; } + var head = document.getElementById("main_nav"); if (document.body.clientWidth < 600) { var navlink = head.getElementsByTagName("a"); @@ -296,17 +270,11 @@ document.addEventListener("DOMContentLoaded", function(e) { var hid = hidp.split("!"); for (var j = 0; j < hid.length; j++) { var post = document.getElementById(type+hid[j]); - if (post) post.classList.add("hidden"); + if (post) { post.classList.add("hidden"); } } } } - var styleSelect = document.getElementById("styles"); - if (styleSelect) { - styleSelect.addEventListener("change", function(e) { setTheme(this.value); }); - styleSelect.value = localStorage.getItem(style_cookie); - } - if (document.getElementById("postform")) { setInputs("postform"); postform.file.addEventListener("change", filePreview); @@ -317,7 +285,7 @@ document.addEventListener("DOMContentLoaded", function(e) { var cat = document.getElementById("catalog"); if (cat) { - if (j>0) { + if (j > 0) { // hidden threads number document.getElementById("hid-label").removeAttribute("style"); document.getElementById("hid-num").innerText = j; } @@ -338,40 +306,49 @@ document.addEventListener("DOMContentLoaded", function(e) { this.innerText = (this.innerText == "Pequeño") ? "Grande" : "Pequeño"; }); - document.getElementById("cat-srch").addEventListener("keyup", catSearch); - document.getElementById("hid-num").addEventListener("click", function(e) { e.preventDefault(); cat.classList.toggle("showhid"); }); - } else { - window.addEventListener("hashchange", checkhighlight); - } + } + + window.addEventListener("hashchange", checkhighlight); }); -document.addEventListener("click", function(e) { - var cn = e.target.className; - if (cn == "num") { - e.preventDefault(); - postClick(e.target.textContent); - return; - } - if (cn == "expimg") { - e.preventDefault(); - expandimg(e.target); - return; - } - if (cn == "tt") { - e.preventDefault(); - togglePost(e.target); - return; - } -}, false); -document.addEventListener("dblclick", function(e) { - if (e.target.closest(".info")) { - e.preventDefault(); - togglePost(e.target.closest(".info")); - return; - } -}, false); + +window.addEventListener("load", function() { + document.addEventListener("click", function(e) { + var cn = e.target.className; + if (cn == "num") { + e.preventDefault(); + postClick(e.target.textContent); + return; + } + if (cn == "expimg") { + e.preventDefault(); + expandimg(e.target); + return; + } + if (cn == "tt") { + e.preventDefault(); + togglePost(e.target); + return; + } + }, false); + + document.addEventListener("dblclick", function(e) { + if (e.target.closest(".info")) { + e.preventDefault(); + togglePost(e.target.closest(".info")); + return; + } + if (document.getElementById("catalog")) { + if (e.target.className == 'subj') { + e.preventDefault(); + togglePost(e.target.className == 'subj'); + return; + } + } + }, false); +}); diff --git a/static/js/weabotxt.js b/static/js/weabotxt.js index 27d3cda..273856d 100644 --- a/static/js/weabotxt.js +++ b/static/js/weabotxt.js @@ -1,12 +1,9 @@ var style_cookie = "weabot_style_bbs"; if (localStorage.hasOwnProperty(style_cookie)) { - setTheme(localStorage.getItem(style_cookie)); -} - -function setTheme(styletitle) { var css = document.getElementById("css"); - if (css) css.href = "/static/css/txt/" + styletitle.toLowerCase() + ".css"; - localStorage.setItem(style_cookie, styletitle); + if (css) { + css.href = "/static/css/txt/" + localStorage.getItem(style_cookie).toLowerCase() + ".css"; + } } function getPassword() { @@ -27,14 +24,14 @@ function saveInputs(e) { var e = e || window.event; var form = e.target || e.srcElement; - if (typeof form.fielda !== "undefined") weabot.name = form.fielda.value; - if (typeof form.fieldb !== "undefined") weabot.email = form.fieldb.value; + if (typeof form.fielda !== "undefined") { weabot.name = form.fielda.value; } + if (typeof form.fieldb !== "undefined") { weabot.email = form.fieldb.value; } localStorage.setItem("weabot", JSON.stringify(weabot)); } -function setInputs(id) { - with (document.getElementById(id)) { +function setInputs(form) { + with (form) { if (typeof fielda !== "undefined" && weabot.name) { fielda.value = weabot.name; } @@ -45,12 +42,9 @@ function setInputs(id) { password.value = getPassword(); } if (typeof preview !== "undefined") { - preview.dataset.formid = id; + preview.dataset.formid = form.id; preview.addEventListener("click", previewPost); } - if (typeof message !== "undefined" && document.body.clientWidth < 600) { - message.addEventListener("input", resizeTextbox); - } addEventListener("submit", saveInputs); } } @@ -74,17 +68,6 @@ function insert(text) { return false; } -function deletePost(e) { - var ids = e.parentElement.firstChild.href.split("/"); - var post = ids.pop(); - var realid = ids.pop(); - if (confirm("¿Seguro que deseas borrar el mensaje " + post + "?")) { - var script = "/cgi/delete"; - document.location = script + "?board=" + board + "&password=" + - weabot.password + "&delete=" + realid; - } -} - function postClick(num) { var sel = window.getSelection().toString(); if (sel) { @@ -94,17 +77,27 @@ function postClick(num) { insert(">>" + num + sel); } +function deletePost(e) { + var ids = e.parentElement.firstChild.getAttribute("href").split("/"); + var post = ids.pop(); + var realid = ids.pop(); + if (confirm("¿Seguro que deseas borrar el mensaje " + post + "?")) { + var script = "/cgi/delete"; + document.location = script + "?board=" + board + + "&password=" + weabot.password + "&delete=" + realid; + } +} + function previewPost(e) { var form = document.getElementById(e.target.dataset.formid); + if (form.message.value.trim() == '') { + return; + } // empty post, nevermind var thread = e.target.dataset.formid.split('postform')[1]; var board = form.board.value; var preview = document.getElementById('preview' + thread); if (e.target.className == '') { // show preview - if (form.message.value.trim() == '') { - return; - } // empty post, nevermind - e.target.className = 'active'; preview.textContent = 'Cargando...'; @@ -157,36 +150,47 @@ function get_xmlhttp() { return xmlhttp; } -function listSort(e) { - e.preventDefault(); - var s = this.textContent; - var table = document.getElementById("threads"); - var arr = Array.prototype.slice.call(table.getElementsByTagName("tr")); - arr.shift(); - if (s == "Normal") { - arr.sort(function(a, b) { - return (parseInt(a.childNodes[1].textContent) - parseInt(b.childNodes[1].textContent)); - }); - } else if (s == "Edad") { - arr.sort(function(a, b) { - return (b.children[1].firstChild.href.split("/")[5] - a.children[1].firstChild.href.split("/")[5]); - }); - } else if (s == "Largo") { - arr.sort(function(a, b) { - return (b.children[2].textContent - a.children[2].textContent); - }); - } else if (s == "Rapidez") { - var now = Math.round(Date.now() / 1000); - arr.sort(function(a, b) { - return (b.children[2].textContent / (now - b.children[1].firstChild.href.split("/")[5]) - - a.children[2].textContent / (now - a.children[1].firstChild.href.split("/")[5])); - }); - } else if (s == "Aleatorio") { - arr.sort(function(a, b) { - return 0.5 - Math.random(); - }); +function listPrepare() { + function listSort(e) { + e.preventDefault(); + var sort = e.target.textContent; + var table = document.getElementById("threads"); + var arr = Array.prototype.slice.call(table.getElementsByTagName("tr")); + arr.shift(); + if (sort == "Normal") { + arr.sort(function(a, b) { + return (parseInt(a.childNodes[1].textContent) - parseInt(b.childNodes[1].textContent)); + }); + } else if (sort == "Edad") { + arr.sort(function(a, b) { + return (b.children[1].firstChild.getAttribute("href").split("/")[5] + - a.children[1].firstChild.getAttribute("href").split("/")[5]); + }); + } else if (sort == "Largo") { + arr.sort(function(a, b) { + return (b.children[2].textContent - a.children[2].textContent); + }); + } else if (sort == "Rapidez") { + var now = Math.round(Date.now() / 1000); + arr.sort(function(a, b) { + return (b.children[2].textContent + / (now - b.children[1].firstChild.getAttribute("href").split("/")[5]) + - a.children[2].textContent / (now - a.children[1].firstChild.getAttribute("href").split("/")[5])); + }); + } else if (sort == "Aleatorio") { + arr.sort(function(a, b) { + return 0.5 - Math.random(); + }); + } + for (var j = 0; j < arr.length; j++) { + table.appendChild(arr[j]); + } + } + + var srt = document.getElementById("listmenu").children; + for (var i = 0; i < srt.length; i++) { + srt[i].addEventListener("click", listSort); } - for (var j = 0; j < arr.length; j++) table.appendChild(arr[j]); } function checkHidden() { @@ -195,7 +199,9 @@ function checkHidden() { var hid = hidp.split("!"); for (var i = 0; i < hid.length; i++) { var post = document.getElementById("p"+hid[i]); - if (post) post.classList.add("hidden"); + if (post) { + post.classList.add("hidden"); + } } } } @@ -206,7 +212,7 @@ function togglePost(e) { var hidp = localStorage.getItem("hid-p-"+board); var hid = Array(); - if (hidp) hid = hidp.split("!"); + if (hidp) { hid = hidp.split("!"); } if (post.classList.contains("hidden")) { post.classList.remove("hidden"); @@ -219,115 +225,134 @@ function togglePost(e) { localStorage.setItem("hid-p-"+board, hid.join("!")); } -function resizeTextbox(e) { - var limit = 256; - e.target.style.height = ''; - e.target.style.height = Math.min((e.target.scrollHeight+2), limit) + 'px'; +function smallsjis() { + var rx = /( \| /|\ |/ | ̄ ̄|| | ||\| | \|)/; + var msg = document.getElementsByClassName("msg"); + for (var i=0; i < msg.length; i++) { + if (msg[i].textContent.match(rx)) { + msg[i].classList.add("sjis-mob"); + } + } +} + +function setLocalTime() { + if (weabot.localtime != true) { + return; + } + week = ["dom", "lun", "mar", "mie", "jue", "vie", "sab"]; + var dt = document.getElementsByClassName("date"); + for (var i = 0; i < dt.length; i++) { + dt[i].textContent = localTime(dt[i].dataset.unix); + } +} + +function localTime(timestamp) { + var newdate = new Date(timestamp * 1000); + newdate = + ("0" + newdate.getDate()).slice(-2) + "/" + + ("0" + (newdate.getMonth() + 1)).slice(-2) + + "/" + newdate.getFullYear().toString().slice(-2) + + "(" + week[newdate.getDay()] + ")" + + ("0" + newdate.getHours()).slice(-2) + ":" + + ("0" + newdate.getMinutes()).slice(-2) + ":" + + ("0" + newdate.getSeconds()).slice(-2); + return newdate; +} + +function parsePosts() { + } document.addEventListener("DOMContentLoaded", function() { + board = document.body.dataset.brd; + if (localStorage.hasOwnProperty("weabot")) { weabot = JSON.parse(localStorage.getItem("weabot")); } else { - weabot = { name: null, email: null, password: null }; + weabot = { name: null, + email: null, + password: null, + localtime: false, + qpreview: true, + backlink: true, + filters: false + }; } - - board = document.body.dataset.brd; var head = document.getElementById("main_nav"); if (head) { - var b = head.getElementsByTagName("a"); - for (var i = 0; i < b.length; i++) { - if (b[i].getAttribute("href") == "/" + board + "/") { - b[i].className = "cur_brd"; - break; - } - } + document.getElementById("b-" + board).className = 'cur_brd'; } - if (document.body.clientWidth < 600) { + clientw = document.body.clientWidth; + if (clientw < 800) { if (head) { - var navlink = head.getElementsByTagName("a"); - + var navlink = head.children; + var sel = document.createElement("select"); sel.id = head.id + "_sel"; sel.addEventListener("change", function(e){ - window.location.href = this.value; + window.location.href = e.target.value; }); - - for (var i=1; i<navlink.length; i++) { - var c = document.createElement("option"); + + for (var i=1; i < navlink.length; i++) { + var c = document.createElement("option"); c.text = navlink[i].textContent; - c.value = navlink[i].href; - if (navlink[i].className == "cur_brd") { - c.selected = true; - } + c.value = navlink[i].getAttribute("href"); sel.options.add(c); } - - head.textContent = "" - var home = document.createElement("a"); - home.text = "Bienvenido a Internet"; - home.href = "/home.html"; + sel.value = "/"+board+"/"; + + var home = navlink[0]; + head.textContent = ""; head.appendChild(home); head.appendChild(document.createTextNode(" ★ ")); head.appendChild(sel); - head.className = "mob"; document.body.style.marginTop = "2em"; } - - var sjis = /( \| /|\ |/ | ̄ ̄|| | ||\| | \|)/; - var msg = document.getElementsByClassName("msg"); - for (var i=0; i < msg.length; i++) { - if (msg[i].textContent.match(sjis)) { - msg[i].classList.add("sjis-mob"); - } - } } + if (clientw < 600) { + smallsjis(); + } +}); +window.addEventListener("load", function() { var forms = document.getElementsByTagName("form"); for (var i = 0; i < forms.length; i++) { if (forms[i].id.startsWith("postform")) { - setInputs(forms[i].id); + setInputs(forms[i]); } } - - var styleSelect = document.getElementById("styles"); - if (styleSelect) { - styleSelect.addEventListener("change", function(e) { setTheme(this.value); }); - styleSelect.value = localStorage.getItem(style_cookie); - } - + + checkHidden(); + setLocalTime(); + //parsePosts(); + if (document.getElementById("threads")) { - var srt = document.getElementsByClassName("l_s"); - for (var i = 0; i < srt.length; i++) { - srt[i].addEventListener("click", listSort); - } + listPrepare(); } - checkHidden(); + document.addEventListener("click", function(e) { + var txt = e.target.textContent; + /*if (e.target.className == "num") { + e.preventDefault(); + postClick(txt); + return; + }*/ + if (txt == "del") { + e.preventDefault(); + deletePost(e.target); + return; + } + }, false); + + document.addEventListener("dblclick", function(e) { + if (e.target.closest("h4")) { + e.preventDefault(); + togglePost(e.target.closest("h4")); + window.getSelection().removeAllRanges(); + return; + } + }, false); }); - -document.addEventListener("click", function(e) { - var txt = e.target.textContent; - /*if (e.target.className == "num") { - e.preventDefault(); - postClick(txt); - return; - }*/ - if (txt == "del") { - e.preventDefault(); - deletePost(e.target); - return; - } -}, false); - -document.addEventListener("dblclick", function(e) { - if (e.target.closest("h4")) { - e.preventDefault(); - togglePost(e.target.closest("h4")); - window.getSelection().removeAllRanges(); - return; - } -}, false); |