mirror of
				https://github.com/Adam-Ant/ClockworkAprilFools2017
				synced 2025-11-04 08:27:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from flask import Flask, render_template, request, session, redirect, url_for, flash
 | 
						|
from os import urandom as rand
 | 
						|
import pprint
 | 
						|
import ts3
 | 
						|
 | 
						|
pp = pprint.PrettyPrinter(indent=4)
 | 
						|
 | 
						|
app = Flask(__name__)
 | 
						|
app.secret_key = rand(24)
 | 
						|
 | 
						|
 | 
						|
def teamspeakClientAdd(clientName):
 | 
						|
    with ts3.query.TS3Connection('magic.adam-ant.co.uk', '10011') as ts3conn:
 | 
						|
        try:
 | 
						|
            ts3conn.login(client_login_name='serveradmin', client_login_password='DE0xWKTx')
 | 
						|
        except ts3.query.TS3QueryError as err:
 | 
						|
            print(err)
 | 
						|
 | 
						|
        ts3conn.use(sid=1)
 | 
						|
 | 
						|
        try:
 | 
						|
            clientdbid = ts3conn.clientdbfind(pattern=clientName)[0]['cldbid']
 | 
						|
        except ts3.query.TS3QueryError:
 | 
						|
            return False
 | 
						|
 | 
						|
        try:
 | 
						|
            ts3conn.servergroupaddclient(sgid=9, cldbid=clientdbid)
 | 
						|
            ts3conn.servergroupaddclient(sgid=10, cldbid=clientdbid)
 | 
						|
            ts3conn.servergroupaddclient(sgid=11, cldbid=clientdbid)
 | 
						|
            ts3conn.servergroupaddclient(sgid=12, cldbid=clientdbid)
 | 
						|
            return True
 | 
						|
        except:
 | 
						|
            print("ERROR")
 | 
						|
 | 
						|
 | 
						|
def teamspeakClientCheck(clientName):
 | 
						|
    with ts3.query.TS3Connection('magic.adam-ant.co.uk', '10011') as ts3conn:
 | 
						|
        try:
 | 
						|
            ts3conn.login(client_login_name='serveradmin', client_login_password='DE0xWKTx')
 | 
						|
        except ts3.query.TS3QueryError as err:
 | 
						|
            print(err)
 | 
						|
 | 
						|
        ts3conn.use(sid=1)
 | 
						|
 | 
						|
        try:
 | 
						|
            print('before')
 | 
						|
            client = ts3conn.clientfind(pattern=clientName)
 | 
						|
            print('after')
 | 
						|
            clientid = client[0]['clid']
 | 
						|
            groups = ts3conn.clientinfo(clid=clientid)[0]['client_servergroups']
 | 
						|
        except ts3.query.TS3QueryError as ts3err:
 | 
						|
            if ts3err.resp.error['id'] == '512':
 | 
						|
                session.pop('username', None)
 | 
						|
                flash("ERROR: Username not found. Type it carefully cos Clockwork PLUS! is gonna cost ya...", "danger")
 | 
						|
                return redirect(url_for('index'))
 | 
						|
            return "Ooops! Tell Adam this: <br>" + ts3err.resp.error['msg']
 | 
						|
        if "9," in groups:
 | 
						|
            print("FeckOffMate!")
 | 
						|
            flash("ERROR: You already have Clockwork PLUS, ya dingus", "danger")
 | 
						|
            session.pop('username', None)
 | 
						|
            return redirect(url_for('index'))
 | 
						|
        else:
 | 
						|
            return redirect(url_for("payment"))
 | 
						|
 | 
						|
 | 
						|
@app.route("/")
 | 
						|
def index():
 | 
						|
    if 'username' in session:
 | 
						|
        #No longer in the checkout flow, reset!
 | 
						|
        session.pop('username', None)
 | 
						|
    return render_template("index.html")
 | 
						|
 | 
						|
 | 
						|
@app.route("/collectsunlight")
 | 
						|
def wait():
 | 
						|
    if "username" in session:
 | 
						|
        return render_template("wait.html")
 | 
						|
    else:
 | 
						|
        return redirect(url_for("buy"))
 | 
						|
 | 
						|
 | 
						|
@app.route("/pay")
 | 
						|
def payment():
 | 
						|
    if "username" in session:
 | 
						|
        return render_template("payment.html")
 | 
						|
    else:
 | 
						|
        return redirect(url_for("buy"))
 | 
						|
 | 
						|
 | 
						|
@app.route("/activate")
 | 
						|
def activate():
 | 
						|
    if "username" in session:
 | 
						|
        if teamspeakClientAdd(session['username']):
 | 
						|
            session.pop('username', None)
 | 
						|
            flash("Success! You have been upgraded to Clockwork PLUS! Enjoy!", "success")
 | 
						|
            return redirect(url_for('index'))
 | 
						|
        else:
 | 
						|
            return "Adam fucked up! go nag him"
 | 
						|
    else:
 | 
						|
        return redirect(url_for("buy"))
 | 
						|
 | 
						|
 | 
						|
@app.route("/buy", methods=['GET', 'POST'])
 | 
						|
def buy():
 | 
						|
    if request.method == 'POST':
 | 
						|
        session['username'] = request.form['username']
 | 
						|
        return teamspeakClientCheck(session['username'])
 | 
						|
    return render_template("buy.html")
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    app.run(host='0.0.0.0', debug=True)
 |