diff options
Diffstat (limited to 'htdocs/public/metranslator')
-rw-r--r-- | htdocs/public/metranslator/api/index.ejs | 31 | ||||
-rw-r--r-- | htdocs/public/metranslator/index.ejs | 195 |
2 files changed, 0 insertions, 226 deletions
diff --git a/htdocs/public/metranslator/api/index.ejs b/htdocs/public/metranslator/api/index.ejs deleted file mode 100644 index fa915b4..0000000 --- a/htdocs/public/metranslator/api/index.ejs +++ /dev/null @@ -1,31 +0,0 @@ -<% - - res.writeHead(200, {'Content-Type': "application/json"}); - - if (get['t']) { - if (get['t'] === "en") { - target = "en"; - } else { - target = "mt"; - } - } else { - res.end(); - } - - if (get['u']) { - text = get['u']; - - if (text.length > 500) { - res.end(); - } - - text = text.split("\"").join("''"); - } else { - res.end(); - } - - aw = JSON.parse(child_process.execSync(`cd /mnt/metranslator-api && node index.js api ${target} "${text}"`).toString()); - last = child_process.execSync("cd /mnt/metranslator-api && git log -1 --pretty=format:'%an'").toString() - aw["system"]["version"] = aw["system"]["version"] + "-" + fs.readFileSync("/mnt/metranslator-api/.git/refs/heads/trunk").toString().substr(0, 8); - aw["system"]["last_author"] = last; - aw["call"] = "cd /mnt/metranslator-api && node index.js api {$target} \"{$text}\"";
\ No newline at end of file diff --git a/htdocs/public/metranslator/index.ejs b/htdocs/public/metranslator/index.ejs deleted file mode 100644 index 3fd8baf..0000000 --- a/htdocs/public/metranslator/index.ejs +++ /dev/null @@ -1,195 +0,0 @@ -<% global.title = lang.metranslator.title; %> -<%- include(`${private}/header.ejs`) %> - -<a href="/<%- slang %>">← <%- lang.global.back %></a> - -<hr class="rnbwsquare-separator rnbwsquare-outer"> - -<div class="container" style="min-height: 100vh;margin-left: 5vw;margin-right: 5vw;"> - <style> - mark { - background: transparent; - color: #ff6161; - padding: 0; - font-weight: bold; - } - </style> - - <h2 style="text-align:center;"><%- lang.metranslator.title %></h2> - <p style="text-align:center;">💡 <i><%- lang.metranslator.tip %></i></p> - <div style="display:grid;grid-template-columns: 1fr 1fr;background:#111;padding-top:10px;border-radius:5px;"> - <div> - <a style="cursor:pointer;color: white !important; text-decoration: none;" onclick="switchLangs();"><p - id="lang-source" - style="text-align:center;font-weight:bold;"> - <%- lang.metranslator.base %></p></a> - <textarea maxlength="500" placeholder="<%- lang.metranslator.placeholder %>" onresize="resizeTarget();" - onchange="process();" - onkeydown="process();" onkeyup="process();" - id="text-source" - style="padding:20px;outline:none;overflow:hidden;resize:none;background: #222;border: none;width: 100%;margin-bottom: -3px;color: #eee;border-right:1px solid #151515;"></textarea> - <script>document.getElementById('text-source').value = "";</script> - </div> - <div> - <a style="cursor:pointer;color: white !important; text-decoration: none;" onclick="switchLangs();"><p - id="lang-target" - style="text-align:center;font-weight:bold;"> - Metroz</p></a> - <div id="text-target" disabled - style="padding:20px;outline:none;overflow:hidden;resize: none;background: #222;border: none;width: 100%;margin-bottom: -3px;color: #eee;"></div> - <script>document.getElementById('text-target').innerText = "";</script> - </div> - </div> - <div id="facts" - style="background:#424242;padding: 3px 10px;width:100%;border-bottom-left-radius:5px;border-bottom-right-radius:5px;"> - <span id="facts-inner"><%- lang.metranslator.facts %></span> - </div> - - <details style="margin-top:20px;"> - <summary><%- lang.metranslator.insights.title %></summary> - <ul> - <li><%- lang.metranslator.insights.name %> <span id="insights-01">n/a</span></li> - <li><%- lang.metranslator.insights.version %> <span id="insights-02">n/a</span></li> - <li><%- lang.metranslator.insights.size %> <span id="insights-03">n/a</span></li> - <li><%- lang.metranslator.insights.time %> <span id="insights-04">n/a</span></li> - </ul> - </details> -</div> - -<script> - - function switchLangs() { - if (document.getElementById("text-target").innerHTML === "...") return; - - tval = document.getElementById("text-target").innerText; - sval = document.getElementById("text-source").value; - - document.getElementById("text-target").innerText = "..."; - document.getElementById("text-source").value = tval; - - if (document.getElementById("lang-target").innerText === "English") { - document.getElementById("lang-target").innerText = "Metroz"; - document.getElementById("lang-source").innerText = "<%- lang.metranslator.base %>"; - } else { - document.getElementById("lang-source").innerText = "Metroz"; - document.getElementById("lang-target").innerText = "<%- lang.metranslator.base %>"; - } - - translate(); - } - - typing = false; - - function startTyping() { - typing = true; - document.getElementById("facts-inner").innerText = "<%- lang.metranslator.waiting %>"; - document.getElementById("text-target").innerText = "..."; - } - - function stopTyping() { - typing = false; - translate(); - } - - setInterval(() => { - if (typing) stopTyping(); - }, 2000) - - function translate() { - if (document.getElementById("text-source").value.trim() === "") { - document.getElementById("facts-inner").innerText = "<%- lang.metranslator.facts %>"; - document.getElementById("text-target").innerText = ""; - return; - } - - document.getElementById("facts-inner").innerText = "<%- lang.metranslator.processing %>"; - document.getElementById("text-target").innerText = "..."; - - if (document.getElementById("lang-target").innerText === "<%- lang.metranslator.base %>") { - target = "en"; - } else { - target = "mt"; - } - - document.getElementById("insights-01").innerText = "n/a"; - document.getElementById("insights-02").innerText = "n/a"; - document.getElementById("insights-03").innerText = "n/a"; - document.getElementById("insights-04").innerText = "n/a"; - - window.fetch("/<%- slang %>/metranslator/api?t=" + target + "&u=" + encodeURI(document.getElementById("text-source").value)).then((a) => { - a.blob().then((b) => { - b.text().then((c) => { - try { - data = JSON.parse(c); - - words = data.output.split(" "); - newds = []; - initw = document.getElementById("text-source").value.toLowerCase().split(" "); - - for (word of words) { - if (initw.includes(word)) { - newds.push("<mark>" + word + "</mark>"); - nothing = "<%- lang.metranslator.nothing %>"; - data.facts.push(nothing.replace("%1", word).replace("%2", document.getElementById("lang-target").innerText)) - } else { - newds.push(word); - } - } - - if (data.facts.length > 0) { - document.getElementById("facts-inner").innerHTML = "<ul style='margin-bottom: 0;margin-top: 0;'><li>" + data.facts.join("</li><li>") + "</li></ul>"; - } else { - document.getElementById("facts-inner").innerText = "<%- lang.metranslator.facts %>"; - } - - document.getElementById("text-target").innerHTML = newds.join(" "); - } catch (e) { - console.error(e); - document.getElementById("text-target").innerHTML = "<%- lang.metranslator.error %>"; - document.getElementById("facts-inner").innerText = "<%- lang.metranslator.facts %>"; - document.getElementById("insights-01").innerText = "n/a"; - document.getElementById("insights-02").innerText = "n/a"; - document.getElementById("insights-03").innerText = "n/a"; - document.getElementById("insights-04").innerText = "n/a"; - } - - if (data.system.version.startsWith("-")) { - document.getElementById("insights-01").innerText = "n/a"; - document.getElementById("insights-02").innerText = "n/a"; - document.getElementById("insights-03").innerText = "n/a"; - document.getElementById("insights-04").innerText = "n/a"; - } else { - document.getElementById("insights-01").innerText = data.system.name; - document.getElementById("insights-02").innerText = data.system.version + " (<%- lang.metranslator.update %> " + data.system.last_author + ")"; - document.getElementById("insights-03").innerText = data.system.length + " <%- lang.metranslator.entries %>"; - document.getElementById("insights-04").innerText = data.duration + " ms"; - } - resizeTarget() - - if (data.system.version.startsWith("-")) { - document.getElementById("insights-01").innerText = "n/a"; - document.getElementById("insights-02").innerText = "n/a"; - document.getElementById("insights-03").innerText = "n/a"; - document.getElementById("insights-04").innerText = "n/a"; - } - }) - }) - }) - } - - function process() { - resizeTarget() - startTyping() - } - - function resizeTarget() { - size = 167; - - document.getElementById("text-source").style.height = size + "px"; - document.getElementById("text-target").style.height = size + "px"; - } - - resizeTarget() - -</script> -<%- include(`${private}/footer.ejs`) %>
\ No newline at end of file |