<?php
ini_set('memory_limit','16M');
require_once( '/home/cyberpower678/Peachy/Init.php' );
$site = Peachy::newWiki( "cyberbotii" );
$site->set_runpage("User:Cyberbot II/Run/PC");
$request = $site->get_http()->get( 'https://en.wikipedia.org/w/index.php?title=Special:StablePages&offset=&limit=500000000' );
echo "Retrieving Protected Pages...\n";
//echo $request;
preg_match_all('/'.
'\<li\>\<a href=(.*?) title=(.*?)\>(.*?)\<\/a\>(.*?)\[autoreview=(.*?)\]/i',$request,$list);
//print_r($list);
$names = $list[3];
$level = $list[5];
echo "Retrieved protected pages.\n";
$i = 0;
//Tag each page with a protection template
foreach($names as $page) {
$buffer = initPage($page)->get_text();
echo "Processing ".$page."...\n";
if( $level[$i] == "autoconfirmed" ) {
$template = "";
echo "Tagging ".$page." with ...\n";
if( preg_match('/\{\{pp-pc1/i', $buffer ) ) {
echo "Page already tagged with !\n";
} else {
if ($buffer == initPage($page)->get_text()) {
initPage($page)->edit($template."\n".$buffer, "Tagging page with PC1 protection template.");
} else {
echo "Page is different from the analyzed buffer. Aborting edit...";
}
}
} else {
$template = "{{pp-pc2}}";
echo "Tagging ".$page." with {{pp-pc2}}...\n";
if( preg_match('/\{\{pp-pc2/i', $buffer ) ) {
echo "Page already tagged with {{pp-pc2}}!\n";
} else {
if ($buffer == initPage($page)->get_text()) {
initPage($page)->edit($template."\n".$buffer, "Tagging page with PC2 protection template.");
} else {
echo "Page is different from the analyzed buffer. Aborting edit...";
}
}
}
$i = $i+1;
}
//Removing templates from unprotected pages
$templatelist = initPage("Template:Pp-pc1")->get_transclusions();
echo "\nVerifying that all pages are tagged correctly...\n";
foreach($templatelist as $page) {
$i = 0;
$isprotected = false;
foreach($names as $page2) {
if(htmlspecialchars ($page) == $page2) {
if($level[$i] == "autoconfirmed") {
echo $page." has a correct tag\n";
$isprotected = true;
}
}
$i = $i+1;
}
if($isprotected == false) {
echo $page." is not PC1 protected. Removing template...\n";
initPage($page)->edit(preg_replace('/\{\{(P)?(p)?p-pc1(.*?)\}\}/i','',initPage($page)->get_text()),"Removing . Page is not protected.");
}
}
$templatelist = initPage("Template:Pp-pc2")->get_transclusions();
foreach($templatelist as $page) {
$i = 0;
$isprotected = false;
foreach($names as $page2) {
if($page == $page2) {
if($level[$i] == "review") {
echo $page." has a correct tag\n";
$isprotected = true;
}
}
$i = $i+1;
}
if($isprotected == false) {
echo $page." is not PC2 protected. Removing template...\n";
initPage($page)->edit(preg_replace('/\{\{(P)?(p)?p-pc2(.*?)\}\}/i','',initPage($page)->get_text()),"Removing {{Pp-pc2}}. Page is not protected.");
}
}
echo "Task completed!";