# -*- coding: utf-8 -*- # print today's transcript of a campfire room import urllib2 import elementtree.ElementTree as ET roomid = "YOUR ROOM NUMBER HERE" #if the room is at http://mygroup.campfirenow.com/room/123 use 123 userid = "YOUR API TOKEN HERE" #found under "my info" in campfire campfiregroup = "YOUR GROUP HERE" #if your campfire is at http://mygroup.campfirenow.com, use "mygroup" password = "X" # Irrelevant: Campfire identifies you by your API token theurl = "http://%s.campfirenow.com/room/%s/transcript.xml" % (campfiregroup, roomid) passman = urllib2.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None, theurl, userid, password) authhandler = urllib2.HTTPBasicAuthHandler(passman) opener = urllib2.build_opener(authhandler) urllib2.install_opener(opener) data = urllib2.urlopen(theurl)#.read() tree = ET.parse(data) root = tree.getroot() users = {} def idlookup(msguserid): if msguserid in users: #print "dict works" return users[msguserid] else: userurl = "http://%s.campfirenow.com/users/%s.xml" % (campfiregroup, msguserid) #print userurl passman.add_password(None, userurl, userid, password) authhandler = urllib2.HTTPBasicAuthHandler(passman) opener = urllib2.build_opener(authhandler) urllib2.install_opener(opener) userdata = urllib2.urlopen(userurl) usertree = ET.parse(userdata) userroot = usertree.getroot() namenode = userroot.find("name").text users[msguserid] = namenode return users[msguserid] for node in root: bodynode = node.find("body").text #idnode = node.find("user-id").text idnode = node.find("user-id").text if idnode: username = idlookup(node.find("user-id").text) if bodynode: print "%s: %s" % (username, bodynode)