sarkyScript

Tracks and logs the actions of conductors (or other users)

// ==UserScript==
// @name         sarkyScript
// @namespace    https://www.destiny.gg/
// @version      1.3
// @description  Tracks and logs the actions of conductors (or other users)
// @match        *://*.destiny.gg/embed/chat*
// @run-at       document-start
// @grant        none
// @icon         data:image/png;base64,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
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

  const menuIcon64 = "data:image/png;base64,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";
  let stored = {
    nicks: [],
    joinAlerts: "default",
    quitAlerts: "default",
    embedAlerts: "default",
    history: [],
  };
  const defaultNicks = ["destiny", "righttobeararmslol", "jaydrvernanda", "cake", "cyver", "4thot", "lemmiwinks", "ninou", "dancantstream", "aestudio", "mrmouton", "lilypichu", "pizza", "rin_lux", "yky", "drt0", "chacha", "tommyk", "csarky", "thatluckycamper", "zlxb", "pagi"]
  let lastMsg = HTMLElement;
  try {
    const sarkyScript = localStorage.getItem("sarkyScript");
    if (sarkyScript) {
      stored = JSON.parse(sarkyScript);
    }
  } catch (e) {
    console.error(e);
  }

  function saveStored() {
    localStorage.setItem("sarkyScript", JSON.stringify(stored));
  }


  function convertToJSON(prefixedData) {
    const firstSpaceIndex = prefixedData.indexOf(" ");
    const prefix = prefixedData.substring(0, firstSpaceIndex);
    const data = JSON.parse(prefixedData.substring(firstSpaceIndex + 1));

    return { prefix, data }
  }

  function isMainFrame() {
    try {
      return window == window.top;
    } catch (e) {
      return true;
    }
  }

  class Msg {
    constructor(nick, msg, color, time, embed) {
      this.container = document.createElement("div");
      this.container.className = "msg-chat msg-user";
      this.container.setAttribute("data-username", nick.toLowerCase());
      this.container.style.cssText = `background: ${color}; color: white;`;

      const msgTime = document.createElement("time");
      const date = new Date(time);
      msgTime.textContent = date.getHours().toString().padStart(2, "0") + ":" + date.getMinutes().toString().padStart(2, "0");
      msgTime.className = "time";
      msgTime.setAttribute("data-unixtimestamp", time);

      const msgUser = document.createElement("a");
      msgUser.className = "user";
      msgUser.textContent = nick;

      const msgCtrl = document.createElement("span");
      msgCtrl.className = "ctrl";
      msgCtrl.textContent = ": "

      const msgText = document.createElement("span");
      msgText.className = "text";
      msgText.textContent = msg;

      this.container.append(msgTime,msgUser,msgCtrl,msgText);
      if (embed) {
        const embedLink = document.createElement("a");
        embedLink.style.className = "externallink bookmarklink";
        if (isMainFrame()) embedLink.setAttribute("target", "_blank");
        else embedLink.setAttribute("target", "_top");

        const embedStr = `#${embed.platform}/${embed.id}`;
        embedLink.href = "https://www.destiny.gg/bigscreen" + embedStr;
        embedLink.textContent = embedStr;
        this.container.appendChild(embedLink);
      }
    }
  }

  function addMenu() {
    const menuBtnContainer = document.createElement("a");
    menuBtnContainer.setAttribute("title", "sarkyScript");
    menuBtnContainer.className = "chat-tool-btn";

    const menuBtn = document.createElement("img");
    menuBtn.className = "btn-icon";
    menuBtn.src = menuIcon64;


    const menuTitle = document.createElement("h1");
    menuTitle.textContent = "sarkyScript";

    const menuDesc = document.createElement("p");
    menuDesc.innerHTML = "This section is for the custom option <br> Seperate the names with commas using no spaces";


    menuBtnContainer.addEventListener("click", function(e) {

      const menuDialog = document.createElement("dialog");
      menuDialog.style.cssText = "background: #333; color: #999; width: 90%; height: 70%; position: relative;";
      document.body.appendChild(menuDialog);
      menuDialog.showModal();


      class CheckBox {
        constructor(option, alert) {
          this.container = document.createElement("div");
          this.container.style.cssText = "display: flex; justify-content: space-between; padding: 2px;";
          this.label = document.createElement("span");
          this.label.textContent = option;
          this.box = document.createElement("input");
          this.box.setAttribute("type", "radio");
          this.box.setAttribute("name", alert);
          this.container.append(this.label, this.box);

          if (alert == "JOIN" && stored.joinAlerts == option) this.box.checked = true;
          else if (alert == "QUIT" && stored.quitAlerts == option) this.box.checked = true;
          else if (alert == "EMBED" && stored.embedAlerts == option) this.box.checked = true;

          this.box.addEventListener(("click"), function() {
            if (alert == "JOIN") stored.joinAlerts = option;
            else if (alert == "QUIT") stored.quitAlerts = option;
            else stored.embedAlerts = option;
            saveStored();
          })
        }
      }

      class AlertDiv {
        constructor(alert) {
          this.container = document.createElement("div");
          this.container.style.cssText = "border: 1px solid black; padding: 8px;"
          this.heading = document.createElement("h4");
          this.heading.textContent = alert + " alerts";
          const defaultCheckBox = new CheckBox("default", alert);
          const allCheckBox = new CheckBox("all", alert);
          const friendsCheckBox = new CheckBox("custom", alert);
          const noneCheckBox = new CheckBox("none", alert);
          this.container.append(this.heading, defaultCheckBox.container, allCheckBox.container, friendsCheckBox.container,noneCheckBox.container);
        }
      }

      const alertsContainer = document.createElement("div");
      alertsContainer.style.cssText = "display: flex; justify-content: space-around;";
      const joinDiv = new AlertDiv("JOIN");
      const quitDiv = new AlertDiv("QUIT");
      const embedDiv = new AlertDiv("EMBED");
      alertsContainer.append(joinDiv.container,quitDiv.container,embedDiv.container);



      const friendsInput = document.createElement("textarea");
      friendsInput.style.cssText = "width: 100%; height: 14rem; background: #030303; color: #b9b9b9";
      friendsInput.value = stored.nicks;

      friendsInput.addEventListener("input", function(e) {
        let friendsInputValue = friendsInput.value.toLowerCase();
        stored.nicks = friendsInputValue.split(",").map(f => f.trim()).filter(f => f);
        saveStored();
      });

      const dialogBar = document.createElement("div");
      dialogBar.style.cssText = "display: flex; justify-content: space-between;";

      const closeMenuBtn = document.createElement("button");
      closeMenuBtn.style.cssText = "background: red; padding: 4px;";
      closeMenuBtn.textContent = "X";
      closeMenuBtn.addEventListener("click", () => {
        menuDialog.close();
      });

      const historyBtn = document.createElement("button");
      historyBtn.textContent = "History";
      historyBtn.style.cssText = "background: #b9b9b9; padding: 4px;"
      historyBtn.addEventListener("click", function(e) {
        menuDialog.close();
        const historyDialog = document.createElement("dialog");
        historyDialog.style.cssText = "background: #333; color: #999; width: 90%; height: 70%; position: relative;";

        const backBtn = document.createElement("button");
        backBtn.textContent = ">";
        backBtn.style.cssText = "background: #b9b9b9; right: 10px; position: absolute; padding: 4px;";
        backBtn.addEventListener("click", () => {
          historyDialog.close();
          menuDialog.showModal();
        })

        const historyHeading = document.createElement("h1");
        historyHeading.textContent = "History";

        const historyLines = document.createElement("div");

        stored.history.slice().reverse().forEach((item) => {
          const msg = new Msg(item.nick, item.msg, item.color, item.time, item.embed).container;
          console.log(msg);
          msg.style.cssText += "border: 1px solid black;";
          msg.children[0].style.display = "inline";
          historyLines.append(msg);
        })

        historyDialog.append(backBtn, historyHeading, historyLines);
        document.body.append(historyDialog);
        historyDialog.showModal();
      });


      dialogBar.append(historyBtn, closeMenuBtn);

      menuDialog.appendChild(dialogBar);
      menuDialog.appendChild(menuTitle);
      menuDialog.appendChild(alertsContainer);
      menuDialog.appendChild(menuDesc);
      menuDialog.appendChild(friendsInput);


    });


    const chatToolsGroup = document.querySelector(".chat-tools-group");
    menuBtnContainer.appendChild(menuBtn);
    chatToolsGroup.appendChild(menuBtnContainer);
  }

  function addMessage(nick, msg, color, time, embed) {
    const chatLines = document.querySelector(".chat-lines");
    if (!chatLines) {
      console.error("couldnt find chat-lines");
    }

    let msgElement = new Msg(nick, msg, color, time).container;

    if (embed) {
      msgElement = new Msg(nick, "opened ", color, time, embed).container;
    }

    chatLines.appendChild(msgElement);
    // console.log((chatLines.scrollHeight) - chatLines.scrollTop + chatLines.clientHeight < 1500);
    if ((chatLines.scrollHeight) - chatLines.scrollTop + chatLines.clientHeight < 1500) {
      chatLines.scrollTop = chatLines.scrollHeight;
    }

    if (stored.history.length > 200) stored.history.shift();
    stored.history.push({
      nick: nick,
      msg: msg,
      color: color,
      time: time,
      embed: embed
    });
    saveStored()
    return msgElement;
  }

  function editMessage(nick, msg) {
    msg.children[3].textContent = "REFRESH";
    msg.style.cssText = "background: #CC5500; color: white;";

    const time = parseInt(msg.children[0].getAttribute("data-unixtimestamp"));
    console.log(time);
    stored.history.pop();
    stored.history.push({
      nick: nick,
      msg: "REFRESH",
      color: "#CC5500",
      time: time,
      embed: null
    })
  }

  //
  //
  //
  //
  //

    console.log('WebSocket interceptor starting...');

    const OriginalWebSocket = window.WebSocket;

    window.WebSocket = function(url, protocols) {
        console.log('WebSocket intercepted to:', url);

        const socket = new OriginalWebSocket(url, protocols);

        socket.addEventListener('message', function(event) {
          const friends = stored.nicks;
          // console.log(event);
          if (event.origin == "wss://chat.destiny.gg") {
            try {
              let { prefix, data } = convertToJSON(event.data);

              if (!data.nick) return;
              const isFriend = friends.includes(data.nick.toLowerCase());
              const isDefault = defaultNicks.includes(data.nick.toLowerCase());


                if (prefix == "JOIN") {
                  if (stored.joinAlerts == "none") return;
                  if ((isFriend && stored.joinAlerts == "custom") || (isDefault && stored.joinAlerts == "default") || stored.joinAlerts == "all") {
                    const timeDiff = data.timestamp - lastMsg.children[0].getAttribute("data-unixtimestamp")
                    if (data.nick.toLowerCase() == lastMsg.getAttribute("data-username").toLowerCase()) {
                      return editMessage(data.nick, lastMsg);
                    }
                    addMessage(data.nick, "JOIN", "green", data.timestamp);
                  }
                }
                else if (prefix == "QUIT") {
                  if (stored.quitAlerts == "none") return;
                  if ((isFriend && stored.quitAlerts == "custom") || (isDefault && stored.quitAlerts == "default") || stored.quitAlerts == "all") {
                    const msg = addMessage(data.nick, "QUIT", "red", data.timestamp);
                    lastMsg = msg;
                  }
                } else if (prefix == "UPDATEUSER") {
                  if (stored.embedAlerts == "none") return;
                  if ((isFriend && stored.embedAlerts == "custom") || (isDefault && stored.embedAlerts == "default") || stored.embedAlerts == "all") {
                    let hello = null;
                    for (let i = stored.history.length - 1; i >= 0; i--) {
                      const item = stored.history[i];
                      if (item.nick === data.nick && item.embed) {
                        hello = item;
                        break;
                      }
                    }
                    if (hello && data.watching && hello.embed.id == data.watching.id) return;
                    if (data.watching === null) {
                      return;
                      // return addMessage(data.nick, "closed_embed", "#2d1b4b");
                    }
                    addMessage(data.nick, "", "#2d1b4b", Date.now(), data.watching);
                    }
                  }
            } catch (e) {
              console.error(e);
            }
          }
        });

        return socket;
    };

    for (const prop in OriginalWebSocket) {
        if (OriginalWebSocket.hasOwnProperty(prop)) {
            window.WebSocket[prop] = OriginalWebSocket[prop];
        }
    }

    window.WebSocket.prototype = OriginalWebSocket.prototype;

    window.addEventListener('load', function() {
        setTimeout(function() {
            addMenu();
            console.log(window);
        }, 1000);
    });

    console.log('WebSocket interceptor initialized');
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址