view pyikb/ikariam.py @ 186:270e608bb0b6

branch merged.
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Sun, 02 Nov 2008 18:36:28 +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()