# HG changeset patch # User kevin@localhost.localdomain # Date 1225598371 -28800 # Node ID 93f29a1858517ed67d92d25e69b0ea5cde2f3b74 # Parent 3ba3edda6d1ea939c5b54c278695581c7b90f775 pyikb is no longer necessary diff -r 3ba3edda6d1e -r 93f29a185851 pyikb/Parser.py --- a/pyikb/Parser.py Sun Nov 02 11:32:59 2008 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -import re,string -from sgmllib import SGMLParser - -class ContentParser(SGMLParser): - def __init__(self): - SGMLParser.__init__(self) - self.anchor = {'link':'', 'title':''} - self.anchorlist = [] - self.liattr={} - self.inside_elements=['site'] - self.pat=re.compile('\r|\t|\n') - - def start_a(self, attributes): - """For each anchor tag, pay attention to the href and title attributes.""" - href, title = '', '' - for name, value in attributes: - if name.lower() == 'href': href = value - if name.lower() == 'title': title = value - self.anchor['link'] = href - self.anchor['title'] = title - self.inside_elements.append('anchor') - - def end_a(self): - self.anchorlist.append(self.anchor) # store the anchor in a list - self.anchor = {'link':'', 'title':''} # reset the dictionary, - self.inside_elements.pop() - - def handle_data(self, text): - if self.inside_elements[-1]=='anchor': - self.anchor['title'] = text - if self.inside_elements[-1]=='li': - text=self.pat.sub(' ',text) - text=string.split(text," ") - if self.liattcl in self.liattr: - self.liattr[self.liattcl]=self.liattr[self.liattcl]+text - else: - self.liattr[self.liattcl]=text - - def start_li(self,attributes): - self.liattcl='' - attrs = dict(attributes) - if attrs.has_key('class'): - self.liattcl=attrs['class'] - self.inside_elements.append('li') - - def end_li(self): - if self.inside_elements[-1]=='li': - self.inside_elements.pop() - diff -r 3ba3edda6d1e -r 93f29a185851 pyikb/ikariam.py --- a/pyikb/ikariam.py Sun Nov 02 11:32:59 2008 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -#!/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() - - diff -r 3ba3edda6d1e -r 93f29a185851 pyikb/lconf.py --- a/pyikb/lconf.py Sun Nov 02 11:32:59 2008 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -import os,string -class LoadConfigfile(object): - def __init__(self): - profile = os.environ["HOME"]+'/.eagleeye.pm' - self.cd={} - if os.path.isfile(profile): - print "Loading Config file." - cfile=open(profile,'r') - for line in cfile.xreadlines(): - if line[0:3]=='$::': - con=string.split(line[3:-2]) - self.cd[con[0]]=con[2][1:-1] - else: - print "File don't exist." -