User:SQLBot/adminstats.php

From Wikipedia, the free encyclopedia

<?
require_once('../SxWiki.php');
require_once('./sqlbot-enwiki.php');
require_once('../database.inc');
$user = mysql_escape_string($user);
$templatename = "User:SQL/Adminstats/Core";
$basename = "User:SQL/Adminstats";
mysql_connect('enwiki-p.db.ts.wikimedia.org',$toolserver_username,$toolserver_password);
@mysql_select_db('enwiki_p') or print mysql_error();
function processadmin ($user) {
        global $basename;
        global $templatename;
        $query = "SELECT count(rev_id) FROM revision WHERE rev_user_text = '$user'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $out = '{{' . $templatename;
        $numsqlbot = $row['count(rev_id)'];
        $out = $out . "|edits=$numsqlbot";
        $query = "SELECT * FROM user WHERE user_name = '$user'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $uid = $row[user_id];
        $numall = $row[user_editcount];
        $out = $out . "|ed=$numall";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_type = 'newusers'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $newusers = $row['count(log_action)'];
        $out = $out . "|created=$newusers";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_action = 'delete'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $deletions = $row['count(log_action)'];
        $out = $out . "|deleted=$deletions";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_action = 'restore'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $restores = $row['count(log_action)'];
        $out = $out . "|restored=$restores";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_action = 'block'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $blocks = $row['count(log_action)'];
        $out = $out . "|blocked=$blocks";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_action = 'protect'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $protects = $row['count(log_action)'];
        $out = $out . "|protected=$protects";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_action = 'unprotect'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $unprotects = $row['count(log_action)'];
        $out = $out . "|unprotected=$unprotects";
        $query = "SELECT count(log_action) FROM logging WHERE log_user = '$uid' AND log_action = 'rights'";
        $result = mysql_query($query);
        if(!$result) Die("ERROR: No result returned.");
        $row = mysql_fetch_assoc($result);
        $grants = $row['count(log_action)'];
        $out = $out . "|rights=$grants";
        $out = $out . '|style={{{style|}}}}}';
        echo $out;
        echo "\n";
        $toedit = "$basename/$user\n";
        sxPutPage($toedit, "Updating Admin Stats", $out);
}
$todo = sxGetTransclusion($basename, "2");
#print_r($todo);
foreach ($todo as $adminname) {
        #preg_match("/User(\/ talk):(.*)(\/.*|)/i", $adminname, $matches);
        #preg_match("/User(?: talk):(.*)/i", $adminname, $matches);
        preg_match("/User( talk)?:([^\/]*)/i", $adminname, $matches);
        #print_r($matches);
        $admin = $matches[2];
        processadmin($admin);
}
mysql_close();
?>