CustomChat V2

enter something useful

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name         CustomChat V2
// @namespace    https://realitygaming.fr/*
// @version      2.1
// @description  enter something useful
// @author       You
// @match        https://realitygaming.fr/*
// @grant        none
// ==/UserScript==
// CustomChat v2 by Wayz !
// There is a copyright on this script. Do not change it, thank's.
var scc = {
	color: "#2F78A0",
	notif: true,
	bot: false,
	lastRP: Date.now(),
	lastH: 0
};
var rP = {
	rep1: {title:"",msg:""},
	rep2: {title:"",msg:""},
	rep3: {title:"",msg:""},
	rep4: {title:"",msg:""},
	rep5: {title:"",msg:""}
};
var customChat = {
	msgID: [],
	__msgID: [],
	username: $('.accountUsername').text(),
	template_Button: '<div id="customChat_op" style="font-style:none;float:right;cursor:pointer;" class="fa fa-bars"></div>',
	template_Html: '<div id="customChat_op" data-role="blk" style="width:100%;height:100%;position:fixed;z-index:2147483645;background-color:rgba(0,0,0,0.2);opacity:0;display:none;"></div><div style="right: -800px;position: fixed;" class="customChat"><div class="customChat_header" style="background-color:#2F78A0"><div class="customChat_close" style="background-image:url()"></div><div class="customChat_header_text" style="margin-top: 40px;">CustomChat</div><div class="customChat_header_message">by Wayz</div></div><div class="customChat_middle_wrapper"><div class="customChat_middle"><div><input class="customChat_btn" id="hello" type="button"/><label for="hello"> Hello ! </label></div><br/><div><input class="customChat_btn" id="rep_pred" type="button"/><label for="rep_pred"> Message prédéfini </label></div><br/><div><input class="customChat_cb" id="notif" type="checkbox" checked=""/><label for="notif"><span class="ui"></span> Activer les notifications </label></div><br/><br/><div><input class="customChat_cb" id="bot" type="checkbox"/><label for="bot"><span class="ui"></span> Activer le pseudo BOT </label></div></div></div></div><div class="customChat_reponse" style="right:-800px;"><div class="customChat_rep_wrapper"><ul class="customChat_pred"><li class="customChat_a"><a id="customChat_rP" data-msg="" data-num="1" href="javascript:void(0);">Message 1</a></li><li class="customChat_a"><a id="customChat_rP" data-msg="" data-num="2" href="javascript:void(0);">Message 2</a></li><li class="customChat_a"><a id="customChat_rP" data-msg="" data-num="3" href="javascript:void(0);">Message 3</a></li><li class="customChat_a"><a id="customChat_rP" data-msg="" data-num="4" href="javascript:void(0);">Message 4</a></li><li class="customChat_a"><a id="customChat_rP" data-msg="" data-num="5" href="javascript:void(0);">Message 5</a></li><li class="customChat_a"><a id="customChat_del-rP" href="javascript:void(0);">Supprimer un message</a></li><li class="customChat_a"><a id="customChat_timer-rP" href="javascript:void(0);">Dernier message envoyé il y a NaN</a></li></ul></div></div>',
	template_Css: "<style id=\"css_cc\">.customChat{position:fixed;width:300px;height:100%;right:-420px;top:0;color:#000;z-index:2147483647;font-family:myriad-pro,sans-serif;text-align:left;line-height:1.2;user-select:none!important;-khtml-user-select:none!important;-o-user-select:none!important;-moz-user-select:-moz-none!important;-webkit-user-select:none!important;-webkit-transition:all .35s linear;-moz-transition:all .35s linear;-o-transition:all .35s linear;transition:all .35s linear}.customChat .customChat_header{position:absolute;height:230px;width:240px;padding:0 30px;top:0;left:0;overflow:hidden;border-left:1px solid rgba(0,0,0,.2);box-sizing:content-box}.customChat .customChat_header .customChat_header_text{width:100%;height:35px;padding-top:15px;text-align:center;color:#fff;font-family:\"Source Sans Pro\",sans-serif;font-size:25px;font-weight:lighter}.customChat .customChat_header .customChat_header_message{text-align:center;color:#fff;font-family:\"Source Sans Pro\",sans-serif;font-size:13px;font-weight:lighter}.customChat .customChat_middle_wrapper{height:auto;top:230px;bottom:0;width:100%;position:absolute;z-index:-2;border-left:1px solid rgba(0,0,0,.2);background-color:rgb(245,245,245)}.customChat>.customChat_middle_wrapper>.customChat_middle{background-color:#fff;position:absolute;top:0;left:0;width:100%;padding:10%;border-bottom:1px solid #dfdfdf;box-sizing:border-box;overflow:auto;max-height:100%}.customChat_pred{list-style:none;padding:4px;margin:0;background:#FEFEFE}.customChat_a a{display:block;margin:1px 0;padding:8px 20px;color:#34495E;background:#FFF;text-decoration:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.customChat_a a:focus,.customChat_a a:hover{background:#2F78A0;color:#FFF;padding-left:25px}.customChat_reponse{position:fixed;width:600px;height:100%;right:0px;top:0;color:#000;z-index:2147483646;font-family:myriad-pro,sans-serif;text-align:left;line-height:1.2;user-select:none!important;-khtml-user-select:none!important;-o-user-select:none!important;-moz-user-select:-moz-none!important;-webkit-user-select:none!important;-webkit-transition:all .35s linear;-moz-transition:all .35s linear;-o-transition:all .35s linear;transition:all .35s linear;margin-top:229px;}.customChat_rep_wrapper{background-color:#fff;position:absolute;top:0;left:0;width:100%;border:1px solid #dfdfdf;box-sizing:border-box;overflow:auto;max-height:50%;max-width:100%}.customChat_cb[type=checkbox]:checked,.customChat_cb[type=checkbox]:not(:checked){position:absolute;left:-9999px}.customChat_cb[type=checkbox]:checked+label,.customChat_cb[type=checkbox]:not(:checked)+label{position:relative;padding-left:75px;cursor:pointer}.customChat_cb[type=checkbox]:checked+label:after,.customChat_cb[type=checkbox]:checked+label:before,.customChat_cb[type=checkbox]:not(:checked)+label:after,.customChat_cb[type=checkbox]:not(:checked)+label:before{content:'';position:absolute}.customChat_cb[type=checkbox]:checked+label:before,.customChat_cb[type=checkbox]:not(:checked)+label:before{left:0;top:-3px;width:65px;height:30px;background:#DDD;border-radius:15px;-webkit-transition:background-color .2s;-moz-transition:background-color .2s;-ms-transition:background-color .2s;transition:background-color .2s}.customChat_cb[type=checkbox]:checked+label:after,.customChat_cb[type=checkbox]:not(:checked)+label:after{width:20px;height:20px;-webkit-transition:all .2s;-moz-transition:all .2s;-ms-transition:all .2s;transition:all .2s;border-radius:50%;background:#7F8C9A;top:2px;left:5px}.customChat_cb[type=checkbox]:checked+label:before{background:#34495E}.customChat_cb[type=checkbox]:checked+label:after{background:#2F78A0;top:2px;left:40px}.customChat_cb[type=checkbox]:checked+label .ui,.customChat_cb[type=checkbox]:checked+label .ui:after,.customChat_cb[type=checkbox]:not(:checked)+label .ui:before{position:absolute;left:6px;width:65px;border-radius:15px;font-size:14px;font-weight:700;line-height:22px;-webkit-transition:all .2s;-moz-transition:all .2s;-ms-transition:all .2s;transition:all .2s}.customChat_cb[type=checkbox]:not(:checked)+label .ui:before{content:'Non';left:32px}.customChat_cb[type=checkbox]:checked+label .ui:after{content:'Oui';color:#2F78A0}.customChat_btn[type=button]{background-color:#2F78A0;border-radius:15px;border:5px solid #34495E;width:65px;height:30px;cursor:pointer;margin-right:5px;-webkit-transition:all .3s;-moz-transition:all .3s;-ms-transition:all .3s;transition:all .3s}label{color:#34495E}.customChat_btn[type=button]:hover{background-color:#a5cae4}</style>", // base checkbox by @geoffrey_crofte
	template_Js: '<script id="js_cc">$("#rep_pred").click(function(){var s=$(".customChat_reponse");s.hasClass("visible")?($(this).css("backgroundColor","#6AD2EF"),s.animate({right:"-1000px"},200).removeClass("visible")):(s.animate({right:"0px"},200).addClass("visible"),$(this).css("backgroundColor","#a5cae4"))}),$("div#customChat_op").click(function(){var s=$(".customChat"),a=$(".customChat_reponse"), z=$("#modal_js");s.hasClass("visible")?(s.animate({right:"-1000px"},200).removeClass("visible"),a.animate({right:"-1000px"},200).removeClass("visible"),z.css("display", "none"),$("#rep_pred").css("backgroundColor","#6AD2EF"),$(\'div#customChat_op[data-role="blk"]\').animate({opacity:"0"},200,"swing",function(){$(\'div#customChat_op[data-role="blk"]\').css("display","none")})):(s.animate({right:"0px"},200).addClass("visible"),$(\'div#customChat_op[data-role="blk"]\').animate({opacity:"1"},200,"swing",function(){$(\'div#customChat_op[data-role="blk"]\').css("display","block")}))});</script>',
	template_M: '<div id="modal_js" style="display:none;width:600px;background-color:#fefefe;border:1px solid rgba(0, 0, 0, 0.2);border-radius:5px;-webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.3);-moz-box-shadow: 0px 0px 15px rgba(0,0,0,0.3);box-shadow: 0px 0px 15px rgba(0,0,0,0.3);z-index:9854136598742"><div id="modal_js_head" style="border-bottom:1px solid rgba(0, 0, 0, 0.2);padding:10px 15px 10px 15px;"></div><div id="modal_js_body" style="padding:15px;"></div><div id="modal_js_footer" style="border-top:1px solid rgba(0, 0, 0, 0.2);padding:10px 15px 25px 15px;text-align:right;"><input type="button" id="modal_js_cancel" class="button primary" value="Annuler" /><input type="button" id="modal_js_save" class="button" value="Sauvegarder" /></div></div>',
	init: function(){
		if(location.host == "dreamgaming.fr"){
			alert('PLA-PLA-PLAGIEUR');
			return location.href = "http://realitygaming.fr";
		}
		setInterval(function(){customChat.checkNewMsg();}, 250);
		if(location.pathname.indexOf('chatbox') != -1) {
			$('#taigachat_controls').append(this.template_Button);
			$('#customChat_op.fa.fa-bars').attr('style', 'font-style:none;float:right;cursor:pointer;font-size:24px;padding-right:10px;');
		}
		else {
			$('#taigachat_full').find('.nodeTitle').append(this.template_Button);
		}
		$('body').prepend(this.template_Html);
		$('body').prepend(this.template_Css);
		$('body').prepend(this.template_Js);
		$('body').prepend(this.template_M);
		var $notif = $('#notif[type=checkbox]');
		$notif.on('change', function(){
			scc.notif = $(this).is(':checked');
			customChat.save();
		});
		var $bot = $('#bot[type=checkbox]');
		$bot.on('change', function(){
			scc.bot = $(this).is(':checked');
			customChat.save();
		});
		var $hello = $('#hello[type=button]');
		$hello.on('click', function() {
			customChat.hello();
			customChat.save();
		});
		var $rep = $('a#customChat_rP');
		$rep.on('click', function(){
			if($(this).data('msg').length > 4) {
				scc.lastRP = Date.now();
				var $input = $('#taigachat_message');
				$input.val(($input.val().trim().length>1?$input.val().trim()+" ":"") + customChat.decode_b64($(this).data('msg')));
				customChat.save();
			}
			else {
				customChat.add_rP($(this));
			}
		});
		var $rep_del = $('a#customChat_del-rP');
		$rep_del.on('click', function(){
			customChat.del_rP();
		});
		
		(function($){
			$.fn.extend({
				center: function () {
					return this.each(function() {
						var top = ($(window).height() - $(this).outerHeight()) / 2;
						var left = ($(window).width() - $(this).outerWidth()) / 2;
						$(this).css({position:'absolute', margin:0, top: (top > 0 ? top : 0)+'px', left: (left > 0 ? left : 0)+'px'});
					});
				}
			}); 
		})(jQuery);
		this.load();
	},
	encode_b64: function(str) {
		return window.btoa(encodeURIComponent(escape(str)));
	},
	decode_b64: function(str) {
		return unescape(decodeURIComponent(window.atob(str)));
	},
	save: function(){
		var settings_scc = JSON.stringify(scc);
		var settings_rP = JSON.stringify(rP);
		localStorage.setItem('settings_scc', settings_scc);
		localStorage.setItem('settings_rP', settings_rP);
	},
	load: function(){
		var a = localStorage.getItem("settings_scc");
		if(a){
			var b = Object.keys(scc);
			var c = JSON.parse(a);
			for(var i in b){
				if(c[b[i]] == undefined){
					this.save();
				}
				else {
					scc[b[i]] = c[b[i]];
				}
			}
		}
		else {
			this.save();
		}
		var z = localStorage.getItem("settings_rP");
		if(z){
			var b = Object.keys(rP);
			var c = JSON.parse(z);
			for(var i in b){
				if(c[b[i]] == undefined){
					this.save();
				}
				else {
					rP[b[i]] = c[b[i]];
				}
			}
		}
		else {
			this.save();
		}
		for(var i in rP){
			if(rP[i].title.length > 1 && rP[i].msg.length > 1){
				var num = i.substr(3);
				$('#customChat_rP[data-num="' + num + '"]').text(customChat.decode_b64(rP[i].title));
				$('#customChat_rP[data-num="' + num + '"]').data('msg', rP[i].msg);
			}
		}
		$('#notif[type=checkbox]').prop('checked', scc.notif);
		$('#bot[type=checkbox]').prop('checked', scc.bot);
		setInterval(function(){customChat.lastRP();}, 2000);
	},
	notify: function(msg) {
		if(scc.notif){
			if(!("Notification"in window)){console.error("Ce navigateur ne supporte pas les notifications !")}else if(Notification.permission==="granted"){var notification=new Notification(msg, {icon: 'http://i.imgur.com/UTnwcjK.png'})}else if(Notification.permission!=="denied"){Notification.requestPermission(function(e){if(!("permission"in Notification)){Notification.permission=e}if(e==="granted"){var t=new Notification(msg, {icon: 'http://realitygaming.fr/attachments/rg-png.14121/'})}})}
		}
		else {
			console.log('notif disable')
		}
	},
	checkNewMsg: function(){
		var msg = $('#taigachat_box').children('ol').children('li');
		for(var i in msg) {
			var id = msg.eq(i).data('messageid');
			var msg_text = $('#taigachat_box').children('ol').children('li[data-messageid="' + id + '"]').children('span').eq(2).children('div').text().trim();
			var msg_sender = $('#taigachat_box').children('ol').children('li[data-messageid="' + id + '"]').children('span').eq(2).children('a').text().trim();
			if(this.msgID.indexOf(id) == -1 && msg_text.indexOf(this.username) != -1) {
				this.msgID.unshift(id);
				this.newMsg(id);
			}
			else if(this.__msgID.indexOf(id) == -1 && msg_sender == this.username && scc.bot){
				$('#taigachat_box').children('ol').children('li[data-messageid="' + id + '"]').children('span').eq(2).children('a').children('span').attr('class', 'style10');
				this.__msgID.unshift(id);
			}
		}
	},
	newMsg: function(id) {
		$('#taigachat_box').children('ol').children('li[data-messageid="' + id + '"]').css('backgroundColor', "rgba(32, 128, 179, 0.22)");
		var msg = $('#taigachat_box').children('ol').children('li[data-messageid="' + id + '"]').children('span').eq(2).children('div').text().trim();
		var sender = $('#taigachat_box').children('ol').children('li[data-messageid="' + id + '"]').children('span').eq(2).children('a').text().trim();
		this.notify(sender + " - " + msg);
	},
	hello: function() {
		if((Date.now() - scc.lastH) >= 3600000){
			scc.lastH = Date.now();
			var user1 = $('#taigachat_box').children('ol').children('li').eq(5).children('span').eq(2).children('a').text();
			var user2 = $('#taigachat_box').children('ol').children('li').eq(17).children('span').eq(2).children('a').text();
			var user3 = $('#taigachat_box').children('ol').children('li').eq(23).children('span').eq(2).children('a').text();
			var userinchat = $('#taigachat_count').text();
			$("#taigachat_message").val("Salut à @" + user1 + " , @" + user2 + " , @" + user3 + " et aux " + userinchat + " membres actuellement sur le chat :)");
			this.save();
		}
		else{
			alert('Vous avez utilisé cette fonction il y a moins d\'un heure !');
		}
	},
	lastRP: function(){
		var ms = Date.now() - scc.lastRP,
		// http://stackoverflow.com/a/19700358
		seconds = parseInt((ms/1000)%60),
		minutes = parseInt((ms/(1000*60))%60),
		hours = parseInt((ms/(1000*60*60))%24);

		hours = (hours < 10) ? "0" + hours : hours;
		minutes = (minutes < 10) ? "0" + minutes : minutes;
		seconds = (seconds < 10) ? "0" + seconds : seconds;

		var time = hours + ":" + minutes + ":" + seconds;
		$('#customChat_timer-rP').text('Dernier message envoyé il y a ' + time);
	},
	modal: function(title, body){
		$('#modal_js').css('display', 'block');
		$('#modal_js').center();
		$('#modal_js_head').html('<h2 style="font-family: \'Open Sans Condensed\',\'Arial\',sans-serif; font-size: 12pt; color: rgb(52, 73, 94);">' + title + '</h2>');
		$('#modal_js_body').html(body);
	},
	add_rP: function($rep){
		this.modal('Ajouter une réponse', '<input id="modal_js_rep_title" class="textCtrl" style="width:100%;height:20px;" placeholder="Entrez le titre du message" /><br/><br/><input id="modal_js_rep_body" class="textCtrl" style="width:100%;height:20px;" placeholder="Entrez le contenu du message" />');
		var is_add = true;
		$('#modal_js_save').on('click', function(){
			if(is_add){
				var rep_msg = $('#modal_js_rep_body').val().trim();
				var rep_title = $('#modal_js_rep_title').val().trim();
				if(rep_title.length > 2) {
					if(rep_msg.length > 4) {
						var cR = $rep.data('num');
						rP['rep' + cR].title = customChat.encode_b64(rep_title);
						rP['rep' + cR].msg = customChat.encode_b64(rep_msg);
						$('#modal_js').css('display', 'none');
						$rep.text(rep_title);
						$rep.data('msg', customChat.encode_b64(rep_msg));
						customChat.save();
						is_add = false;
					}
					else {
						alert('Votre message n\'est pas assez long !');
					}
				}
				else {
					alert('Votre titre n\'est pas assez long !');
				}
			}
		});
		$('#modal_js_cancel').on('click', function(){
			if(is_add){
				$('#modal_js').css('display', 'none');
				is_add = false;
			}
		});
	},
	del_rP: function(){
		this.modal('Entrer le chiffre de la réponse à supprimer', '<input id="modal_js_rep_num" class="textCtrl" style="width:100%;height:20px;" placeholder="Chiffre de la réponse à supprimer" /><br/>');
		var is_del = true;
		$('#modal_js_save').on('click', function(){
			if(is_del){
				var rep_num = $('#modal_js_rep_num').val().trim();
				if(rep_num > 0 && rep_num < 6){
					$('#customChat_rP[data-num="' + rep_num + '"]').text("Message " + rep_num);
					$('#customChat_rP[data-num="' + rep_num + '"]').data('msg', "");
					rP['rep' + rep_num].title = "";
					rP['rep' + rep_num].msg = "";
					$('#modal_js').css('display', 'none');
					customChat.save();
					is_del = false;
				}
			}
		});
		$('#modal_js_cancel').on('click', function(){
			if(is_del){
				$('#modal_js').css('display', 'none');
				is_del = false;
			}
		});
	}
};

customChat.init();