]> jfr.im git - irc/rizon/acid.git/blob - pyva/src/main/python/internets/api/idlerpg.py
.gitignore: Ignore all pyva logs
[irc/rizon/acid.git] / pyva / src / main / python / internets / api / idlerpg.py
1 import urllib
2 from StringIO import StringIO
3 from xml.dom.minidom import Element, parse
4 from feed import XmlFeed, HtmlFeed
5
6
7 class IrpgPlayer(object):
8 def __init__(self, name):
9 url = 'http://idlerpg.rizon.net/xml.php?'
10 url += urllib.urlencode({'player': name})
11
12 # we do our own url -> XML document translation here
13 # because we need to replace bad irc control characters with something we cn actually handle
14 feed = HtmlFeed(url)
15 # we'll do replacements and print out the right values later, when we fix bare @ handling (UModule): .replace(chr(2), '@b').replace(chr(3), '@c').replace(chr(15), '@o').replace(chr(31), '@u')
16 feed_data = feed.html().replace(chr(2), '').replace(chr(3), '').replace(chr(15), '').replace(chr(31), '')
17 element = parse(StringIO(feed_data))
18
19 xml = XmlFeed(element)
20 xml = xml.elements('/player')[0]
21 self.name = xml.text('username')
22 self.is_admin = xml.bool('isadmin')
23 self.level = xml.int('level')
24 self.classe = xml.text('class')
25 self.ttl = xml.int('ttl')
26 self.idled_for = xml.int('totalidled')
27 self.is_online = xml.bool('online')
28 alignment = xml.text('alignment')
29 if alignment == 'g':
30 self.alignment = 'Good'
31 elif alignment == 'e':
32 self.alignment = 'Evil'
33 else:
34 self.alignment = 'Neutral'