diff --git a/MasterRaceScript.js b/MasterRaceScript.js index f7b8a0a..e7747ff 100644 --- a/MasterRaceScript.js +++ b/MasterRaceScript.js @@ -1,7 +1,7 @@ // ==UserScript== -// @name New Userscript +// @name RocketScripts // @namespace http://tampermonkey.net/ -// @version 0.1 +// @version 0.2 // @description try to take over the world! // @author You // @match https://chat.clubelek.fr/* @@ -9,94 +9,121 @@ // ==/UserScript== (function() { - 'use strict'; - function flip() { - var result = flipString(document.f.original.value.toLowerCase()); - document.f.flipped.value = result; - } - function flipString(aString) { - var last = aString.length - 1; - var result = new Array(aString.length); - for (var i = last; i >= 0; --i) { - var c = aString.charAt(i); - var r = flipTable[c]; - result[last - i] = r != undefined ? r : c; - } - return result.join(''); - } - var flipTable = { - a : '\u0250', - b : 'q', - c : '\u0254', - d : 'p', - e : '\u01DD', - f : '\u025F', - g : '\u0183', - h : '\u0265', - i : '\u0131', - j : '\u027E', - k : '\u029E', - //l : '\u0283', - m : '\u026F', - n : 'u', - r : '\u0279', - t : '\u0287', - v : '\u028C', - w : '\u028D', - y : '\u028E', - '.' : '\u02D9', - '[' : ']', - '(' : ')', - '{' : '}', - '?' : '\u00BF', - '!' : '\u00A1', - "\'" : ',', - '<' : '>', - '_' : '\u203E', - ';' : '\u061B', - '\u203F' : '\u2040', - '\u2045' : '\u2046', - '\u2234' : '\u2235', - '\r' : '\n' - }; - for (var i in flipTable) { - flipTable[flipTable[i]] = i; - } - - // Your code here... - { - let call=Meteor.call; - - Meteor.call=function(type) { - if(type=='sendMessage') { - console.log(arguments); - if(arguments[1].msg[0]==='!' || arguments[1].msg[0]===':'|| arguments[1].msg[0]==".") - { - if(arguments[1].msg==="!b") - { - arguments[1].msg="!bang"; - } - if(arguments[1].msg[0]===".") - { - - arguments[1].msg=flipString(arguments[1].msg.substr(1)); - } + 'use strict'; + function flip() { + var result = flipString(document.f.original.value.toLowerCase()); + document.f.flipped.value = result; + } + function flipString(aString) { + var last = aString.length - 1; + var result = new Array(aString.length); + for (var i = last; i >= 0; --i) { + var c = aString.charAt(i); + var r = flipTable[c]; + result[last - i] = r != undefined ? r : c; + } + return result.join(''); + } + var flipTable = { + a : '\u0250', + b : 'q', + c : '\u0254', + d : 'p', + e : '\u01DD', + f : '\u025F', + g : '\u0183', + h : '\u0265', + i : '\u0131', + j : '\u027E', + k : '\u029E', + //l : '\u0283', + m : '\u026F', + n : 'u', + r : '\u0279', + t : '\u0287', + v : '\u028C', + w : '\u028D', + y : '\u028E', + '.' : '\u02D9', + '[' : ']', + '(' : ')', + '{' : '}', + '?' : '\u00BF', + '!' : '\u00A1', + "\'" : ',', + '<' : '>', + '_' : '\u203E', + ';' : '\u061B', + '\u203F' : '\u2040', + '\u2045' : '\u2046', + '\u2234' : '\u2235', + '\r' : '\n' + }; + var emojitable = {}; + function fillEmoTable(emojis) { + for (var i = 0; i < emojis.length; i++) { + if (!(emojis[i].name[0] in emojitable)){ + emojitable[emojis[i].name[0]] = []; + } + emojitable[emojis[i].name[0]].push(":" + emojis[i].name + ":"); + for (var j = 0; j < emojis[i].aliases.length; j++) { + if (!(emojis[i].aliases[j][0] in emojitable)){ + emojitable[emojis[i].aliases[j][0]] = []; + } + emojitable[emojis[i].aliases[j][0]].push(":" + emojis[i].aliases[j] + ":"); + } + } + } + function emojify(msg) { + var res = [], wrk = msg.toLowerCase(); + for (var i = 0; i < wrk.length; i++) { + if (wrk.charCodeAt(i) >= 0x61 && wrk.charCodeAt(i) <= 0x7A) { + if (wrk[i] in emojitable) { + res.push(emojitable[wrk[i]][Math.floor(Math.random() * emojitable[wrk[i]].length)] + ' '); + } else res.push(wrk[i] + ' '); + } else if (wrk.charCodeAt(i) >= 0x30 && wrk.charCodeAt(i) <= 0x39) res.push(wrk[i] + ' '); + else if (wrk[i] === ' ') res.push(' '); + else res.push(wrk[i]); + } + return res.join(''); + } + Meteor.call('listEmojiCustom',(err,emojis)=>{fillEmoTable(emojis);}); + for (var i in flipTable) { + flipTable[flipTable[i]] = i; + } - } - else - { - if(arguments[1].msg[0]===".") - { - - arguments[1].msg=flipString(arguments[1].msg.substr(1)); - } - arguments[1].msg="_"+arguments[1].msg+"_"; - } - - - - } - call(...arguments); - }; - } + { + let call=Meteor.call; + + Meteor.call=function(type) { + if(type=='sendMessage') { + //console.log(arguments); + if(arguments[1].msg==="!b") { + arguments[1].msg="!bang"; + } else if(arguments[1].msg==="!r") { + arguments[1].msg="!reload"; + } else if(arguments[1].msg.substr(0,2)==="!s"&&arguments[1].msg[2]!=='h') { + arguments[1].msg="!shop " + arguments[1].msg.substr(2); + } else if(arguments[1].msg==="!d") { + arguments[1].msg="!duckstats"; + } else if(arguments[1].msg==="!l") { + arguments[1].msg="!lastduck"; + } else if(arguments[1].msg.substr(0,2)=="²²") { + arguments[1].msg=flipString(arguments[1].msg.substr(2)); + } else if (arguments[1].msg.substr(0,2) === '&&') { + arguments[1].msg=emojify(arguments[1].msg.substr(2)); + } else if (arguments[1].msg === '**') { + arguments[1].msg=''; + } + } + call(...arguments); + }; + } + Template.message.onCreated(function() { + let msg=Template.currentData(); + var matches=(msg.msg||'').match(/\:(\w+)\:/g); + if((matches||[]).length>5) { + this.body=''+matches.map(e=>e.charAt(1)).join('')+'
'+this.body; + } + }); })();