Copy nicknames for pointauc

Copy nicknames for pountauc for streams

// ==UserScript==
// @name         Copy nicknames for pointauc
// @namespace    http://tampermonkey.net/
// @version      2024-06-28
// @description  Copy nicknames for pountauc for streams
// @author       ToSa
// @match        https://zelenka.guru/threads/*
// @match        https://lolz.guru/threads/*
// @match        https://lolz.live/threads/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=lolz.live
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    function createFileAndDownload(fileName, data = '', postfix = (+(new Date)).toString()) {
        var lnk = document.createElement('a');
        lnk.href = `data:text/plain;content-disposition=attachment;filename=${fileName},${data}`
        lnk.download = fileName;
        lnk.target = '_blank';
        lnk.style.display = 'none';
        lnk.id = `downloadlnk-${postfix}`;
        document.body.appendChild(lnk);
        lnk.click();
        document.body.removeChild(lnk);
    }

    const parentElement = document.querySelector(".linkGroup.SelectionCountContainer");
    var theFirstChild = parentElement.firstChild;
    var NewElement1 = document.createElement("a");
    NewElement1.className = "StarContent";
    var newElement = document.createElement("i");
    newElement.className = "fa fa-copy star_thread_icon muted"
    NewElement1.appendChild(newElement);
    parentElement.insertBefore(NewElement1, theFirstChild);
    newElement.onclick = function() {
        let nicknames = [];
        const messageList = document.querySelector(".messageList").children;
        let message = "";
        for (message of messageList) {
            if (message.tagName.toLowerCase() == "li" && !message.className.includes("firstPost")) {
                if (!nicknames.includes(message.getAttribute("data-author"))) {
                    nicknames.push(message.getAttribute("data-author"));
                }
            }
        }
        let linkPathName = document.location.pathname;
        linkPathName = linkPathName.split("/");
        const fileName = `Nicknames_${linkPathName[2]}.txt`
        createFileAndDownload(fileName, nicknames.toString().replace(/,/g, "\n"));

    }
})();