Jump to content

User:Rick Bot/scripts/update wbfan

From Wikipedia, the free encyclopedia
#!/bin/bash

year=`date +%Y`
while [ $year -ge 2003 ]; do
  cat FAnoms.$year
  let year=$year-1
done | awk '
function nomd(nom, article) {
  sub("^ *","",nom)
  sub(" *$","",nom)
  sub("^ *","",article)
  sub(" *$","",article)
  sub("^<.> *","",article)
  sub(" *</.>$","",article)
  user = nom
  if (sub("\\|.*]]","",user) > 0) {
    sub("^..[uU][sS][eE][rR]:","",user)
  }
  user = toupper(substr(user,1,1)) substr(user,2,length(user)-1)
  if (fulluser[user] == "") {
    fulluser[user] = nom
  }
  if (sub("^'"''"'*\\[","[",article) > 0) {
    sub("'"'"'* *$","",article)
  }
  noms[user] = noms[user] "||" article
  nomcount[user] = nomcount[user] + 1
  # print noms[user] >"/dev/stderr"
}

BEGIN {
  FS="\\|\\|"
}

/^\|\|/ {
  if ($4 ~ /]] & /) {
    split($4,multinoms," & ")
    for (nom in multinoms) {
      nomd(multinoms[nom],$2)
    }
  } else {
    nomd($4,$2)
  }
}

END {
  for (nom in nomcount) {
    if (nom != "") {
      print nomcount[nom] "||" fulluser[nom] noms[nom]
    } else {
      print nomcount[nom] "||MISSING" noms[nom]
    }
  }
}
' | tee nomlist.unsorted | sort -t'|' -k 1rn -k 3f| tee nomlist | cat featureds formers - | awk >WBFAN.table '
BEGIN {
  FS="\\|\\|"
}

/^FEATURED/ {
  featured[$2] = 1
  next
} 

/^FORMER/ {
  former[$2] = 1
  next
} 

{
  if ( $2 != "MISSING" ) {
    print "|-"
    print "| " $2 
  }
  numarts = 0
  for ( i=3; i<=NF; i=i+1) {
    sub("\\|.*]]","]]",$i)
    numarts = numarts + 1
    if (numarts > 20) {
      if ( $2 != "MISSING") {
        printf "|-\n||\n"
      }
      numarts = 1
    }
    sub("]] *$","",$i)
    sub("^[[][[]","",$i)
    if (former[$i] > 0) {
      if ( $2 != "MISSING") {
        # print "| [[" $i "|<span style=\"color: #B7410E;\">★</span>]]"
        print "| [[" $i "|☆]]"
      }
      former[$i] = 2
    } else {
      if ( $2 != "MISSING") {
        print "| [[" $i "|★]]"
      }
      if (featured[$i] > 0) {
        featured[$i] = 2
      } else {
        neverfeatured[$i] = 1
      }
    }
  }
}

END {

  for (art in featured) {
    if (featured[art] == 1 ) {
      if (fanonom == 0) {
        print "<!--"
        print "== FAs with no nomination history =="
        fanonom = 1
      }
      print "* [[" art "]]"
    }
  }
  if (fanonom == 1) {
    print "-->"
  }

  for (art in former) {
    if (former[art] == 1 ) {
      if (ffanonom == 0) {
        print "<!--"
        print "== FFAs with no nomination history =="
        ffanonom = 1
      }
      print "* [[" art "]]"
    }
  }
  if (ffanonom == 1) {
    print "-->"
  }

  for (art in neverfeatured) {
    if (art != "Pumping lemma" && art != "Provinces of Thailand" && art != "History of South Carolina") {
      if (histonly == 0) {
        print "<!--"
        print "== Nomination history but neither FA or FFA =="
        histonly = 1
      }
      print "* [[" art "]]"
    }
  }
  if (histonly == 1) {
    print "-->"
  }

}'


/usr/bin/curl "http://en.wikipedia.org/w/index.php?title=Wikipedia:List_of_Wikipedians_by_featured_article_nominations&action=raw" | awk >WBFAN '
/^[|]-$/ {
  skip=1
}

/^[|]}/ {
  skip=0
  while ( getline <"WBFAN.table" ) {
    print $0
  }
  print "|}"
  next
}

{
  if (skip == 1) {
    next
  }
  print $0
}'