// ==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 // @downloadURL 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($(`

${msg}

`)) 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') : $('
List:
').appendTo('#screenGame'); $('#wordlist').empty(); $('#wordlist').css({"margin": "20px 0", "font-size": "21px"}) $(rs).each(function(_, text) { let link = $(`${text}`); 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(); } }); })();