def main(args): qryr = SourceQuery(args[0], int(args[1])) sinfo = qryr.info() splayer = sorted(qryr.player(), key=lambda p: p['kills'], reverse=True) srules = qryr.rules() print sinfo['hostname'] print '*' * len(sinfo['hostname']) print print "(" + ("Linux" if sinfo['os'] == 'l' else "Windows") + " server, version " + str(sinfo['version']) + (", passworded" if sinfo['passworded'] == 1 else ', unpassworded') + ")" print print str(sinfo['numplayers']) + " of " + str(sinfo['maxplayers']) + " players mooching about:" for p in splayer: pname = "<unnamed>" if p['name'] == "" else p['name'] print " - " + pname + " (" + str(p['kills']) + " kills" + (" as they suck at this game" if p['kills'] == 0 else "") + ", connected for " + str(int(p['time'])) + "s)" print print "Current map is " + sinfo['map'] + ". Next is currently " + srules['sm_nextmap'] + "." + ("Learning through repetition!" if sinfo['map'] == srules['sm_nextmap'] else "") print print "Gravity is currently " + srules['sv_gravity'] print
def ezq(adr, port): """ ez-query, put in an ip/port, get out info, players, rules dictionaries. """ srcquery = SQ(adr, int(port)) players = srcquery.player() info = srcquery.info() rules = srcquery.rules() return info, players, rules
#!/usr/bin/python from SourceQuery import SourceQuery import sys server = SourceQuery('91.121.95.23', 27013) #print server.ping() print server.info() print server.player() print server.rules()