Mercurial > eagle-eye
view pyikb/ikariam.py @ 158:d4b7d8f51e9f
More exactly parser for $HOME/.eagleeye.pm
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sat, 01 Nov 2008 16:35:24 +0800 |
parents | 1c42ae140ad3 |
children |
line wrap: on
line source
#!/usr/bin/python # -*- coding: utf-8 -*- import os,sys,re,string import cookielib,urllib2,urllib # for urlencode import time from lconf import LoadConfigfile from Parser import ContentParser class connection(object): def __init__(self): self.page='' self.confdata=LoadConfigfile().cd self.baseurl='http://'+self.confdata['server'] self.COOKIEFILE = '/tmp/ikcookies.lwp' self.cj = cookielib.LWPCookieJar() if os.path.isfile(self.COOKIEFILE): self.cj.load(self.COOKIEFILE) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj)) opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.12pre) Gecko/20071220 BonEcho/2.0.0.12pre')] urllib2.install_opener(opener) def login(self): if not os.path.isfile(self.COOKIEFILE): print "create cookie file"+self.COOKIEFILE params = {"universe":self.confdata['server'], \ "name":self.confdata['user'], \ "password":self.confdata['pass']} data = urllib.urlencode(params) self.page=urllib2.urlopen(self.baseurl+'/index.php?action=loginAvatar&function=login',data).read() self.cj.save(self.COOKIEFILE) return 1 def parser(self): parser=ContentParser() parser.feed(self.page) parser.close for x in parser.liattr.keys(): print x,parser.liattr[x] #parser.anchorlist: def logout(self): logout=urllib2.urlopen(self.baseurl+'/index.php?action=loginAvatar&function=logout').read() os.remove(self.COOKIEFILE) return 1 def plunder(self): '/index.php?view=plunder&destinationCityId=1978' def upgradetest(self): urllib2.urlopen(self.baseurl+'/index.php?view=academy&id=117257&position=9').read() params = {"action":'CityScreen', \ "function":'upgradeBuilding', \ "id":'117257',\ "position":'9',\ "level":'7',\ "oldView":'academy'} print urllib2.urlopen(self.baseurl+'/index.php?view=townHall&id=117257&position=0#upgrade',urllib.urlencode(params)).read() return 1 def help(): print ("Usage: %s [Option] [Channel] [second]") % os.path.basename(sys.argv[0]) print ("Option: ") helplist=[ ("-h","--help","show this usage message."), ("-g","--game","Login to the game") ] helplist.sort() for x in helplist: print ("\t%2s, %-25s %s" % x) if __name__=='__main__': if len(sys.argv) == 1: help() sys.exit(2) # common exit code for syntax error else: arglist=sys.argv[1:] if arglist[0] in ('--game','-g'): gc=connection() gc.login() gc.parser() gc.logout()