User:Rick Block/wp1000

This is a pair of scripts to generate the main namespace and all namespaces lists at WP:1000 given a csv file with the raw data (edit counts per user). Depending on your OS, you might need to replace awk with nawk.

Rick Block (talk) 20:34, July 23, 2005 (UTC)

Main namespace script

 * 1) !/bin/bash


 * 1) $1 is the current csv file
 * 2) $2 is the output from the last time (used for positional delta)

cat $1 | grep "^en,[0-9][0-9][0-9]" | sort -r -n -t',' +1 | cat $2 - | awk ' BEGIN { bot["Rambot"] = 1; bot["D6"] = 1; bot["Template namespace initialisation script"] = 1; bot["CanisRufus"] = 1; bot["Robbot"] = 1; bot["Conversion script"] = 1; bot["Guanabot"] = 1; bot["Nobot"] = 1; bot["Grammarbot"] = 1; bot["Wikibot"] = 1; bot["HasharBot"] = 1; bot["Snobot"] = 1; bot["NetBot"] = 1; bot["FlaBot"] = 1; bot["JdforresterBot"] = 1; bot["Pearle"] = 1;

somebot["Ram-Man"] = 1; somebot["KevinBot"] = 1; somebot["Timwi"] = 1;

pad="   "; count=1;

FS=",";

}

// { split($0,fields,"<|>|]|\\[|:|\\|"); sub(" ","",fields[5]); # print " f1=" fields[1] " f2=" fields[2] " f3=" fields[3] " f4=" fields[4] " f5=" fields[5] " f6=" fields[6] " f7=" fields[7] " f8=" fields[8] " f9=" fields[9] " f10=" fields[10] # fields[5] is position # fields[8] is username if (fields[5] != "") { prevpos[fields[8]] = int(fields[5]); } }

/^en/ { # $1 is language # $2 is mainspace edits # $3 is mainspace recent edits # $4 is non-mainspace edits # $5 is non-mainspace recent edits # $6 is current position (unused) # $7 is previous position (unused) # $8 is user if (bot[$8] == 1) { print "" $8 " " $2 "" $3 pad " " } else { if ( prevpos[$8] == "" ) { poschg="new " } else if (count == prevpos[$8]) { poschg="–" } else if (count < prevpos[$8]) { chg=prevpos[$8] - count poschg="&#8593; " chg " " } else { chg=count - prevpos[$8] poschg="&#8595; " chg " " }   somebotchgs=""; if (somebot[$8] == 1) { somebotchgs="&dagger;" }   print "<TD>" count " " $8 "" somebotchgs "</TD><TD align=right>" $2 "</TD><TD align=right>" $3 pad "</TD><TD>" poschg "</TD></TR>"

count=count + 1 if (count >= 1001) exit } } '

All namespaces script

 * 1) !/bin/bash


 * 1) $1 is the current csv file

cat $1 | grep "^en,[0-9][0-9][0-9]" | awk ' BEGIN { FS="," } { total = $2 + $4 totalrecent = $3 + $5 if (total > 1000) { print total "," totalrecent "," $8 } }' | sort -r -n -t',' | awk ' BEGIN { bot["Rambot"] = 1; bot["D6"] = 1; bot["Template namespace initialisation script"] = 1; bot["CanisRufus"] = 1; bot["Robbot"] = 1; bot["Conversion script"] = 1; bot["Guanabot"] = 1; bot["Nobot"] = 1; bot["Grammarbot"] = 1; bot["Wikibot"] = 1; bot["HasharBot"] = 1; bot["Snobot"] = 1; bot["NetBot"] = 1; bot["FlaBot"] = 1; bot["JdforresterBot"] = 1; bot["Pearle"] = 1;

somebot["Ram-Man"] = 1; somebot["KevinBot"] = 1; somebot["Timwi"] = 1;

pad="   "; count=1;

FS=","; }

{ # $1 is total edits # $2 is recent edits # $3 is user if (bot[$3] == 1) { print "<TR><TD><font color=\"gray\">" $3 " </TD><TD align=right>" $1 "</TD><TD align=right>" $2 pad "</TD></TR>" } else { somebotchgs=""; if (somebot[$3] == 1) { somebotchgs="&dagger;" }   print "<TR><TD>" count " " $3 "" somebotchgs "</TD><TD align=right>" $1 "</TD><TD align=right>" $2 pad "</TD></TR>"

count=count + 1 if (count >= 1001) exit } } '