72 lines
No EOL
1.9 KiB
JavaScript
72 lines
No EOL
1.9 KiB
JavaScript
|
|
var messages = document.getElementById('messages');
|
|
var form = document.getElementById('form');
|
|
var input = document.getElementById('input');
|
|
|
|
async function nextPage(e) {
|
|
input.value = '';
|
|
main(new Event('click'));
|
|
}
|
|
|
|
async function goPage(count) {
|
|
let counter = input.value.match(/[^\s]+$/g);
|
|
if (!counter) return;
|
|
|
|
input.value = `${input.value.match(/^[^\s]+/g)[0]} ${counter[0] * 1 + count}`;
|
|
main(new Event('click'));
|
|
}
|
|
|
|
async function addMsg(msg) {
|
|
let lines = msg.split('\n');
|
|
var wrap = document.createElement('li');
|
|
|
|
for (let line of lines) {
|
|
var item = document.createElement('li');
|
|
item.textContent = line;
|
|
|
|
if (line.startsWith('-') || line.startsWith('<')) {
|
|
let img = new Image();
|
|
if (line.startsWith('<') || line[2] == '>') {
|
|
item.textContent = line.slice(3);
|
|
img.src = `arrows/left.svg`;
|
|
} else {
|
|
item.textContent = line.slice(2);
|
|
img.src = `arrows/right.svg`;
|
|
}
|
|
|
|
item.insertBefore(img,item.childNodes[0])
|
|
}
|
|
wrap.appendChild(item);
|
|
window.scrollTo(0, document.body.scrollHeight);
|
|
}
|
|
messages.appendChild(wrap);
|
|
}
|
|
|
|
async function main(e) {
|
|
e.preventDefault();
|
|
|
|
if (!input.value) return;
|
|
|
|
let msg = await fetch("https://elem.dervland.net/" /*"/"*/, {
|
|
"method": "POST",
|
|
"headers": {
|
|
"content-type": "application/json",
|
|
},
|
|
"body": JSON.stringify({ "data": input.value })
|
|
})
|
|
|
|
msg = await msg.text();
|
|
msg = msg.trim();
|
|
|
|
addMsg(input.value)
|
|
addMsg(msg)
|
|
}
|
|
|
|
form.addEventListener('submit', main);
|
|
|
|
document.querySelector('.send').addEventListener('click', main);
|
|
document.querySelector('.prev').addEventListener('click', () => goPage(1));
|
|
document.querySelector('.next').addEventListener('click', () => goPage(-1));
|
|
|
|
input.value = '/inv 1';
|
|
goPage(0); |