Kategorien
Bearbeiten von „FreewarWiki:Bot/Skripts/Waffenliste.php“
Zur Navigation springen
Zur Suche springen
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 34: | Zeile 34: | ||
private function getAPI($query) { | private function getAPI($query) { | ||
$c = curl_init(' | $c = curl_init('http://' . $this->server . '/api.php?' . $query . '&format=json'); | ||
curl_setopt($c, CURLOPT_USERAGENT, 'BotFrameWorkApi -- Benutzer:' . $this->nick); | curl_setopt($c, CURLOPT_USERAGENT, 'BotFrameWorkApi -- Benutzer:' . $this->nick); | ||
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); | curl_setopt($c, CURLOPT_RETURNTRANSFER, true); | ||
Zeile 64: | Zeile 64: | ||
$pages = $this->getAPI('action=query&list=categorymembers&cmtitle=Category:' . urlencode($cat) . '&cmlimit=500'); | $pages = $this->getAPI('action=query&list=categorymembers&cmtitle=Category:' . urlencode($cat) . '&cmlimit=500'); | ||
foreach ($pages['categorymembers'] as $page) { | foreach($pages['categorymembers'] as $page) { | ||
$content = $this->getContent($page['title']); | $content = $this->getContent($page['title']); | ||
if ($this->isWaffe($content)) { | if ($this->isWaffe($content)) { | ||
Zeile 80: | Zeile 80: | ||
// Aufbau der Liste | // Aufbau der Liste | ||
$out = "<noinclude> | $out = "<noinclude></noinclude><!--Diese Liste wird von Zeit zu Zeit automatisch aus den Daten aus den einzelnen $cat-Artikeln erstellt (zuletzt am '''" . date("d.m.Y H:i:s") . "'''). Das Script um die Liste zu akualisieren findet ihr hier [[FreewarWiki:Bot/Skripts/Waffenliste.php]]."; | ||
$out .= "\n\n"; | $out .= "\n\n"; | ||
$out .= "Anzahl Waffen: " . $count . " | $out .= "Anzahl Waffen: " . $count . "\n-->{{#vardefine:" . $cat . "Anzahl|" . $count . "}}<!--\n\n"; | ||
// Durchlaufen des Waffen-Arrays und Hinzufuegen zur Liste | // Durchlaufen des Waffen-Arrays und Hinzufuegen zur Liste | ||
foreach($waffenArray as $currentWaffe) { | foreach($waffenArray as $currentWaffe) { | ||
$out .= "\n-->{{{{{Vorlage}}}|Name=" . $currentWaffe->name . "}}<!--" ; | $out .= "\n-->{{{{{Vorlage}}}|Name=" . ($currentWaffe->name) . "}}<!--" ; | ||
} | } | ||
return $out . " | return $out . "\n-->"; | ||
} | } | ||
Zeile 94: | Zeile 94: | ||
private function isWaffe($content) { | private function isWaffe($content) { | ||
// Überprüfung ob der Artikel dem Layout für eine Angriffswaffe entspricht | // Überprüfung ob der Artikel dem Layout für eine Angriffswaffe entspricht | ||
if (preg_match('~Item/Layout|Typ=awaffe~', $content)) { | if ( preg_match('~Item/Layout|Typ=awaffe~', $content) ) { | ||
// Überprüfung ob der Artikel eine saisonale Waffe beschreibt | // Überprüfung ob der Artikel eine saisonale Waffe beschreibt | ||
if (!preg_match('/Saisonale Items/', $content)) { | if ( !(preg_match('/Saisonale Items/', $content)) ) { | ||
return true; | return true; | ||
} | } | ||
Zeile 105: | Zeile 105: | ||
/* Erstellen eines neuen Waffen-Objektes */ | /* Erstellen eines neuen Waffen-Objektes */ | ||
private function createWaffe($content, $name) { | private function createWaffe($content, $name) { | ||
preg_match('# | preg_match('#Stärke=\W*([0-9]+)#si', $content, $staerke); | ||
return new Waffe($name, $staerke[1]); | return new Waffe( $name, ($staerke[1]) ); | ||
} | } | ||
Zeile 119: | Zeile 119: | ||
function __construct($name, $staerke){ | function __construct($name, $staerke){ | ||
$this->name = $name; | $this->name = $name; | ||
$this->staerke = $staerke; | $this->staerke = $staerke; | ||
} | } | ||
Zeile 133: | Zeile 133: | ||
} | } | ||
} | } | ||
</pre> | </pre> |