CustomChat V2

enter something useful

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==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();