Benutzer:DerHexer/massenmail.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
 // <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>