Restructure session

This commit is contained in:
Joscha 2016-05-06 14:38:53 +02:00
parent 6b0a04d85a
commit 900bbaf86a

View file

@ -3,12 +3,45 @@ class Session():
This class keeps track of session details.
"""
def __init__(self, session):
def __init__(self, id, name, server_id, server_era, session_id, is_staff=None, is_manager=None):
"""
session - a euphoria SessionView: http://api.euphoria.io/#sessionview
id - agent/account id
name - name of the client when the SessionView was captured
server_id - id of the server
server_era - era of the server
session_id - session id (unique across euphoria)
is_staff - client is staff
is_manager - client is manager
"""
self.session = session
self.id = id
self.name = name
self.server_id = server_id
self.server_era = server_era
self.session_id = session_id
self.staff = is_staff
self.manager = is_manager
@classmethod
def from_data(self, data):
"""
Creates and returns a session created from the data.
data - a euphoria SessionView: http://api.euphoria.io/#sessionview
"""
is_staff = data["is_staff"] if "is_staff" in data else None
is_manager = data["is_manager"] if "is_manager" in data else None
return self(
data["id"],
data["name"],
data["server_id"],
data["server_era"],
data["session_id"],
is_staff,
is_manager
)
def session_type(self):
"""
@ -17,34 +50,7 @@ class Session():
The session's type (bot, account, agent).
"""
return self.user_id().split(":")[0]
def user_id(self):
"""
user_id() -> str
The user's id.
"""
return self.session["id"]
def session_id(self):
"""
session_id() -> str
Returns the session's id.
"""
return self.session["session_id"]
def name(self):
"""
name() -> str
The user's name.
"""
return self.session["name"]
return self.user_id.split(":")[0]
def mentionable(self):
"""
@ -53,7 +59,7 @@ class Session():
Converts the name to a mentionable format.
"""
return "".join(c for c in self.name() if not c in ",.!?;&<'\"" and not c.isspace())
return "".join(c for c in self.name if not c in ",.!?;&<'\"" and not c.isspace())
def listable(self, width):
"""
@ -76,43 +82,21 @@ class Session():
return prefixes, name
def server_id(self):
"""
server_id() -> server_id
The session's server id.
"""
return self.session["server_id"]
def server_era(self):
"""
server_era() -> server_era
The session's server era.
"""
return self.session["server_era"]
def is_staff(self):
"""
is_staff() -> staff
is_staff() -> bool
Is a user staff?
"""
if "is_staff" in self.session:
return self.session["is_staff"]
else:
return False
return self.staff and True or False
def is_manager(self):
"""
is_manager() -> manager
is_manager() -> bool
Is a user manager?
"""
if "is_manager" in self.session:
return self.session["is_manager"]
else:
return False
return self.staff and True or False