User:GrabberBot/update counts.py

From The Battle for Wesnoth Wiki
< User:GrabberBot
Revision as of 18:31, 18 February 2006 by Allefant (talk | contribs) (new script for grabberbot to update contributor stats)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
import re, urlgrabber.grabber, sys
import mediawiki

mw = mediawiki.MediaWiki()

allpages = urlgrabber.grabber.urlread("http://www.wesnoth.org/wiki/Special:Allpages&namespace=102")
allpages = re.compile('title="(.*?)"').findall(allpages)
counts = {}

allpages.remove("Special:Allpages")
print allpages
for page in allpages:
    print page,
    c = mw.fetch(page)
    count = 0
    if c:
        for line in c.splitlines():
            if re.compile(".*?://.*?\\.(gif|jpg|png|bmp|tga|jpeg)", re.I).match(line):
                count += 1
    counts[page] = count
    print count

allpages.sort()
newlist = ["* [[%s]] (%d)" % (x, counts[x]) for x in allpages]
newlist = "\n".join(newlist)
newlist = """
== Contributors ==

%s

== See Also ==""" % newlist

glib = mw.fetch("GraphicLibrary")
if glib and glib != newlist:
    glib = re.compile(r"\n== Contributors ==\s*(.*?)\s*\n== See Also ==", re.S).sub(newlist, glib)
    mw.post("GraphicLibrary", glib, "automated update of contributor stats")
    print "Successfully updated GraphicLibrary counts!"
This page was last edited on 18 February 2006, at 18:31.