Mercurial > eagle-eye
diff pyikb/ikariam.py @ 68:4ba1e981716d
merged kevint and hychen's work.
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Wed, 22 Oct 2008 06:24:39 +0800 |
parents | 1c42ae140ad3 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pyikb/ikariam.py Wed Oct 22 06:24:39 2008 +0800 @@ -0,0 +1,85 @@ +#!/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() + +