diff options
author | makefu <github@syntax-fehler.de> | 2013-11-05 23:40:11 +0100 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2013-11-05 23:40:11 +0100 |
commit | 940d07624c6b82d5e7ec790c2ef49b4694a48794 (patch) | |
tree | 3f4bb46333429d8e9a4f566579f82cacbd3096c9 /.graveyard/27c3_ticket_grabber | |
parent | fe1017207310d0cfd6448750205d08b2455f20a2 (diff) | |
parent | 85c99011060b4b37a760fa24d0a0e23e83413bef (diff) |
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to '.graveyard/27c3_ticket_grabber')
-rw-r--r-- | .graveyard/27c3_ticket_grabber/mechanize_tickets.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/.graveyard/27c3_ticket_grabber/mechanize_tickets.py b/.graveyard/27c3_ticket_grabber/mechanize_tickets.py new file mode 100644 index 00000000..1f12a996 --- /dev/null +++ b/.graveyard/27c3_ticket_grabber/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() |