Restructure session
This commit is contained in:
parent
6b0a04d85a
commit
900bbaf86a
1 changed files with 44 additions and 60 deletions
|
|
@ -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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue