diff options
author | lassulus <Lassulus@googlemail.com> | 2011-11-14 15:35:34 +0100 |
---|---|---|
committer | lassulus <Lassulus@googlemail.com> | 2011-11-14 15:35:34 +0100 |
commit | cdd486bae5227b53a9bd2bd07751aa8da15e5277 (patch) | |
tree | b0ef9f5d36a35d44d8cc0b99a3c133820b4da912 /too_old | |
parent | b92f01466d34d23647a3c619f18a3d1f92400546 (diff) | |
parent | 1f61333b2ae21ccb985e7321f07c2c5c94eb8a4c (diff) |
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'too_old')
-rw-r--r-- | too_old/mechanize_tickets.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/too_old/mechanize_tickets.py b/too_old/mechanize_tickets.py new file mode 100644 index 00000000..1f12a996 --- /dev/null +++ b/too_old/mechanize_tickets.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +import mechanize +import cookielib +import time,sys +USERNAME = 'momo' +PASSWORD = '' + + +def main(): + try: + br = init_browser() + while not do_login(br): + print ("Could Not Login, retrying!") + while not fetch_ticket(br): + time.sleep(0.2) + print ("Could not fetch ticket, retrying!") + except Exception,e: + print ("Caught Exception: %s" % str(e)) + exit (1) + print ("We won? yay") + exit(0) + +def init_browser(): + br = mechanize.Browser() + br.open("https://presale.events.ccc.de/order") + cj = cookielib.LWPCookieJar() + br.set_cookiejar(cj) + br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] + return br +def do_login(br): + br.select_form(nr=0) + br.form['account[username]'] = USERNAME + br.form['account[password]'] = PASSWORD + br.submit() + ret = br.response().read() + if 'Signed in successfully.' in ret: + if not "Confirm Order" in ret: + print("Something else is wrong, cannot find 'Confirm Order' button!") + raise Exception("Cannot find Confirm Order button") + return True + else: return False + +def fetch_ticket(br): + br.select_form(nr=0) + br.submit() + ret = br.response().read() + if not 'There are currently not enough tickets available.' in ret: + print ("we won? Better sleep some time to be sure") + return True + else: return False + +if __name__ == "__main__": + main() |