# $Id$ # get update statistics import os, urllib, re, sys import infogamibot import urllib2 try: site = sys.argv[1] if "@" not in site: raise IndexError except IndexError: print "usage: infogami-status user:pass@site [index]" sys.exit(1) try: index = sys.argv[2] except: index = "/_special/index" bot = infogamibot.Bot(site, cache=10*60) comments = 0 edits = 0 pages = 0 contribs = {} # get comment count from global index for elem in bot.get_html("_special/index").findall(".//a"): if re.match(".*/_comments/\w+$", elem.get("href")): comments += 1 # get revision count (via specified index) for page, title in bot.get_index(index): # print page if page[:2] != "/_" and "_comments" not in page: pages += 1 try: result = bot.get_history(page) except urllib2.HTTPError, v: if v.code == 404: continue print "===", "error reading", bot.site + page, "-", v continue for revision, age, user, host in result: contribs[user] = None if int(revision): edits += 1 print "-" *68 print bot.site print "-" *68 print pages, "pages" print len(contribs), "contributors:" print " ", ", ".join(sorted([user.lower() for user in contribs.keys()])) print edits, "edits" print comments, "comments"