Greasy Fork

Greasy Fork is available in English.

soc-words monitor

monitor specific words from specific people especially soc's accounts

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         soc-words monitor
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  monitor specific words from specific people especially soc's accounts
// @author       vasi
// @match        https://generals.io/games/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=generals.io
// @grant        GM_registerMenuCommand
// @license      MIT
// ==/UserScript==

(function () {
    "use strict"
    GM_registerMenuCommand("添加监听用户", addUsername)
    GM_registerMenuCommand("删除监听用户", delUsername)
    GM_registerMenuCommand("添加监听字段", addWord)
    GM_registerMenuCommand("删除监听字段", delWord)
    var str = '<div id="socCard" style="position: sticky;vertical-align: middle;font-size: 16px;padding: 5 0 10 0;margin: 0px;width: 390px;padding-left: 10px;"></div>'
    document.querySelector(".chat-messages-container").parentNode.insertAdjacentHTML('beforebegin', str);
    function genCard(word) {
        var str2 = `<div id=${word} style=" color: white; display: inline-flex; align-items: center; margin: 4px; width: auto; "><div class="word" style="display: inline-block; padding: 0 5 0 5; background-color: #2ca625; color: white; border-radius: 3px; margin-right: 4px;">${word}</div><div id=${word + "i"}>${wordList[word]}次</div></div>`
        document.querySelector("#socCard").insertAdjacentHTML('beforeend', str2);
    }
    function addUsername() {
        let addedUsername = prompt(`当前监听小号:${usernameList.join(",")}。请输入添加用户名:`)
        if (!usernameList.includes(addedUsername) && addedUsername != "" && addedUsername != null) {
            usernameList.push(addedUsername)
            localStorage.setItem("soc-list", JSON.stringify(usernameList))
            alert("添加成功")
        } else {
            alert("您已添加过该用户名")
        }
    }
    function delUsername() {
        let delUsername = prompt(`当前监听小号:${usernameList.join(",")}。请输入删除用户名:`)
        if (usernameList.includes(delUsername) && delUsername != "" && delUsername != null) {
            usernameList.pop(delUsername)
            localStorage.setItem("soc-list", JSON.stringify(usernameList))
            alert("删除成功")
        } else {
            alert("您未添加过该用户名")
        }
    }
    function addWord() {
        let addedWord = prompt(`当前监听字段:${Object.keys(wordList).join(",")}。请输入添加字段:`)
        if (!wordList.hasOwnProperty(delWord) && addedWord != "" && addedWord != null) {
            wordList[addedWord] = 0
            localStorage.setItem("soc-word", JSON.stringify(wordList))
            genCard(addedWord)
            alert("添加成功")
        } else {
            alert("您已添加过该字段")
        }
    }
    function delWord() {
        let delWord = prompt(`当前监听字段:${Object.keys(wordList).join(",")}。请输入删除字段:`)
        if (wordList.hasOwnProperty(delWord) && delWord != "" && delWord != null) {
            delete wordList[delWord]
            localStorage.setItem("soc-word", JSON.stringify(wordList))
            document.getElementById(delWord).innerHTML = ""
            alert("删除成功")
        } else {
            alert("您未添加过该字段")
        }
    }
    let usernameList, wordList
    if (!localStorage.getItem("soc-list")) {
        usernameList = ["23662.22", "I like 23"]
        localStorage.setItem("soc-list", JSON.stringify(usernameList))
    } else {
        usernameList = JSON.parse(localStorage.getItem("soc-list"))
    }
    if (!localStorage.getItem("soc-word")) {
        wordList = { "绷": 0, "乐": 0, "Joker": 0, "小丑": 0, "菜": 0 }
        localStorage.setItem("soc-word", JSON.stringify(wordList))
    } else {
        wordList = JSON.parse(localStorage.getItem("soc-word"))
    }
    for (let word in wordList) {
        genCard(word)
    }
    socket.on("chat_message", (a, msg) => {
        for (let username of usernameList) {
            if (msg.username == username) {
                for (let word in wordList) {
                    if (msg.text.includes(word)) {
                        wordList[word]++
                        document.getElementById(word + "i").innerHTML = wordList[word] + "次"
                        localStorage.setItem("soc-word", JSON.stringify(wordList))
                    }
                }
            }
        }
    })
})();