コード例 #1
0
def dashboard():
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    if 'id' not in user:
        return redirect(url_for('.login'))
    keys = r.table('keys').filter(r.row['owner'] == user['id']).run(rdb)
    return render_template('dashboard.html', name=user['username'], keys=keys)
コード例 #2
0
def delete(key_id):
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    if 'id' not in user:
        return redirect(url_for('.login'))
    if user['id'] not in config['admins']:
        return render_template('gitout.html')
    r.table('keys').get(key_id).delete().run(rdb)
    return redirect(url_for('.admin'))
コード例 #3
0
def admin():
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    if 'id' not in user:
        return redirect(url_for('.login'))
    if user['id'] not in config['admins']:
        return render_template('gitout.html')
    apps = r.table('applications').run(rdb)
    keys = r.table('keys').run(rdb)
    return render_template('admin.html', name=user['username'],  apps=apps, keys=keys)
コード例 #4
0
def callback():
    if request.values.get('error'):
        return request.values['error']
    discord = make_session(state=session.get('oauth2_state'), redirect_uri=request.host_url + 'callback')
    token = discord.fetch_token(
        TOKEN_URL,
        client_secret=config['client_secret'],
        authorization_response=request.url)
    session['oauth2_token'] = token
    return redirect(url_for('.dashboard'))
コード例 #5
0
ファイル: dashboard.py プロジェクト: zunamidev/imgen
    def wrapper(*args, **kwargs):
        if 'user' not in session:
            discord = make_session(token=session.get('oauth2_token'))
            user = discord.get(API_BASE_URL + '/users/@me').json()

            if 'id' not in user:
                return redirect(url_for('.login'))

            session['user'] = user  # TODO: Expiry

        return func(*args, **kwargs)
コード例 #6
0
def unlimited(key_id):
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    if 'id' not in user:
        return redirect(url_for('.login'))
    if user['id'] not in config['admins']:
        return render_template('gitout.html')
    key = r.table('keys').get(key_id).run(rdb)
    if key['unlimited']:
        r.table('keys').get(key_id).update({"unlimited": False}).run(rdb)
    else:
        r.table('keys').get(key_id).update({"unlimited": True}).run(rdb)
    return redirect(url_for('.admin'))
コード例 #7
0
def request_key():
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    if 'id' not in user:
        return redirect(url_for('.login'))
    if request.method == 'GET':
        return render_template('request.html')
    elif request.method == 'POST':
        name = request.form.get('name', None)
        reason = request.form.get('reason', None)
        if not reason or not name:
            result = 'Please enter a name and reason for your application'
            return render_template('result.html', result=result, success=False)
        r.table('applications').insert({
            "owner": user['id'],
            "email": user['email'],
            "name": name,
            "owner_name": f'{user["username"]}#{user["discriminator"]}',
            "reason": reason
        }).run(rdb)
        result = 'Application Submitted 👌'
        return render_template('result.html', result=result, success=True)
コード例 #8
0
def approve(key_id):
    discord = make_session(token=session.get('oauth2_token'))
    user = discord.get(API_BASE_URL + '/users/@me').json()
    if 'id' not in user:
        return redirect(url_for('.login'))
    if user['id'] not in config['admins']:
        return render_template('gitout.html')
    key = r.table('applications').get(key_id).run(rdb)
    m = hashlib.sha256()
    m.update(key['id'].encode())
    m.update(str(randint(10000, 99999)).encode())
    token = m.hexdigest()
    r.table('keys').insert({
        "id": token,
        "name": key['name'],
        "owner": key['owner'],
        "owner_name": key['owner_name'],
        "email": key['email'],
        "total_usage": 0,
        "usages": {},
        "unlimited": False
    }).run(rdb)
    r.table('applications').get(key_id).delete().run(rdb)
    return redirect(url_for('.admin'))
コード例 #9
0
ファイル: dashboard.py プロジェクト: zunamidev/imgen
def login():
    discord = make_session(scope='identify email', redirect_uri=request.host_url + 'callback')
    authorization_url, state = discord.authorization_url(AUTHORIZATION_BASE_URL)
    return redirect(authorization_url)