slackmail/slack/users.py

50 lines
1.1 KiB
Python

#
# Copyright 2015 (c) Anna Schumaker
#
from . import api
from . import auth
__USERS = dict()
class User:
def __init__(self, json):
self.__user = json.get("name", "")
self.__first = json["profile"].get("first_name", "")
self.__last = json["profile"].get("last_name", "")
self.__real = json["profile"].get("real_name", "")
self.__email = json["profile"].get("email", "")
def __str__(self):
if self.name() == self.__user:
return self.__user()
return "%s (%s)" % (self.name(), self.__user)
def name(self):
if self.__real != "":
return self.__real
if self.__first == "" and self.__last == "":
return self.__user
return ("%s %s" % (self.__first, self.__last)).strip()
def user(self):
return self.__user
def email(self):
return self.__email
def info(user):
ret = __USERS.get(user, None)
if ret:
return ret
ret = api.call("users.info", token = auth.token(), user = user);
if ret["ok"] == False:
return None
ret = User(ret["user"])
__USERS[user] = ret
return ret