Greasy Fork

Greasy Fork is available in English.

Skribbl.io dictionnaire mots français

Merci de ne pas abuser de ce script et de ne pas s'en servir comme un cheat mais plutot comme une aide (C'est un dictionnaire à la base).

目前为 2019-09-04 提交的版本。查看 最新版本

// ==UserScript==
// @name         Skribbl.io dictionnaire mots français
// @namespace    https://usp-3.fr/
// @version      0.5
// @description  Merci de ne pas abuser de ce script et de ne pas s'en servir comme un cheat mais plutot comme une aide (C'est un dictionnaire à la base).
// @author       MathieuLeThug
// @match        https://skribbl.io/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let wordlist = [];
    let wordsdone = [];

    const request = {
        addWord(word){
            if (word && !wordlist.includes(word)){
                $.post("https://usp-3.fr/api/skwords/", {sender: localStorage.getItem('name'), word}, rs => {
                    rs = JSON.parse(rs);
                    if (rs.registred){
                        log(`Added word ${word} to the database`);
                        addedWords.push(word);
                    }
                });
            }
        },
        getPattern(pattern, callback){
            if (pattern) $.post("https://usp-3.fr/api/skwords/", {sender: localStorage.getItem('name'), pattern}, callback);
        }
    }

    const log = (msg, color = 'purple', weight = "bold") => {
        let r = $("#boxMessages");
        if (msg) r.append($(`<p style="color: ${color}; font-weight: ${weight};"><span>${msg}</span></p>`))
        r.scrollTop(r[0].scrollHeight)
    }

    const sendMessage = message => {
        $('#inputChat').val(message);
        $("#formChat").trigger($.Event("submit"));
    }    

    const handlers = {
        lobbyReveal(data){
            request.addWord(data.word);
            wordsdone = [];
        },

        lobbyCurrentWord(word = $('#currentWord').text()){
            request.getPattern(word, rs => {
                rs = rs.split(',');
                if (rs != wordlist){
                    wordlist = rs;
    
                    let list = $('#wordlist').length ? $('#wordlist') : $('<div id="wordlist">List: </div>').appendTo('#screenGame');
                    $('#wordlist').empty();
                    $('#wordlist').css({"margin": "20px 0", "font-size": "21px"})
    
                    $(rs).each(function(_, text) {
                        let link = $(`<a>${text}</a>`);
                        link.css({
                            "display": "inline-block",
                            "cursor": "pointer",
                            "background-color": (!wordsdone.includes(text) ? "#97d87f" : "#ff5d64"),
                            "color": "black",
                            "margin": "2px",
                            "padding": "0px 12px"
                        });
    
                        link.click(function() {
                            link.css("background-color", "#ff5d64");
                            sendMessage(text);
                        });
                        list.append(link);
                    });
                }
            });
        },

        lobbyChooseWord(data){
            if (data && data.words){
                data.words.forEach(word => {
                    request.addWord(word);
                    wordsdone = [];
                });
            }
        }
    };

    function checkForSocket(){
        if (Object.keys(window.io.managers).length > 1){
            for (let sock in window.io.managers){
                sock = window.io.managers[sock];
                sock.engine.on('data', data => {
                    data = data.substr(data.split('[')[0].length);
                    if (data) {
                        data = '{"data":' + data  + '}';
                        data = JSON.parse(data).data;
                        if (typeof handlers[data[0]] === 'function') handlers[data[0]](data[1]);
                    }
                });
            }

        }else setTimeout(checkForSocket, 100);        
    }
    
    checkForSocket();

    $(document).keypress(function (event) {
        if (event.keyCode == 178) {
            $('#wordlist').toggle();
        }
    });
})();