Thread: [pyKoL-users] SF.net SVN: pykol: [8] kolsite.py
Brought to you by:
scelis
From: <mi...@us...> - 2007-03-31 20:35:01
|
Revision: 8 http://pykol.svn.sourceforge.net/pykol/?rev=8&view=rev Author: misza13 Date: 2007-03-31 13:35:01 -0700 (Sat, 31 Mar 2007) Log Message: ----------- Allow non-secure login fallback. Modified Paths: -------------- kolsite.py Modified: kolsite.py =================================================================== --- kolsite.py 2007-03-31 20:31:25 UTC (rev 7) +++ kolsite.py 2007-03-31 20:35:01 UTC (rev 8) @@ -85,9 +85,11 @@ formFields = {} formFields['loggingin'] = 'Yup.' formFields['loginname'] = nick - formFields['challenge'] = challenge - formFields['response'] = challengePassword(challenge,password) - #formFields['password'] = password + if challenge: + formFields['challenge'] = challenge + formFields['response'] = challengePassword(challenge,password) + else" + formFields['password'] = password formFields['secure'] = '1' print 'Now logging in...' @@ -97,7 +99,6 @@ self.cookie = response.getheader('set-cookie') return - #print response.status if re.search('Bad password.',data): raise LoginError, 'Bad password.' elif re.search('Too many login failures from this IP.',data): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mi...@us...> - 2007-03-31 21:05:49
|
Revision: 9 http://pykol.svn.sourceforge.net/pykol/?rev=9&view=rev Author: misza13 Date: 2007-03-31 14:05:49 -0700 (Sat, 31 Mar 2007) Log Message: ----------- Syntax error. Modified Paths: -------------- kolsite.py Modified: kolsite.py =================================================================== --- kolsite.py 2007-03-31 20:35:01 UTC (rev 8) +++ kolsite.py 2007-03-31 21:05:49 UTC (rev 9) @@ -88,7 +88,7 @@ if challenge: formFields['challenge'] = challenge formFields['response'] = challengePassword(challenge,password) - else" + else: formFields['password'] = password formFields['secure'] = '1' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mi...@us...> - 2007-04-07 20:43:01
|
Revision: 10 http://pykol.svn.sourceforge.net/pykol/?rev=10&view=rev Author: misza13 Date: 2007-04-07 13:42:58 -0700 (Sat, 07 Apr 2007) Log Message: ----------- Major improvement of the login system (supports server rotation). Modified Paths: -------------- kolsite.py Modified: kolsite.py =================================================================== --- kolsite.py 2007-03-31 21:05:49 UTC (rev 9) +++ kolsite.py 2007-04-07 20:42:58 UTC (rev 10) @@ -41,16 +41,18 @@ class KoLSite: - def __init__(self, hostname): - self.hostname = hostname - self.cookie = '' + def __init__(self): + self.hostname = 'www.kingdomofloathing.com' + self.cookie = None def getPage(self, address, data=''): + #print 'GET http://' + self.hostname + '/' + address conn = httplib.HTTPConnection(self.hostname) conn.putrequest('GET', '/' + address) - conn.putheader('Cookie', self.cookie) + if self.cookie: + conn.putheader('Cookie', self.cookie) conn.endheaders() conn.send('') @@ -66,10 +68,14 @@ def postData(self, address, data=''): + #print 'POST http://' + self.hostname + '/' + address conn = httplib.HTTPConnection(self.hostname) conn.putrequest('POST', '/' + address) + if self.cookie: + conn.putheader('Cookie', self.cookie) conn.putheader('Content-Length', str(len(data))) + conn.putheader('Content-Type', 'application/x-www-form-urlencoded') conn.endheaders() conn.send(data) @@ -86,13 +92,14 @@ formFields['loggingin'] = 'Yup.' formFields['loginname'] = nick if challenge: + print 'Logging in using challenge...' formFields['challenge'] = challenge formFields['response'] = challengePassword(challenge,password) else: + print 'Logging in without challenge...' formFields['password'] = password formFields['secure'] = '1' - print 'Now logging in...' response, data = self.postForm('login.php',formFields) if response.status == 302: @@ -111,7 +118,17 @@ def getChallenge(self): print 'Getting login challenge...' - response, data = self.getPage('login.php') + response, data = self.getPage('') + while response.status == 302: + #We got redirected + locRE = re.search('http://(www\d?.kingdomofloathing.com)/(.*)',response.getheader('location')) + if locRE: #Bounced off to a different server? + self.hostname = locRE.group(1) + response, data = self.getPage(locRE.group(2)) + else: #Same server, getting loginid= + response, data = self.getPage(response.getheader('location')) + + #We're there. Looking for challenge... challenge = re.search('<input type=hidden name=challenge value="([0-9a-f]+)">',data) if challenge: return challenge.group(1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mi...@us...> - 2007-05-04 21:56:35
|
Revision: 18 http://pykol.svn.sourceforge.net/pykol/?rev=18&view=rev Author: misza13 Date: 2007-05-04 14:56:36 -0700 (Fri, 04 May 2007) Log Message: ----------- Added temporary cookie storage. Modified Paths: -------------- kolsite.py Modified: kolsite.py =================================================================== --- kolsite.py 2007-05-04 21:03:07 UTC (rev 17) +++ kolsite.py 2007-05-04 21:56:36 UTC (rev 18) @@ -90,6 +90,20 @@ def doLogin(self, nick, password): + try: + cookie = file('cookie','r').readlines() + self.cookie = cookie[1][:-1] + self.hostname = cookie[0][:-1] + except: + self.cookie = None + + if self.cookie: + print 'Trying a recovered cookie...' + response, data = self.getPage('main.php') + if data or response.getheader('location')=='fight.php': + print "Successfully recovered cookie file." + return + challenge = self.getChallenge() formFields = {} @@ -108,6 +122,8 @@ if response.status == 302: self.cookie = response.getheader('set-cookie') + file('cookie','w+').write('%s\n%s\n' % (self.hostname,self.cookie)) + print 'Saved cookie file.' return if re.search('Bad password.',data): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |