Bearbeiten von „FreewarWiki:Bot/Skripts/auftraglist.php

Zur Navigation springen Zur Suche springen

Achtung

Du bearbeitest diese Seite unangemeldet. Wenn du deine Änderung speicherst, wird deine aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit öffentlich einsehbar. Um effektiver mitarbeiten zu können und deine IP-Adresse zu verbergen, melde dich doch bitte an.

Speichere bitte keine Textversuche ab. Nutze stattdessen die Spielwiese, um dich im Umgang mit der Textverarbeitung im Wiki vertraut zu machen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
{{Scriptquelltextverwendung}}
<div style="background-color:#ff9;border:1px solid #fc0;border-radius:5px;padding:10px;">
<div style="background-color:#ff9;border:1px solid #fc0;border-radius:5px;padding:10px;">
Dies ist ein Skript von [[User:Cembon|Cembon]]. Es ist nicht der vollständige Quelltext des Bots, sondern nur die benötigten Teile. Wenn du hier Änderungen machst, schreibe bitte auf meine [[User Talk:Cembon|Diskussionsseite]] <br/>
Dies ist ein Skript von [[User:Cembon|Cembon]]. Es ist nicht der vollständige Quelltext des Bots, sondern nur die benötigten Teile. Wenn du hier Änderungen machst, schreibe bitte auf meine [[User Talk:Cembon|Diskussionsseite]] <br/>
Eine Online-Version des Skriptes findet sich [http://zabu.fwtools.de/auftragslist.php hier]. Die Auftragsliste wird dann [http://zabu.fwtools.de/output.txt dort] abgespeichert. <br />
--[[User:Cembon|Cembon]] ([[User Talk:Cembon|Diskussion]] | [[Spezial:Beiträge/Cembon|Beiträge]]) 13:25, 26. Feb. 2012 (CET)
--[[User:Cembon|Cembon]] ([[User Talk:Cembon|Diskussion]] | [[Spezial:Beiträge/Cembon|Beiträge]]) 13:25, 26. Feb. 2012 (CET)
</div>
</div>
Zeile 13: Zeile 11:
private $nick;
private $nick;
public function __construct($name, $server) {
public function mwBot($name, $server) {
$this->nick = $name;
$this->nick = $name;
$this->server = $server;
$this->server = $server;
Zeile 32: Zeile 30:
$result = curl_exec($c);
$result = curl_exec($c);
curl_close($c);
curl_close($c);
$decoded = json_decode($result, true);
return json_decode($result,true)['query'];
return $decoded['query'];
}
}
Zeile 42: Zeile 39:
private function getContent($title) {
private function getContent($title) {
$this->status('Hole Artikel: ' . htmlentities($title));
$this->status('Hole Artikel: ' . htmlentities($title));
$result = $this->getAPI('action=query&prop=info|revisions&titles=' . urlencode($title) . '&rvprop=timestamp|content&intoken=edit');
$pages = $this->getAPI('action=query&prop=info|revisions&titles=' . urlencode($title) . '&rvprop=timestamp|content&intoken=edit')['pages'];
$pages = $result['pages'];
foreach($pages as $page) {
foreach($pages as $page) {
return $page['revisions'][0]['*'];
return $page['revisions'][0]['*'];
Zeile 62: Zeile 58:
$out .= htmlentities("Die Buttons neben den Überschriften können zum Sortieren angeklickt werden. Da die Liste sehr lang ist, kann dies allerdings einige Sekunden dauern.");
$out .= htmlentities("Die Buttons neben den Überschriften können zum Sortieren angeklickt werden. Da die Liste sehr lang ist, kann dies allerdings einige Sekunden dauern.");
$out .= "\n\n";
$out .= "\n\n";
$out .= "{| class=\"sortable wikitable\" style=\"text-align:right;\"\n";
$out .= "{| {{Prettytable|text-align:right;}} class=sortable\n";
$out .= "! align=\"center\" | Auftrag\n";
$out .= "! align=\"center\" | Auftrag\n";
$out .= "! align=\"center\" | Gold\n";
$out .= "! align=\"center\" | Gold\n";
Zeile 77: Zeile 73:
preg_match('#Zeit=\W*([0-9]+)#si', $content, $zeit);
preg_match('#Zeit=\W*([0-9]+)#si', $content, $zeit);
preg_match('#Friedensmission=\W*(\w+)#si', $content, $fm);
preg_match('#Friedensmission=\W*(\w+)#si', $content, $fm);
$out .= "| align=\"left\" | [[" . mb_convert_encoding($page['title'], 'UTF-8') . "|" . str_replace('Auftrag:', '', mb_convert_encoding($page['title'], 'UTF-8')) . "]]" .  
$out .= "| align=\"left\" | [[" . $page['title'] . "|" . str_replace('Auftrag:', '', $page['title']) . "]]" .  
"\n|{{SortKey|{{nts|" . $gold[1] . "}}|" . $gold[1] . "}}\n" .  
"\n|{{SortKey|{{nts|" . $gold[1] . "}}|" . $gold[1] . "}}\n" .  
"|{{SortKey|{{nts|" . $ap[1] . "}}|" . $ap[1] . "}}\n" .  
"|{{SortKey|{{nts|" . $ap[1] . "}}|" . $ap[1] . "}}\n" .  
Zeile 84: Zeile 80:
(($fm[1]=='Ja' || $fm[1]=='ja')?"background-color:#0a0 !important;":($fm[1]=='semi'?"background-color:#ff9 !important;":"")) . "\" | {{SortKey|{{nts|" .  
(($fm[1]=='Ja' || $fm[1]=='ja')?"background-color:#0a0 !important;":($fm[1]=='semi'?"background-color:#ff9 !important;":"")) . "\" | {{SortKey|{{nts|" .  
(($fm[1]=='Ja' || $fm[1]=='ja')?"2":($fm[1]=='semi'?"1":"0")) . "}}|" .  
(($fm[1]=='Ja' || $fm[1]=='ja')?"2":($fm[1]=='semi'?"1":"0")) . "}}|" .  
(($fm[1]=='Ja' || $fm[1]=='ja')?'ja':($fm[1]=='semi'?'&auml;hnlich':'nein')) . "}}\n|-\n";
(($fm[1]=='Ja' || $fm[1]=='ja')?'ja':($fm[1]=='semi'?'ähnlich':'nein')) . "}}\n|-\n";
} else {
} else {
$this->status($page['title'] . 'wurde &uuml;bersprungen: Ist kein Auftrag', 80);
$this->status($page['title'] . 'wurde &uuml;bersprungen: Ist kein Auftrag', 80);
Zeile 90: Zeile 86:
}
}
return substr($out, 0, -2) . "}\n [[Kategorie:Auftr&auml;ge|!]]";
return substr($out, 0, -2) . "}";
}
}
public function print2file($str, $file = 'output.txt') {
public function print2file($str) {
return file_put_contents($file, $str);
$fo = fopen('output.txt', "w");
fwrite($fo, $str);
fclose($fo);
}
}
}
}
Zeile 101: Zeile 99:
$bot = new mwBot('Beispieluser', 'www.fwwiki.de');
$bot = new mwBot('Beispieluser', 'www.fwwiki.de');
//HINWEIS: Skript schreibt Output in die Textdatei output.txt, evtl muss diese bestehen und die nötigen Rechte gegeben sein!
//HINWEIS: Skript schreibt Output in die Textdatei output.txt, evtl muss diese bestehen und die nötigen Rechte gegeben sein!
if (false === $bot->print2file($bot->getAuftragsgold())) {
$bot->print2file($bot->getAuftragsgold());
  echo 'Daten konnten nicht geschrieben werden, Datei "output.txt" vorhanden und beschreibbar?';
}
</pre>
</pre>

Bitte beachte, dass alle Beiträge zu FreewarWiki von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter FreewarWiki:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Die folgende Vorlage wird auf dieser Seite verwendet: