# HG changeset patch # User kevin@localhost.localdomain # Date 1225785685 -28800 # Node ID 785c89e5db32f56de403de4688ae953602397937 # Parent 4aad04928f66ab1ca5493f8952b53c236838dd0e Remove those file, and change the addheader from fake moz diff -r 4aad04928f66 -r 785c89e5db32 pyikb/Parser.py --- a/pyikb/Parser.py Tue Nov 04 15:13:46 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 4aad04928f66 -r 785c89e5db32 pyikb/ikariam.py --- a/pyikb/ikariam.py Tue Nov 04 15:13:46 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 4aad04928f66 -r 785c89e5db32 pyikb/lconf.py --- a/pyikb/lconf.py Tue Nov 04 15:13:46 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." - diff -r 4aad04928f66 -r 785c89e5db32 pyikriam/ikariam.py --- a/pyikriam/ikariam.py Tue Nov 04 15:13:46 2008 +0800 +++ b/pyikriam/ikariam.py Tue Nov 04 16:01:25 2008 +0800 @@ -11,12 +11,15 @@ class fake_moz(object): __metaclass__ = decorator - def __init__(self): + def __init__(self,headers=0): + fakeheaders=[('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')] + if headers: + fakeheaders=fakeheaders+headers super(fake_moz, self).__init__() cookie_jar = cookielib.LWPCookieJar() cookie_proc = urllib2.HTTPCookieProcessor(cookie_jar) opener = urllib2.build_opener(cookie_proc) - 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')] + opener.addheaders = fakeheaders fake_moz.set_backend(self, opener) self.cookie_jar = cookie_jar pass @@ -29,16 +32,14 @@ COOKIEFILE = '/tmp/ikariam.lwp' def __init__(self): - browser = fake_moz() - self.browser = browser - self._cookie_jar = browser.cookie_jar + self.browser = fake_moz() + self._cookie_jar = self.browser.cookie_jar if os.path.isfile(self.COOKIEFILE): self._cookie_jar.load(self.COOKIEFILE) pass - urllib2.install_opener(browser) - + urllib2.install_opener(self.browser) self.confdata=LoadConfigfile().cd self.baseurl='http://'+self.confdata['server']