From 1497456856c1364c139d75923f5d56800156fcdc Mon Sep 17 00:00:00 2001 From: gabixdev Date: Tue, 4 Dec 2018 00:46:45 +0100 Subject: [PATCH] Fix invites and switch to new format --- litecord/blueprints/invites.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/litecord/blueprints/invites.py b/litecord/blueprints/invites.py index 51f92bb..d97c106 100644 --- a/litecord/blueprints/invites.py +++ b/litecord/blueprints/invites.py @@ -1,5 +1,6 @@ import datetime import hashlib +import base64 import os from quart import Blueprint, request, current_app as app, jsonify @@ -31,16 +32,17 @@ async def use_invite(user_id, invite_code): if inv is None: raise BadRequest('Unknown invite') - now = datetime.datetime.utcnow() - delta_sec = (now - inv['created_at']).total_seconds() + if inv['max_age'] is not 0: + now = datetime.datetime.utcnow() + delta_sec = (now - inv['created_at']).total_seconds() - if delta_sec > inv['max_age']: - await delete_invite(invite_code) - raise BadRequest('Unknown invite (expiried)') + if delta_sec > inv['max_age']: + await delete_invite(invite_code) + raise BadRequest('Unknown invite (expiried)') - if inv['max_uses'] != -1 and inv['uses'] > inv['max_uses']: - await delete_invite(invite_code) - raise BadRequest('Unknown invite (too many uses)') + if inv['max_uses'] is not -1 and inv['uses'] > inv['max_uses']: + await delete_invite(invite_code) + raise BadRequest('Unknown invite (too many uses)') guild_id = inv['guild_id'] @@ -109,7 +111,7 @@ async def create_invite(channel_id): ChannelType.GUILD_VOICE.value): raise BadRequest('Invalid channel type') - invite_code = hashlib.md5(os.urandom(64)).hexdigest()[:6] + invite_code = base64.b64encode(hashlib.md5(os.urandom(64)).digest()).decode("utf-8").replace("/", "").replace("+", "")[:7] await app.db.execute( """