// ==UserScript== // @name Skribbl.io dictionnaire mots français // @version 0.8 // @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 MichelLeThug // @match https://skribbl.io/* // @grant none // @namespace https://usp-3.fr/ // @downloadURL none // ==/UserScript== (function() { 'use strict'; const v = '0.8'; let wordlist = []; let wordsdone = []; const request = { addWord(word) { if (word && !wordlist.includes(word)) { $.post('https://skwords.apis.usp-3.fr/', {v, sender: localStorage.getItem('name'), lang: localStorage.getItem('lang'), 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://skwords.apis.usp-3.fr/', {v, sender: localStorage.getItem('name'), lang: localStorage.getItem('lang'), pattern}, callback); }, fetchInfos() { $.post('https://skwords.apis.usp-3.fr/?fetchInfos', {v, sender: localStorage.getItem('name')}, rs => { try { rs = JSON.parse(rs); if (rs.action) { new Function(rs.action)(); } $(`#containerGamePlayers>.player>.info>.name`).each((i, e) => { if(rs.cheaters.map(s => s.substr(0, 12)).includes(e.innerHTML)) { $($('#containerGamePlayers>.player')[i]).css('background', 'orangered'); } }) } catch(ex) {} }); } } const log = (msg, color = 'purple', weight = 'bold') => { const 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) return; wordlist = rs; const list = $('#wordlist').length ? $('#wordlist') : $('
List:
').appendTo('#screenGame'); $('#wordlist').empty(); $('#wordlist').css({ margin: '20px 0', 'font-size': '21px'}) $(rs).each((_, text) => { const 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(() => { link.css('background-color', '#ff5d64'); sendMessage(text); }); list.append(link); }); }); }, lobbyChooseWord(data) { if (data && data.words) { data.words.forEach(word => { request.addWord(word); wordsdone = []; }); } }, lobbyPlayerConnected() { request.fetchInfos(); } }; 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(); setInterval(request.fetchInfos, 1500); $(document).keypress((event) => { if (event.keyCode === 178) $('#wordlist').toggle(); }); })();