1. !/usr/bin/php

<?php include './Core/BotCore.php'; /** BWarchivierung.php

  • Archiviert den Bilderwettbewerb (BW) der Jungwikipedianer (JWP) und verlinkt die archivierte Seite in der Liste der bereits archivierten BWe.
  • @Author Tesser4D
  • @Version
  • @Status
  • /

class BWarchivierung extends Core {

public function BWarchivierung ($Account, $Job, $pUseHTTPS = false) { //Vorbereitungen $this->initcurl($Account, $Job, false); //anmelden $aktuellerMonat = intval(date("n")); //aktuellen Monat speichern if(($aktuellerMonat % 2) === 1){ //nur in ungeraden Monaten wird archiviert, da der BW in geraden stattfindet und im Monat danach archiviert wird //Variablen $nummerBW = ((((date("n")) + 1) / 2) + (((date("y")) - 2014)*6) - 4); //der wievielte BW gerade ist $seiteBW = "Wikipedia:Jungwikipedianer/Bilderwettbewerb"; $seiteArchivsammlung = "Wikipedia:Jungwikipedianer/Bilderwettbewerb/Archiv"; $seiteArchiv = "Wikipedia:Jungwikipedianer/Bilderwettbewerb/Archiv/" . $nummerBW; $zusammenfassung = "Bot: Archivierung des " . $nummerBW . ". Bilderwettbewerbs der JWP";

//Drei Bedingungen müssen erfüllt sein, damit die Archivierung durchgeführt wird $stimmtZeitpunkt = false; //true, wenn der Bilderwettbewerb des letzten Monats archiviert wird $stimmtArchiv = false; //true, wenn die als Archiv vorgesehene Seite noch nicht existiert $stimmtArchivliste = false; //true, wenn der letzte Link in der Archivliste die Archivierung des letzten BWs ist

//stimmtZeitpunkt //Monat $platzhalterA = $this->readPage($seiteBW); $platzhalterA = strrchr ($platzhalterA, "Bilderwettbewerb, "); $platzhalterA = strstr ($platzhalterA, " 2", true); $platzhalterA = strstr ($platzhalterA, " ");

if($platzhalterA === " Februar"){ $naechsterMonatZahl = 4; $naechsterMonatText = " April"; } else if($platzhalterA === " April"){ $naechsterMonatZahl = 6; $naechsterMonatText = " Juni"; } else if($platzhalterA === " Juni"){ $naechsterMonatZahl = 8; $naechsterMonatText = " August"; } else if($platzhalterA === " August"){ $naechsterMonatZahl = 10; $naechsterMonatText = " Oktober"; } else if($platzhalterA === " Oktober"){ $naechsterMonatZahl = 12; $naechsterMonatText = " Dezember"; } else if($platzhalterA === " Dezember"){ $naechsterMonatZahl = 2; $naechsterMonatText = " Februar"; } $aktuellerMonat = intval(date("n"));

//Jahr $jahreswechsel; //wenn true, findet die Archivierung im Jahr nach dem BW statt

$platzhalterB = $this->readPage($seiteBW); $platzhalterB = strrchr ($platzhalterB, "20"); $platzhalterB = strstr ($platzhalterB, "]]", true); $aktuellesJahr = intval(date("Y")); if(naechsterMonatZahl === 2){ $jahreswechsel = true; } else{ $jahreswechsel = false; }

//Beides (Monat und Jahr) zusammen if( /*BW und Archivierung sind im selben Jahr */ ((($aktuellerMonat + 1) === $naechsterMonatZahl) and ($aktuellerMonat <= 12) and ($jahreswechsel === false)) /*oder*/ xor /*BW im Dez, Archiv im Jan nächstes Jahr */ (($aktuellerMonat === 1) and ($naechsterMonatZahl === 12) and ($jahreswechsel)) ){ $stimmtZeitpunkt = true; } else{ $stimmtZeitpunkt = false; }

//stimmtArchiv $data = "action=query&prop=revisions&format=php&rvprop=comment&rvlimit=1&rvdir=newer&rvtag=contenttranslation&titles=" . (urlencode($seiteArchiv)); try { $pagestatus = $this->httpRequest($data, $this->job, 'GET'); } catch (Exception $e) { throw $e; } if (strstr ($pagestatus, "missing") === false) { //Falls Seite bereits existiert $stimmtArchiv = false; } else{ //Falls Seite noch nicht existiert $stimmtArchiv = true; }

