Commit 3eebbf59 authored by Freddy's avatar Freddy

Add TranskriptionKenny.php

Summary: Moves sections with {{Erl.}} to the right archive…

Reviewers: O5 LarusBot, Morten_Haan, Luke

Reviewed By: O5 LarusBot, Morten_Haan, Luke

Subscribers: MGChecker, Luke, Morten_Haan

Differential Revision: https://rcm-2.wmflabs.org/D462
parent 1995a0e8
#!/usr/bin/php
<?php
include './Core/BotCore.php';
/** TranskriptionKenny.php
* Verschiebt die mit {{Erl.}} markierten Abschnitte auf auf die Unterseite /Erledigt
* @Author Freddy2001 <freddy2001@wikipedia.de>
* @Version 0.1
* @Status Alpha
*/
class TranskriptionKenny extends Core {
public function editCheck ($Job) {
$allowed = $this->readPage("User:LarusBot/active/" . $Job);
if($allowed == "true") {
echo "Job nicht gesperrt";
} else {
die("Job durch Benutzer onwiki gesperrt. Ende.\n");
}
echo "\n\n";
}
public function TranskriptionKenny($Account, $Job, $pUseHTTPS = true) {
$this->initcurl($Account, $Job, $pUseHTTPS = true);
echo "--- TranskriptionKenny ---\nDurchlauf: " . date('l jS F Y H:i:s') . "\n---\n";
//$this->editCheck($Job);
$page = "User:Kenny McFly/Transkription";
$archivpage = "User:Kenny McFly/Transkription/Archiv";
$content = $this->readPage($page);
$abschnitt = $this->getTableOfContents($page);
//print_r($abschnitt);
// Aufteilen
$start = 1;
$alleabschnitte = count($abschnitt) - $start;
$i = $start;
for($i = $start; $i < $alleabschnitte; $i++) {
if($abschnitt[$i][0] == 2) {
$levelzweiabschnitt[] = $abschnitt[$i][3];
}
}
// print_r($levelzweiabschnitt);
// Filtern
for($i = 0; $i < count($levelzweiabschnitt); $i++) {
$abschnitt = $this->readSection($page, $levelzweiabschnitt[$i]);
$abschnitt = explode("\n", $abschnitt);
$abschnittstitel = $abschnitt[0];
$archiv[$i][] = $abschnittstitel;
for($j = 0; $j < count($abschnitt); $j++) {
if(stristr($abschnitt[$j], "{{Erl.}}") !== false) {
$archiv[$i][] = $abschnitt[$j];
}
}
}
// Archivieren
$archivseite = "";
$archivtoc = $this->getTableOfContents($archivpage);
for($i = 0; $i < count($archiv); $i++) {
print_r($archiv[$i]);
if(count($archiv[$i]) < 2) {
echo "Nixgips";
$isthere = false;
for($j = 0; $j < count($archivtoc); $j++) {
if(stristr($archiv[$i][0], $archivtoc[$j][1]) !== false) {
echo "Bereits im Archiv: nixgips\n";
$archivseite .= $this->readSection($archivpage, $j) . "\n";
}
}
} else {
// for($k=0; $k < count($archiv[$i]); $k++) {
$isthere = false;
for($j = 0; $j < count($archivtoc); $j++) {
if(stristr($archiv[$i][0], $archivtoc[$j][1]) !== false) {
$isthere = true;
}
}
if($isthere == true) {
// Bereits im Archiv
echo "Bereits im Archiv\n";
$archivseite .= $this->readSection($archivpage, $j) . "\n";
for($k = 1; $k < count($archiv[$i]); $k++) {
$archivseite .= $archiv[$i][$k] . "\n";
}
} else {
// Noch nicht im Archiv
echo "Noch nicht im Archiv\n";
for($k = 0; $k < count($archiv[$i]); $k++) {
$archivseite .= $archiv[$i][$k] . "\n";
}
}
}
}
if($archivseite == "") {
$archivseite = $this->readPage($archivpage);
}
// Aufräumen
for($i = 0; $i < count($archiv); $i++) {
for($j = 1; $j < count($archiv[$i]); $j++) {
$content = str_replace($archiv[$i][$j], "", $content);
}
}
// Abspeichern
$this->editPage($page, $content, "Bot: Archiviere");
$this->editPage($archivpage, $archivseite, "Bot: Archiviere");
}
/** getTableOfContents
* Gibt das Inhaltsverzeichnis einer Seite aus
* @param $Page - Titel der Seite
* @author Luke081515
* @returns Zwei dimensionales Array
* @returns Erste Dimension: Der entsprechende Abschnitt
* @retuns Zweite Dimension: [0] => level; [1] => Titel des Abschnitts; [2] => Abschnittsnummer im Inhaltsverzeichnis (z.B. auch 7.5); [3] => Abschnittsnummer, ohne Komma, reiner int;
*/
public function getTableOfContents ($Page) {
try {
$result = $this->httpRequest('action=parse&format=php&maxlag=5&page=' . urlencode ($Page) . '&prop=sections', $this->job, 'GET');
} catch (Exception $e) {
throw $e;
}
$Data = unserialize ($result);
$a=0;
while (isset ($Data['parse']['sections'][$a]['level']) === true) {
$ret [$a] [0] = $Data['parse']['sections'][$a]['level'];
$ret [$a] [1] = $Data['parse']['sections'][$a]['line'];
$ret [$a] [2] = $Data['parse']['sections'][$a]['number'];
$ret [$a] [3] = $Data['parse']['sections'][$a]['index'];
$a++;
}
return $ret;
}
}
$Bot = new TranskriptionKenny ('Bot@beta', 'TranskriptionKenny'); // Hier ein pwd noch mal rein!
?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment