Wikipedia:Featured articles nominated in 2006/scripts
The monthly tables at Wikipedia:Featured articles nominated in 2006 can be generated using the following scripts. The process I've used (on a Mac OS X) is:
- edit script1 to change the month and run it, producing a file
featured.noms.YEAR.MONTH
- carefully check the output (the script makes a guess about who the nominator is, and is sometimes fooled)
- run
script2 featured.noms.YEAR.MONTH
- copy and paste the output into the by year list
Please feel free to use and/or improve these scripts.
--------
Script1:
- !/bin/bash
- get the log files
YEAR=2006
MONTH=October
- for i in January February March April May June July August September October November December ; do
# for j in 2003 2004 2005; do
# /usr/bin/curl "http://en.wikipedia.org/w/index.php?title=Wikipedia:Featured_article_candidates/Featured_log/${i}_$j&action=raw"
# done
- done >featured.logs
- they have transclusions (not more than one per line), so fetch the transclusions as well
i=0
[ "$1" = "" ] && /usr/bin/curl "http://en.wikipedia.org/w/index.php?title=Wikipedia:Featured_article_candidates/Featured_log/${MONTH}_$YEAR&action=raw" |
grep '{{' | cut -n -d '{' -f 3- | cut -n -d '}' -f1 | grep "Wikipedia:Featured" | cut -n -d '|' -f1 | tr " " "_" >transcludes
cat transcludes | while read f; do
let i=$i+1
# make sure there's a line feed
echo
/usr/bin/curl "http://en.wikipedia.org/w/index.php?title=$f&action=raw"
if $i -ge 10 ; then
sleep 5
i=0
fi
done >featured.$YEAR.$MONTH
- now, have all the log files
cat featured.$YEAR.$MONTH | awk -v YEAR=$YEAR -v MONTH=$MONTH '
{
gsub(/[=][=][=][=]/,"",$0)
}
$0 ~ "^===" {
sub(/^[=][=][=]/,"",$0)
article=$0
sub(/[=][=][=].*/,"",article)
}
/[[][[][uU][sS][eE][rR]:/ {
if (article != "") {
user = $0
while ( user !~ /^[[][[][uU][sS][eE][rR]:/ ) {
sub(/^.[^[]*/,"",user)
}
sub(/^[^[]*[[][[][uU][sS][eE][rR]:/,"",user)
user2 = user
sub(/].*/,"",user)
sub(/[|].*/,"",user)
users[user] = users[user] + 1
if (sub(/^[^[]*[[][[][uU][sS][eE][rR]:/,"",user2) == 1) {
sub(/].*/,"",user2)
sub(/[|].*/,"",user2)
users[user2] = users[user2] + 1
} else {
user2 = ""
}
# August 2005 || || Gray Wolf || Sango123
if (user2 == "") {
print "" MONTH " " YEAR " || || " article " || " user ""
} else {
print "" MONTH " " YEAR " || || " article " || " user " & " user2 ""
}
article = ""
}
}' >featured.noms.$YEAR.$MONTH
-----
Script2:
- !/bin/bash
- make a by-month table
cat $1| awk '
BEGIN {
FS=" \\|\\| "
}
{
if ($1 != lastdate) {
print "|}"
monthyear=$1
gsub("[[]*","",monthyear)
gsub("]]","",monthyear)
print "== Nominated in " monthyear " =="
print ":'""'See logs at Wikipedia:Featured article candidates/Featured log/" monthyear "'""'"
print "
class=\"wikitable\" style=\"margin:auto;\" width=\"90%\""
print " | |||
"
print "!Article!!Main page date!!Nominator" } lastdate = $1 print " | |||
"
print " | " $3 " | " $2 " | " $4
} END { print " |
} '