All column names are now lowercase

This commit is contained in:
Ben
2019-05-29 22:51:38 +01:00
parent 094ee97f4d
commit 3c09434012
19 changed files with 1313 additions and 1292 deletions

View File

@@ -210,5 +210,5 @@ def player_data_attribute(**attrs):
def player_in_room(*room_ids):
def check_room_id(_, p):
return p.room.ID in room_ids
return p.room.id in room_ids
return check(check_room_id)

View File

@@ -1,6 +1,6 @@
from houdini import handlers
from houdini.handlers import XMLPacket, login
from houdini.converters import CredentialsConverter
from houdini.converters import Credentials
from houdini.data.penguin import Penguin
from houdini.data.buddy import BuddyList
from houdini.data.moderator import Ban
@@ -17,21 +17,21 @@ from datetime import datetime
@handlers.handler(XMLPacket('login'))
@handlers.allow_once()
async def handle_login(p, credentials: CredentialsConverter):
async def handle_login(p, credentials: Credentials):
loop = asyncio.get_event_loop()
login_timestamp = time.time()
username, password = credentials
username, password = credentials.username, credentials.password
p.logger.info('{} is logging in!'.format(username))
data = await Penguin.query.where(Penguin.Username == username).gino.first()
data = await Penguin.query.where(Penguin.username == username).gino.first()
if data is None:
p.logger.info('{} failed to login: penguin does not exist')
await p.send_error_and_disconnect(100)
password_correct = await loop.run_in_executor(None, bcrypt.checkpw,
password.encode('utf-8'), data.Password.encode('utf-8'))
password.encode('utf-8'), data.password.encode('utf-8'))
ip_addr = p.peer_name[0]
@@ -64,16 +64,16 @@ async def handle_login(p, credentials: CredentialsConverter):
else:
del p.server.login_attempts[ip_addr]
if not data.Active:
if not data.active:
return await p.send_error_and_disconnect(900)
if data.Permaban:
if data.permaban:
return await p.send_error_and_disconnect(603)
active_ban = await Ban.query.where(Ban.PenguinID == data.ID and Ban.Expires >= datetime.now()).gino.first()
active_ban = await Ban.query.where(Ban.penguin_id == data.id and Ban.expires >= datetime.now()).gino.first()
if active_ban is not None:
hours_left = round((active_ban.Expires - datetime.now()).total_seconds() / 60 / 60)
hours_left = round((active_ban.expires - datetime.now()).total_seconds() / 60 / 60)
if hours_left == 0:
return await p.send_error_and_disconnect(602)
@@ -86,8 +86,10 @@ async def handle_login(p, credentials: CredentialsConverter):
login_key = Crypto.hash(random_key[::-1])
confirmation_hash = Crypto.hash(os.urandom(24))
await p.server.redis.setex('{}.lkey'.format(data.ID), p.server.server_config['KeyTTL'], login_key)
await p.server.redis.setex('{}.ckey'.format(data.ID), p.server.server_config['KeyTTL'], confirmation_hash)
tr = p.server.redis.multi_exec()
tr.setex('{}.lkey'.format(data.id), p.server.server_config['KeyTTL'], login_key)
tr.setex('{}.ckey'.format(data.id), p.server.server_config['KeyTTL'], confirmation_hash)
await tr.execute()
buddy_worlds = []
world_populations = []
@@ -97,8 +99,9 @@ async def handle_login(p, credentials: CredentialsConverter):
for server_name, server_config in servers_config.items():
if server_config['World']:
server_population = await p.server.redis.get('{}.population'.format(server_name))
server_population = (7 if int(server_population) == server_config['Capacity'] \
else int(server_population) / (server_config['Capacity'] / 6)) if server_population else 0
server_population = (7 if int(server_population) == server_config['Capacity']
else int(server_population) / (server_config['Capacity'] / 6)) \
if server_population else 0
server_players = await p.server.redis.smembers('{}.players'.format(server_name))
@@ -114,9 +117,10 @@ async def handle_login(p, credentials: CredentialsConverter):
buddy_worlds.append(server_config['Id'])
break
raw_login_data = '|'.join([str(data.ID), str(data.ID), data.Username, login_key, str(data.approval),
raw_login_data = '|'.join([str(data.id), str(data.id), data.username, login_key, str(data.approval),
str(data.rejection)])
await p.send_xt('l', raw_login_data, confirmation_hash, '', '|'.join(world_populations), '|'.join(buddy_worlds), data.Email)
await p.send_xt('l', raw_login_data, confirmation_hash, '', '|'.join(world_populations), '|'.join(buddy_worlds),
data.email)
handle_version_check = login.handle_version_check
handle_random_key = login.handle_random_key