Move to basic client/server structure.

This commit is contained in:
luxick
2018-03-03 14:36:41 +01:00
parent cb129eddd1
commit 8516650af4
25 changed files with 207 additions and 18 deletions

0
dsst/common/__init__.py Normal file
View File

77
dsst/common/models.py Normal file
View File

@@ -0,0 +1,77 @@
class Season:
def __init__(self, arg={}):
self.id = arg.get('id')
self.number = arg.get('number')
self.game_name = arg.get('game_name')
self.start_date = arg.get('start_date')
self.end_date = arg.get('end_date')
self.episodes = arg.get('episodes')
self.enemies = arg.get('enemies')
class Player:
def __init__(self, arg={}):
self.id = arg.get('id')
self.name = arg.get('name')
self.hex_id = arg.get('hex_id')
self.deaths = arg.get('deaths')
self.victories = arg.get('victories')
self.penalties = arg.get('penalties')
class Episode:
def __init__(self, arg={}):
self.id = arg.get('id')
self.seq_number = arg.get('seq_number')
self.number = arg.get('number')
self.name = arg.get('name')
self.date = arg.get('date')
self.season = arg.get('season')
self.players = arg.get('players')
self.deaths = arg.get('deaths')
self.victories = arg.get('victories')
class Drink:
def __init__(self, arg={}):
self.id = arg.get('id')
self.name = arg.get('name')
self.vol = arg.get('vol')
class Enemy:
def __init__(self, arg={}):
self.id = arg.get('id')
self.name = arg.get('name')
self.optional = arg.get('optional')
self.season = arg.get('season')
class Death:
def __init__(self, arg={}):
self.id = arg.get('id')
self.info = arg.get('info')
self.player = arg.get('player')
self.enemy = arg.get('enemy')
self.episode = arg.get('episode')
self.penalties = arg.get('penalties')
class Penalty:
def __init__(self, arg={}):
self.id = arg.get('id')
self.size = arg.get('size')
self.drink = arg.get('drink')
self.player = arg.get('player')
self.death = arg.get('death')
class Victory:
def __init__(self, arg={}):
self.id = arg.get('id')
self.info = arg.get('info')
self.player = arg.get('player')
self.enemy = arg.get('enemy')
self.episode = arg.get('episode')

28
dsst/common/util.py Normal file
View File

@@ -0,0 +1,28 @@
import struct
def send_msg(sock, msg):
# Prefix each message with a 4-byte length (network byte order)
msg = struct.pack('>I', len(msg)) + msg
sock.sendall(msg)
def recv_msg(sock):
# Read message length and unpack it into an integer
raw_msglen = recvall(sock, 4)
if not raw_msglen:
return None
msglen = struct.unpack('>I', raw_msglen)[0]
# Read the message data
return recvall(sock, msglen)
def recvall(sock, n):
# Helper function to recv n bytes or return None if EOF is hit
data = b''
while len(data) < n:
packet = sock.recv(n - len(data))
if not packet:
return None
data += packet
return data