slackmail/slack/im.py

46 lines
1.1 KiB
Python

#
# Copyright 2016 (c) Anna Schumaker.
#
from . import api
from . import auth
from . import threads
from . import users
class IM(threads.Thread):
def __init__(self, json):
threads.Thread.__init__(self, json)
self.api_history = "im.history"
self.api_info = { "call" : "im.info", "ret" : "im" }
self.api_mark = "im.mark"
self.__uid = json.get("user")
self.__user = users.info(self.__uid)
self.__im_open = None
def name(self):
return "Chat With %s" % self.__user.name()
def url(self, base):
return "%s/messages/@%s/" % (base, self.__user.user())
def call_fetch_info(self):
ret = threads.Thread.call_fetch_info(self)
if ret["ok"] == True:
self.__im_open = ret[self.api_info["ret"]]["is_open"]
return ret
def is_member(self):
if self.__im_open == None:
self.fetch_info()
return self.__im_open
def list():
ret = api.call("im.list", token = auth.token())
if ret["ok"] == False:
return None
im_list = []
for im in ret["ims"]:
im_list += [ IM(im) ]
return im_list