Wikistats/Update scripts

From s23
Jump to navigation Jump to search

-->Wikistats->Update scripts


to be called from the commandline like

php update_wikipedias.php 

Wikipedias[edit]

<?php
# Wikistats by mutante - 2006-02-08 - S23 Wiki - http://s23.org
#

# set user agent
ini_set('user_agent','http://s23.org/wikistats/ | http://meta.wikimedia.org/wiki/User:mutante | mutante@s23.org');

# include config
require_once("config.php");

# connect db
mysql_connect("$dbhost", "$dbname", "$dbpass") or die(mysql_error());
echo "Wikistats Updater by S23-mutante \n Connected to MySQL. \n";

# select db
mysql_select_db("wikistats") or die(mysql_error());
echo "Selected database 'wikistats' \n.";

# select all ordered by good
$query = "select * from wikipedias order by good asc";
$result = mysql_query("$query") or die(mysql_error());
echo "Sent query: '$query'.\n";

# main loop
while($row = mysql_fetch_array( $result )) {
if ($row['prefix']!="") {
$url="http://".$row['prefix'].".wikipedia.org/wiki/Special:Statistics?action=raw";
$remotefile=fopen("$url","r");

if (!$remotefile) {
    echo "Unable to open remote file $url \n";
    fclose ($remotefile);
} else {
echo "Ok opening $url \n";
$buffer = fgets($remotefile);
echo "Buffer: $buffer";
$pieces = explode(";",$buffer);
$total = explode("=",$pieces[0]);
$total = $total[1];
$good = explode("=",$pieces[1]);
$good = $good[1];

# bug protection
if ($good>2147483647) {
$good=0;
}

$views = explode("=",$pieces[2]);
$views = $views[1];
$edits = explode("=",$pieces[3]);
$edits = $edits[1];
$users = explode("=",$pieces[4]);
$users = $users[1];
$admins = explode("=",$pieces[5]);
$admins = $admins[1];
$admins = trim($admins);
echo "Total: $total Good: $good Views: $views Edits: $edits Users: $users Admins: $admins \n";
$query2="update wikipedias set total=\"$total\",good=\"$good\",views=\"$views\",edits=\"$edits\",users=\"$users\",admins=\"$admins\",ts=NOW() where id=\"".$row['id']."\";";
echo "Query: $query2 \n";
$result2 = mysql_query("$query2") or die(mysql_error());
echo "Updated MySQL. Return Code: $result2 \n \n";
fclose ($remotefile);
}
}
}
mysql_close();
echo "Done. Fnord.";
?>

Wikis[edit]

<?php
# Wikistats by mutante - 2006-02-08 - S23 Wiki - http://s23.org
#
# set user agent
ini_set('user_agent','http://s23.org/wikistats/ | http://meta.wikimedia.org/wiki/User:mutante | mutante@s23.org');
# connect db
require_once("config.php");
mysql_connect("$dbhost", "$dbname", "$dbpass") or die(mysql_error());
echo "Wikistats Updater by S23-mutante \n Connected to MySQL. \n";

mysql_select_db("wikistats") or die(mysql_error());
echo "Selected database 'wikistats' \n.";
# select all order by id descending
$query = "select * from wikistats order by id desc";

$result = mysql_query("$query") or die(mysql_error());
echo "Sent query: '$query'.\n";

# sort out non standard link types 
while($row = mysql_fetch_array( $result )) {
if ($row['linktype']=="1") {
$url=$row['url']."Special:Statistics&action=raw";
} else {
$url=$row['url']."Special:Statistics?action=raw";
}
$remotefile=fopen("$url","r");

if (!$remotefile) {
    echo "Unable to open remote file $url \n";
    fclose ($remotefile);
} else {
echo "Ok opening $url \n";
$buffer = fgets($remotefile);
echo "\n Buffer: $buffer \n";
$pieces = explode(";",$buffer);
$total = explode("=",$pieces[0]);
$total = $total[1];
$good = explode("=",$pieces[1]);
$good = $good[1];
echo "\n GOOD $good \n";
if ($good>2147483647) {
$good=0;
}
$views = explode("=",$pieces[2]);
$views = $views[1];
$edits = explode("=",$pieces[3]);
$edits = $edits[1];
$users = explode("=",$pieces[4]);
$users = $users[1];
$admins = explode("=",$pieces[5]);
$admins = $admins[1];
$admins = trim($admins);
echo "Total: $total Good: $good Views: $views Edits: $edits Users: $users Admins: $admins \n";
$query2="update wikistats set total=\"$total\",good=\"$good\",views=\"$views\",edits=\"$edits\",users=\"$users\",admins=\"$admins\" where id=\"".$row['id']."\";";
echo "Query: $query2 \n";
$result2 = mysql_query("$query2") or die(mysql_error());
echo "Updated MySQL. Return Code: $result2 \n \n";
fclose ($remotefile);
}
}
mysql_close();
echo "Done. Fnord.";
?>

Back to Wikistats