diff --git a/smtpauth.lua b/smtpauth.lua index d77983f..513f3c9 100644 --- a/smtpauth.lua +++ b/smtpauth.lua @@ -9,12 +9,12 @@ assert(Rand.ready()) local DB = require"db" local function sendeml(raw) - --[[local fn = "/tmp/ikibooru" .. DB.b256toreadable(Rand.bytes(16)) .. ".eml" + local fn = "/tmp/ikibooru" .. DB.b256toreadable(Rand.bytes(16)) .. ".eml" local f = io.open(fn, "wb") f:write(raw) f:close() - -- Send e-mail. Yes, this is crude. + -- Send e-mail. Yes, this is crude, but we have one thread. io.popen("{ sendmail -t < " .. fn .. "; rm " .. fn .. "; } &", "r")]] end @@ -22,8 +22,6 @@ return { sendauthinfo = function(user) local url = BigGlobe.cfg.domain .."/verif?q=" .. Escapes.urlescape(DB.userauth(user)) --- print(url) - if BigGlobe.cfg.anarchy == "ANARCHY" then return url else @@ -42,8 +40,6 @@ MIME-Version: 1.0 sendregisterinfo = function(user) local url = BigGlobe.cfg.domain .."/reg?q=" .. Escapes.urlescape(DB.userregcode(user)) - print(url) - if BigGlobe.cfg.anarchy == "ANARCHY" then return url else @@ -53,9 +49,9 @@ Content-Type: text/html; charset=UTF-8 MIME-Version: 1.0 -

You have either registered or been invited to register at %s. Click on the below link to complete your registration.

If you have no idea what this is, consider whether your e-mail account has been compromised.

Complete
]], user.email, BigGlobe.cfg.sitename, BigGlobe.cfg.sitename, url)) +

You have either registered or been invited to register at %s. Click on the below link to complete your registration.

If you had not initiated a registration request, consider whether your e-mail account has been compromised.

Complete
]], user.email, BigGlobe.cfg.sitename, BigGlobe.cfg.sitename, url)) return true end end -} \ No newline at end of file +} diff --git a/static/tagbox.js b/static/tagbox.js index 5b6db09..9339e0f 100644 --- a/static/tagbox.js +++ b/static/tagbox.js @@ -47,25 +47,22 @@ document.querySelector("div.tagbox span").onkeydown = function(ev) { } } else if(ev.keyCode == 40) { ev.preventDefault() - var sel = document.querySelector("div.autocomplete > div.tag.selected") - if(sel) { - sel.classList.toggle("selected") - sel = sel.nextElementSibling - } else { - sel = document.querySelectorAll("div.autocomplete > div.tag")[0] - } - if(sel) sel.classList.toggle("selected") + var alltags = Array.from(document.querySelectorAll("div.autocomplete div.tag")) + var sel = alltags.findIndex(function(x) { return x.classList.contains("selected") }) + if(sel != -1) alltags[sel].classList.toggle("selected") + sel = (sel + 1) % alltags.length + alltags[sel].classList.toggle("selected") } else if(ev.keyCode == 38) { ev.preventDefault() - var sel = document.querySelector("div.autocomplete > div.tag.selected") - if(sel) { - sel.classList.toggle("selected") - sel = sel.previousElementSibling + var alltags = Array.from(document.querySelectorAll("div.autocomplete div.tag")) + var sel = alltags.findIndex(function(x) { return x.classList.contains("selected") }) + if(sel != -1) { + alltags[sel].classList.toggle("selected") + sel = (sel + alltags.length - 1) % alltags.length } else { - var asdf = document.querySelectorAll("div.autocomplete > div.tag") - sel = asdf[asdf.length - 1] + sel = alltags.length - 1 } - if(sel) sel.classList.toggle("selected") + alltags[sel].classList.toggle("selected") } else if(ev.keyCode == 8 && !document.querySelector("div.tagbox span").innerText.length) { ev.preventDefault() @@ -96,7 +93,16 @@ document.querySelector("div.tagbox span").oninput = function(ev) { ac.innerText = "No such tags found" } else { ajax.responseText.split("\n").slice(0, -1).forEach(function(line) { - ac.insertBefore(createtag(line.split(",")[1], line.split(",")[2], line.split(",")[0]), null) + var tag = createtag(line.split(",")[1], line.split(",")[2], line.split(",")[0]) + tag.onclick = function() { + var sel = document.querySelector("div.tag.selected") + if(sel) sel.classList.toggle("selected") + this.classList.toggle("selected") + var span = document.querySelector("div.tagbox span") + span.focus() + span.dispatchEvent(new KeyboardEvent('keydown', {bubbles: true, cancelable: true, keyCode: 13})) + } + ac.insertBefore(tag, null) }) if(UnknownTagsMode) {