🏠 返回首頁 

Greasy Fork is available in English.

MH - Marmotte - Messagerie

Aperçu des MPs et Gestion des "Re"


Installer ce script?
// ==UserScript==
// @name        MH - Marmotte - Messagerie
// @namespace   MH
// @description Aperçu des MPs et Gestion des "Re"
// @include     */Messagerie/MH_Messagerie.php?cat=3*
// @include     */Messagerie/ViewMessage.php?answer=1*
// @exclude     *trolls.ratibus.net*
// @exclude     *it.mh.raistlin.fr*
// @icon        https://xballiet.github.io/ImagesMH/MZ.png
// @version     1.10
// @grant       none
// @require     https://greasyfork.org/scripts/23602-tout-mz?version=892175&d=.user.js
// ==/UserScript==
// vérif UTF-8 éê
/*
* Script MZ : Affiche un aperçu lors de l'écriture des MP / Blocs Html
*             Gère les 'Re :' multiples dans les titres
* Auteurs :   Bandedrubor (93138) / Kassbinette (95429) / disciple (62333) / Accaorrillia (71876)
* V1.2 Rouletabille (91305) 27/03/2016, adaptation Fx 45 (détection de la page, localStorage)
* V1.2.1 Rouletabille 	simplification de l'entête GM (include) + passage à greasyfork
* V1.2.2 Rouletabille 	exclusion du site Bricoll'Troll
*/
/* Lancement du script selon la page chargée */
// Roule : isPage() n'est plus utilisable
var lien = window.self.location.toString();
if (lien.indexOf("Messagerie/MH_Messagerie.php?cat=3") != -1) {
// Ajout d'un bouton après le bouton "Envoyer"
function addButton(caption, clickFunction) {
var sendButton = document.getElementsByName('bsSend')[0];
var newButton = document.createElement('input');
newButton.setAttribute('type', 'button');
newButton.setAttribute('class', 'mh_form_submit');
newButton.setAttribute('value', caption);
newButton.addEventListener('click', clickFunction, true);
sendButton.parentNode.appendChild(document.createTextNode(' '));
sendButton.parentNode.appendChild(newButton);
};
function wordWrap(str, width, brk, cut) {
brk = brk || '\n';
width = width || 75;
cut = cut || false;
if (!str) {
return str;
}
var regex = '.{1,' + width + '}(\\s|$)' + (cut ? '|.{' + width + '}|.+$' : '|\\S+?(\\s|$)');
return str.match(RegExp(regex, 'g')).join(brk);
}
// Affichage de l'aperçu
function display() {
tdPreview.innerHTML = "<div style='white-space: pre-line;'>" + wordWrap(messageArea.value) + "</div>";
};
// Sauvegarde du MP
function save() {
if (titleInput.value != '') {
MY_setValue('lastMPTitle', titleInput.value);
}
if (messageArea.value != '') {
MY_setValue('lastMP', messageArea.value);
}
};
// Restauration du MP sauvegardé
function restore() {
if (MY_getValue('lastMPTitle')) {
titleInput.value = MY_getValue('lastMPTitle');
}
if (MY_getValue('lastMP')) {
messageArea.value = MY_getValue('lastMP');
}
display();
};
// Restauration du MP sauvegardé
function reply() {
if (MY_getValue('lastReply')) {
messageArea.value = MY_getValue('lastReply');
}
display();
};
/* Ajout de disciple (62333) */
//-- Trõlldûctéûr --
function trollducteur() {
messageArea.value = messageArea.value
.replace(/°*y°*/g, '°y°')
.replace(/a/g, 'à')
.replace(/e/g, 'é')
.replace(/i/g, 'ï')
.replace(/o/g, 'õ')
.replace(/u/g, 'û')
.replace(/A/g, 'À')
.replace(/E/g, 'É')
.replace(/I/g, 'Ï')
.replace(/O/g, 'Õ')
.replace(/U/g, 'Û');
display();
};
//-- ajout string mettant un bloc 'quote' --
function addQuote()      { addTagToSelectedText("<fieldset><legend></legend>", "</fieldset>"); };
function addBold()       { addTagToSelectedText("<b>", "</b>"); };
function addItalic()     { addTagToSelectedText("<i>", "</i>"); };
function addUnderscore() { addTagToSelectedText("<u>", "</u>"); };
function addTagToSelectedText(startTag, endTag) {
var len = messageArea.value.length;
var start = messageArea.selectionStart;
var end = messageArea.selectionEnd;
var sel = messageArea.value.substring(start, end);
if (sel == "" || sel == null) {
sel = "Copier le texte ici";
}
// This is the selected text and alert it
var replace = startTag + sel + endTag;
// Here we are replacing the selected text with this one
messageArea.value = messageArea.value.substring(0, start) + replace + messageArea.value.substring(end, len);
}
// Titre du MP - Remplace les "Re:" ou "Re(n):" par un simple 'Re(n):"
var titleInput = document.getElementsByName('Titre')[0];
if (titleInput && titleInput.value != '') {
myarray = titleInput.value.match(/(Re\s+:)/g);
var myarray2 = titleInput.value.match(/Re\(\d+\)\s+:/g); // Extract the Re(n) to an array like [Re(n),Re(o),Re(p)...]
if (myarray2 == null) {
titleInput.value = titleInput.value.replace(/^(Re\s+:\s+)*/, "Re(" + myarray.length + ") : ");
} else {
var ctr = 0;
myarray2 = myarray2.join();		// Transform the array to a string in order to be able to use the match function
myarray2 = myarray2.match(/\d+/g);	// Extract the numbers only in an array
for (var i = 0 ; i < myarray2.length ; i++) {
// La multiplication par 1 est pour transformer la string en number
ctr = ctr + (myarray2[i] * 1);
}
titleInput.value = titleInput.value.replace(/^Re(.*)\s+:\s+/, "Re(" + (myarray.length + ctr) + ") : ");
}
}
// Case de texte du MP
var messageArea = document.getElementsByName('Message')[0];
// Aperçu à la frappe
messageArea.addEventListener('change', display, true);
messageArea.addEventListener('keyup', display, true);
// Ajout de la ligne d'affichage de l'aperçu
var trPreview = document.createElement('tr');
trPreview.setAttribute('class', 'mh_tdpage');
var tdPreview = document.createElement('td');
tdPreview.setAttribute('colspan', 4);
trPreview.appendChild(tdPreview);
document.getElementsByName('bsSend')[0].parentNode.parentNode.parentNode.appendChild(trPreview);
// Enregistrement du message à l'envoi
document.getElementsByName('bsSend')[0].addEventListener('click', save, true);
// Ajout du bouton d'aperçu
addButton('Aperçu', display);
// Ajout du bouton de sauvegarde
addButton('Sauvegarder', save);
// Ajout du bouton de restauration
addButton('Rappeler le dernier message', restore);
// Ajout du bouton de citation
addButton('Citer en réponse', reply);
// Ajout du bouton du trollducteur
addButton('Trõlldûctéûr', trollducteur);
addButton('B', addBold);
addButton('I', addItalic);
addButton('S', addUnderscore);
addButton('Quote', addQuote);
} else if (lien.indexOf("Messagerie/ViewMessage.php?answer=1") != -1) {
/* Ajout de disciple (62333) */
function reply(e) {
var reply = document.evaluate("//table/tbody/tr[5]/td", document, null, XPathR###lt.ANY_TYPE, null).iterateNext().innerHTML;
//reply = wordWrap(reply, 73);
reply = '> ' + reply.replace(/<br>/gm, '\n> ');
MY_setValue('lastReply', reply + '\n\n');
};
document.getElementsByName('bAnswer')[0].addEventListener('click', reply, true);
document.getElementsByName('bAnswerToAll')[0].addEventListener('click', reply, true);
}