• Votre personnage •Race: LicorneNiveau: 17Expérience: (12/170) | Sujet: Script ChatBox Sam 16 Avr - 0:11 | |
| Heya o/ Une adaptation du script fournit par ForumActif pour ajouter une alarme qui retentit glorieusement lorsque vous recevez un message en ChatBox. Une petite checkbox (à coté du bouton Archive) permet d'activer/désactiver rapidement Fonctionne seulement en mode ChatBox séparée (pas sur la PA). * Mise en place: 1) Ajoutez GreaseMonkey ( Mozilla, Chrome; si vous utilisez autre chose je vous présente mes plus sincères condoléances et vous souhaite de bien vouloir mourir du cancer ♥) 2) Créez un script et copiez-collez le code suivant. - Code:
-
// ==UserScript== // @name Equestria Nation PoneBox audio alert // @version 0.0 // @author Shift // @description Ajoute un bouton pour désactiver l'alarme. Un son est joué à chaque fois qu'un nouveau message arrive en PB. // @match http://equestrianations.forumgratuit.be/chatbox/index.forum // @match http://equestrianations.forumgratuit.be // @grant none // @require https://code.jquery.com/jquery-2.1.1.min.js // ==/UserScript==
window.localStorage && $(window).load(function() { var chatbox_script = function() { var sounds = { 'future': 'http://illiweb.com/fa/fdf/future.mp3', 'hal': 'http://illiweb.com/fa/fdf/hal.mp3', 'secret': 'http://illiweb.com/fa/fdf/secret.mp3', 'zelda': 'http://illiweb.com/fa/fdf/zelda.mono.mp3', 'sans':'https://iutdoua-webetu.univ-lyon1.fr/~p1402828/SansAlarm.wav' }; var default_sound = sounds['zelda']; var default_freq='new'; var default_when='always'; var default_volume = 100; // Modifie la page pour ajouter le bouton. var _options=document.getElementById('chatbox_display_archives'); _options.innerHTML = '<input type="checkbox" style="border:none;padding:0 3px;vertical-align: middle;" id="active_alarm" checked="false"/> <label for="active_alarm">Activer alarme</label> | ' + _options.innerHTML; if(localStorage.cb_sound && !localStorage.cb_sound.indexOf('https://dl.dropboxusercontent.com/u/181621985/')) localStorage.removeItem('cb_sound'); var a = document.createElement('audio'); if(!a.canPlayType) return; a.volume = Math.min(1, Math.max(0, localStorage.cb_volume||(default_volume/100)));
var origin_send = Chatbox.prototype.send; Chatbox.prototype.send = function(params) { var m = $.trim($("#message").val()); if(m.indexOf('/sound') && m.indexOf('/soudn')) return origin_send.call(this, params); m = $.trim(m.substr(6)).split(/\s+/,3); var bad_apple = false; switch(m[0].toLowerCase()) { case "": if(!a.src) { a.src = localStorage.cb_sound||default_sound; a.load(); } a.play(); break; case "all": case "new": localStorage.cb_freq = m[0]; break; case "always": case "off": case "on": case "once": case "never": localStorage.cb_when = m[0]; break; case "stop": if(!a.paused) a.pause(); if(!a.ended && a.readyState > 0) a.currentTime = 0; break; case "pause": if(!a.paused) a.pause(); break; case "volume": if(m.length>1) { localStorage.cb_volume = Math.min(1, Math.max(0, parseFloat(m[1].replace(',','.'))/100)); a.volume = localStorage.cb_volume; break; } default: bad_apple = true; }; if(bad_apple) { if(m[0] in sounds) { m[0]= sounds[m[0]]; } if(m[0]=="default") { m[0]=default_sound; localStorage.removeItem('cb_sound'); localStorage.removeItem('cb_freq'); localStorage.removeItem('cb_volume'); localStorage.removeItem('cb_when'); a.volume = Math.min(1, Math.max(0, default_volume/100)); } if(/^https?:\/\/.+/.test(m[0])) { localStorage.cb_sound = m[0]; a.pause(); a.src = m[0]; a.load(); a.play(); } else { var message = $('#message').val(); alert('/sound [all | new]\n/sound [always | off | on | once | never]\n/sound [stop | pause]\n/sound default\n/sound volume 0-100\n/sound ['+$.map(sounds,function(_,k){return k}).join(' | ')+']\n/sound [http://* | https://*]'); setTimeout(function(){ $("#message").val(message).select().focus(); }, 100); return; } } return $("#message").val('').focus(); };
$(window).on("focus", function(){ Console.log("focus");localStorage.removeItem('cb_once'); localStorage.removeItem('cb_blurred') }).on("blur", function(){ localStorage.cb_blurred=1; });
var play_sound = function(){ if(document.getElementById('active_alarm').checked==false) return; if(a.paused || a.ended) { if(a.readyState > 0) a.currentTime=0; if(!a.src) { a.src = localStorage.cb_sound||default_sound; a.load(); } a.play(); } }; var overrided = Chatbox.prototype.refresh; Chatbox.prototype.refresh = function(data) { if (data.messages && data.messages.length) { var lm = data.messages.slice(-1)[0]; var last_message = lm.time+','+lm.action+','+lm.msg; if(this.last_message_sound != last_message) { var user = $.grep(data.users, function(v){return v.id==chatbox.userId}); user = user.length ? user[0] : [{}]; if(this.last_message_sound!==undefined) { var freq = (localStorage.cb_freq||default_freq); var when = (localStorage.cb_when||default_when); if(when != "never" && (when != "off" || localStorage.cb_blurred) && (when != "on" || !localStorage.cb_blurred) && (when != "once" || (localStorage.cb_blurred && !localStorage.cb_once))) { if(freq =="all" || (lm.userId!=chatbox.userId && user.username!=lm.username)) { if(when!="once" || !localStorage.cb_once) { play_sound(); localStorage.cb_once = 1; } } } } this.last_message_sound = lm; } } overrided.call(this, data); }; }; var s=document.createElement('script'); s.text="("+chatbox_script.toString()+")();"; document.getElementsByTagName("head")[0].appendChild(s); /*$('window').each(function(){ try { $(this.contentDocument||this.contentWindow.document).find("#chatbox").closest("html").find("head").first().each(function() { this.appendChild(s.cloneNode(true)); }); } catch (a) {} });*/ });
3) Activez le script pour la page de la PoneBox. Et c'est tout o/ - Spoiler:
you gonna have a bad time
|
|