summaryrefslogtreecommitdiffstats
path: root/.graveyard/27c3_ticket_grabber
diff options
context:
space:
mode:
authorroot <root@pigstarter.de>2013-11-05 13:24:42 +0100
committerroot <root@pigstarter.de>2013-11-05 13:24:42 +0100
commit5e326f51c58e500285ea3daee91986ee1ea518eb (patch)
tree2b3eccf15e10e4331dcb2d01c9f53620d749f55f /.graveyard/27c3_ticket_grabber
parentae627d2aa73ea6862af3985f1c07e95c6d493275 (diff)
sandbox -> .graveyard
Diffstat (limited to '.graveyard/27c3_ticket_grabber')
-rw-r--r--.graveyard/27c3_ticket_grabber/mechanize_tickets.py53
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()