//stimmtArchivliste $platzhalterC = $this->readPage($seiteArchivsammlung); $platzhalterC = strrchr ($platzhalterC, "# "); $platzhalterC = strstr ($platzhalterC,"\n",true);//Text "aufgelöst" $letzterMonatName; //Welcher Monat als letztes Archiviert worden sein müsste //Herausfinden, welcher Monat als letztes archiviert sein müsste if((date("m")) === "01"){ $letzterMonatName = "Oktober"; } else if((date("m")) === "03"){ $letzterMonatName = "Dezember "; } else if((date("m")) === "05"){ $letzterMonatName = "Februar "; } else if((date("m")) === "07"){ $letzterMonatName = "April "; } else if((date("m")) === "09"){ $letzterMonatName = "Juni "; } else if((date("m")) === "11"){ $letzterMonatName = "August "; } else if((date("m")) === "12"){ $letzterMonatName = "Dezember "; }

if ((($platzhalterC === "# [[Wikipedia:Jungwikipedianer/Bilderwettbewerb/Archiv/14|Bilderwettbewerb," . $letzterMonatName . " " . $aktuellesJahr) and ($jahreswechsel === false)) xor (($platzhalterC === "# [[Wikipedia:Jungwikipedianer/Bilderwettbewerb/Archiv/14|Bilderwettbewerb, Dezember " . ($aktuellesJahr - 1)) and ($jahreswechsel)) xor (($platzhalterC === "# [[Wikipedia:Jungwikipedianer/Bilderwettbewerb/Archiv/14|Bilderwettbewerb, Oktober " . ($aktuellesJahr - 1)) and ($jahreswechsel === false))){ $stimmtArchivliste = true; } else{ $stimmtArchivliste = false; } //Wenn alle drei Parameter erfüllt sind if($stimmtArchiv && $stimmtArchivliste && $stimmtZeitpunkt){ $textArchivsammlung = $this->readPage($seiteArchivsammlung); $textArchivsammlung = strstr ($textArchivsammlung, "\n\n[[Kategorie" , true);//Text "aufgelöst" $neueZeile = "# Bilderwettbewerb," . $naechsterMonatText . (date("y")) . ""; $textArchivsammlung = $textArchivsammlung . $neueZeile . "\n\n[[Kategorie"; $textArchiv = ""; //Text, der später archiviert wird $textBW = ""; //Text, der später zurückgelassen wird //Für den Archivtext wird erst der Text ab dem Platzhalter () genommen und von diesem Text dann alles ab der ersten Überschrift $textArchiv = strstr (strstr (($this->readPage($seiteBW)) , "") , "== "); //Dann wird dem Archivtext noch ein anderer Text vorangestellt $textArchiv = "Wikipedia:Jungwikipedianer/Vorlage:HeaderBilderwettbewerb 13\n
\n\n{| Template:Bausteindesign11\n| style=\"font-size: larger;\" | Dieser Bilderwettbewerb ist vorüber. Bitte nicht mehr abstimmen.\n|}\n\n";//Text "aufgelöst" //Text für die Seite des BW vorbereiten $textBW = (strstr ((readPage($seiteBW)) , "" , true)) . ""; //Seiten speichern $this->savePage ($seiteBW, $textBW, $zusammenfassung); //teilgeleerte BW-Seite speichern sleep(3); $this->savePage ($seiteArchivsammlung, $textArchivsammlung, $zusammenfassung); //Archivsammlung speichern sleep(3); $this->savePage ($seiteArchiv, $textArchiv, $zusammenfassung); //Archivierten Text speichern sleep(3); } } } } $Bot = new BWarchivierung ('LarusBot@bottestwiki', 'BWarchivierung', false); // Aufrufen der definierten Passwortdaten in Password.php /*

Fehler in
Zeile 110 hardcode entfernen
Zeile 74
  • /

?>

How we will see unregistered users

edit

Hi!

You get this message because you are an admin on a Wikimedia wiki.

When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed.

Instead of the IP we will show a masked identity. You as an admin will still be able to access the IP. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on better tools to help.

If you have not seen it before, you can read more on Meta. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can subscribe to the weekly technical newsletter.

We have two suggested ways this identity could work. We would appreciate your feedback on which way you think would work best for you and your wiki, now and in the future. You can let us know on the talk page. You can write in your language. The suggestions were posted in October and we will decide after 17 January.

Thank you. /Johan (WMF)

18:19, 4 January 2022 (UTC)