Mercurial > eagle-eye
diff pyikb/ikariam.py @ 63:1c42ae140ad3
add Parser.py and lconf.py.
author | kevin@localhost.localdomain |
---|---|
date | Wed, 22 Oct 2008 05:40:57 +0800 |
parents | 610bbe1824ef |
children |
line wrap: on
line diff
--- a/pyikb/ikariam.py Wed Oct 22 04:04:32 2008 +0800 +++ b/pyikb/ikariam.py Wed Oct 22 05:40:57 2008 +0800 @@ -3,60 +3,14 @@ import os,sys,re,string import cookielib,urllib2,urllib # for urlencode import time -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() - +from lconf import LoadConfigfile +from Parser import ContentParser class connection(object): def __init__(self): self.page='' - self.server='s2.ikariam.tw' - self.baseurl='http://'+self.server + 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): @@ -68,8 +22,10 @@ def login(self): if not os.path.isfile(self.COOKIEFILE): print "create cookie file"+self.COOKIEFILE - # /index.php?action=loginAvatar&function=login - params = {"universe":self.server, "name":'username', "password":'passwd'} + 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)