Share Pastebin
Guest
Public paste!

kahrn

By: a guest | Sep 28th, 2008 | Syntax: Python | Size: 1.72 KB | Hits: 115 | Expires: Never
Copy text to clipboard
  1. """
  2. bf2xml.py
  3.    Ricky Hewitt <kahrny@gmail.com>
  4.    Part of the xbot irc bot.
  5.    
  6.    This script is able to display BF2 server information by
  7.    obtaining and parsing an XML file.
  8.    Relies on game-monitor.com (for now).
  9.    
  10.    TODO: Add Current Map (limited due to limitations of XML feed)
  11. """
  12.  
  13. import urllib
  14. from xml.dom import minidom
  15.  
  16. def get_server_info(HOST="74.53.113.68:16567"):
  17.     """Retrieve information for a given IP address (e.g. 127.0.0.1:16567).
  18.       Output is in the form of a list."""
  19.     HOST_URL = 'http://module.game-monitor.com/%s/data/server.xml' % (HOST)
  20.    
  21.     dom = minidom.parse(urllib.urlopen(HOST_URL))
  22.     for node in dom.getElementsByTagName('ip'):
  23.         server_ip = node.firstChild.data
  24.     for node in dom.getElementsByTagName('port'):
  25.         server_port = node.firstChild.data
  26.        
  27.     for node in dom.getElementsByTagName('name'):
  28.         server_name = node.firstChild.data
  29.     for node in dom.getElementsByTagName('query_time'):
  30.         server_ping = node.firstChild.data
  31.        
  32.     for node in dom.getElementsByTagName('player'):
  33.         server_players = node.firstChild.data
  34.     for node in dom.getElementsByTagName('maxplayer'):
  35.         server_mplayers = node.firstChild.data
  36.        
  37.     for node in dom.getElementsByTagName('link'):
  38.         server_link = node.firstChild.data
  39.        
  40.     server_info = []
  41.     server_info.append(str(server_ip) + ":" + str(server_port) + " : " + str(server_name) + " : " + str(server_players) + "/" + str(server_mplayers) + " : " + str(server_ping))
  42.     #server_info.append(str(server_link))
  43.    
  44.     return server_info
  45.  
  46. if __name__=="__main__":
  47.     serverinfo = get_server_info()
  48.     for i in serverinfo:
  49.         print i