diff --git a/borderify.js b/borderify.js index d96c74d..79a8a27 100644 --- a/borderify.js +++ b/borderify.js @@ -1,45 +1,64 @@ +function createEventJSON(eventType, data) { + const timeStamp = new Date().toISOString(); + return { + "@version": 1, + "type": `browserext.${eventType}`, + "TimeStamp": timeStamp, + "data": data, + "@timestamp": timeStamp + }; +} + document.addEventListener( "keydown", (event) => { const key = event.key; const code = event.code; + let description; if (key.match(/^\p{Number}$/u)) { - console.log(`Клавиша: number`); + description = "number"; } else if (key.match(/^\p{Letter}$/u)) { - console.log(`Клавиша: letter`); + description = "letter"; } else if (key.match(/^\p{Punctuation}$|^\p{Symbol}$/u)) { - console.log(`Клавиша: symbol`); + description = "symbol"; } else { - console.log(`Клавиша: ${key} Код: ${code}`); + description = `Клавиша: ${key} Код: ${code}`; } + + const eventData = {description}; + console.log(JSON.stringify(createEventJSON('keydown', eventData))); }); document.addEventListener( "mousedown", (event) => { - console.log(`Клик мышью: ${event.button}`) + const eventData = { button: event.button, description: `Клик мышью: ${event.button}`}; + console.log(JSON.stringify(createEventJSON('mousedown', eventData))); }); document.addEventListener( "click", (event) => { const clickedElement = event.target; const tag = clickedElement.tagName; - const id = clickedElement.id ? clickedElement.id : "отсутствует"; - const className = clickedElement.className ? clickedElement.className : "отсутствует"; + const id = clickedElement.id || "отсутствует"; + const className = clickedElement.className || "отсутствует"; + let eventData; if (tag === 'A') { event.preventDefault(); const href = clickedElement.href; + eventData = { tag, id, className, href, description: "Клик по ссылке" }; + + localStorage.setItem('clickedElementInfo', JSON.stringify(eventData)); + console.log(JSON.stringify(createEventJSON('click', eventData))); - localStorage.setItem('clickedElementInfo', `Тэг: ${tag}, ID: ${id}, Класс: ${className} Ссылка: ${href}`) - navigateWithPromise(href); } - else if (tag === 'INPUT') { - const placeholder = clickedElement.placeholder ? clickedElement.placeholder : "отсутствует"; - console.log(`Тэг: ${tag}, ID: ${id}, Класс: ${className}, Плейсхолдер: ${placeholder}`) + const placeholder = clickedElement.placeholder || "отсутствует"; + eventData = { tag, id, className, placeholder, description: "Клик по полю ввода" }; + console.log(JSON.stringify(createEventJSON('click', eventData))); } }); @@ -73,16 +92,10 @@ document.addEventListener( "copy", (event) => { const pageUrl = window.location.href; const selectedText = window.getSelection().toString(); + let outputText = selectedText.length > 50 ? selectedText.substring(0, 49) + '…' : selectedText; if (selectedText.length > 0) { - let outputText; - - if (selectedText.length > 50) { - outputText = selectedText.substring(0, 49) + '…'; - } else { - outputText = selectedText; - } - - console.log(`Скопирован текст: ${outputText}, Скопировано из: ${pageUrl}`) + const eventData = { selectedText: outputText, pageUrl, description: "Скопирован текст" }; + console.log(JSON.stringify(createEventJSON('copy', eventData))); } }); \ No newline at end of file