Benutzer:DerHexer/massenmail.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// <nowiki>
switch (mw.config.get('wgUserLanguage')){
case 'de':
case 'de-at':
case 'de-ch':
case 'de-formal':
var configmassenmail = new Array('Bitte hier die anzuschreibenden Personen mit Semikola aufzählen (bspw.: DerHexer;TheWizard).',
'Bitte hier die Betreffszeile für alle Wikimails nennen.',
'Bitte hier den zu verschickenden Text mit allen Formatierungen hineinkopieren und anstelle der anzuschreibenden Person jeweils $$$ setzen. Bspw. „Hallo $$$! Schau mal auf deine Disku unter [[BD:$$$]].“ ergäbe „Hallo DerHexer! Schau mal auf deine Disku unter [[BD:DerHexer]].“.',
'Möchte ich für jede verschickte E-Mail eine Kopie an mich gesendet haben? (Antwortmöglichkeiten: Ja, Nein)',
'Versand erfolgreich.',
'Versand teilweise erfolgreich. Folgende Personen haben die Wikimail-Funktion nicht aktiviert: ',
'Massenmail',
'Mails an diverse Personen verschicken',
'Ja',
'Nein'); // 10
break;
default:
var configmassenmail = new Array('Please enter the people to be contacted separated by semicolon, e.g.: TheWizard;DerHexer',
'Please enter the subject for all wikimails.',
'Please paste the fully formatted text. You can replace the person to contact with $$$, e.g. “Hi $$$, have a look at your [[User talk:$$$|talk page]].” becomes “Hi TheWizard, have a look at your [[User talk:TheWizard|talk page]].”, etc.',
'Send me a copy of each wikimail. (choices: Yes, No)',
'Emailing successful.',
'Emailing partly successful. Following users do not have activated their wikimail function: ',
'massmail',
'Send wikimails to several users',
'Yes',
'No'); // 10
}
function newRequest()
{
try {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
return new ActiveXObject("MSXML2.XMLHTTP");
}
} catch (e) {
return false;
}
}
function addmails() {
var users_nomail = new Array();
var counter_users_nomail = 0;
var users = prompt(configmassenmail[0], "");
if(users){
var subject = prompt(configmassenmail[1], "");
if(subject){
var texttoadd = prompt(configmassenmail[2], "");
if(texttoadd){
var copymyself = prompt(configmassenmail[3], configmassenmail[9]);
if(copymyself){
var array_users = users.split(/\;\s{0,}/);
var req = newRequest();
if (req) {
var text = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&meta=tokens';
req.open("GET", text, false);
req.send("");
var getrequest = req.responseXML.getElementsByTagName('tokens');
if (getrequest) {
var gettoken = getrequest[0].getAttribute('csrftoken');
if (gettoken) {
for (i=0;i<array_users.length;i++){
var req3 = newRequest();
if (req3) {
var text = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=users&ususers=' + array_users[i] + '&usprop=emailable';
req3.open("GET", text, false);
req3.send("");
var getreq3 = req3.responseXML.getElementsByTagName('user');
if(getreq3[0].getAttribute('emailable') == null) {
users_nomail[counter_users_nomail] = array_users[i];
counter_users_nomail++;
}
}
var req2 = newRequest();
if (req2) {
var texttoadd2 = texttoadd.replace(/\$\$\$/g, array_users[i]).replace(/\\n/g, "%0A").replace(/\s\s/g, "%0A%0A").replace(/\&/g, "%26");
var text = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + "/api.php?action=emailuser&target=" + array_users[i] + "&text=" + texttoadd2 + "&subject=" + subject;
if(copymyself.toLowerCase() == configmassenmail[8].toLowerCase()) text = text + "&ccme=1";
req2.open("POST", text, true);
req2.setRequestHeader('Content-type','application/x-www-form-urlencoded');
req2.send(text + "&token=" + encodeURIComponent(gettoken));
}
}
}
}
}
if(counter_users_nomail == 0) {
alert(configmassenmail[4]);
} else {
alert(configmassenmail[5] + users_nomail);
}
}
}
}
}
}
if((mw.config.get('wgNamespaceNumber')==2) || (mw.config.get('wgNamespaceNumber')==3))
{
$(function()
{
mediaWiki.util.addPortletLink('p-tb', "javascript:addmails();", configmassenmail[6], 't-massmail', configmassenmail[7], '', '');
});
}
// </nowiki>