def _update_people(self, client=None): "Updates our internal list of Slack users. Kind of expensive." people = {} if client: for page in client.users_list(limit=self.PAGE_LIMIT): for member in page["members"]: if member["deleted"]: continue member_id = member["id"] user_timezone = member.get("tz") people[member_id] = Person( id=member_id, mention_handle=member.get("mention_handle", ""), handle=member["name"], source=clean_for_pickling(member), name=member.get("real_name", ""), ) if member["name"] == self.handle: self.me = people[member_id] if user_timezone and user_timezone != "unknown": people[member_id].timezone = user_timezone if len(people.keys()) == 0: # Server isn't set up yet, and we're likely in a processing thread, if self.load("slack_people_cache", None): self._people = self.load("slack_people_cache", None) if self.me is None: self.me = self.load("slack_me_cache", None) if self.handle is None: self.handle = self.load("slack_handle_cache", None) else: self._people = people self.save("slack_people_cache", people) self.save("slack_me_cache", self.me) self.save("slack_handle_cache", self.handle)
def _update_people(self): people = {} self.handle = self.client.server.username for k, v in self.client.server.users.items(): user_timezone = None if v.tz: user_timezone = v.tz people[k] = Person( id=v.id, mention_handle="<@%s>" % v.id, handle=v.name, source=clean_for_pickling(v), name=v.real_name, ) if v.name == self.handle: self.me = Person( id=v.id, mention_handle="<@%s>" % v.id, handle=v.name, source=clean_for_pickling(v), name=v.real_name, ) if user_timezone and user_timezone != 'unknown': people[k].timezone = user_timezone if v.name == self.handle: self.me.timezone = user_timezone if len(people.keys()) == 0: # Server isn't set up yet, and we're likely in a processing thread, if self.load("slack_people_cache", None): self._people = self.load("slack_people_cache", None) if not hasattr(self, "me") or not self.me: self.me = self.load("slack_me_cache", None) if not hasattr(self, "handle") or not self.handle: self.handle = self.load("slack_handle_cache", None) else: self._people = people self.save("slack_people_cache", people) self.save("slack_me_cache", self.me) self.save("slack_handle_cache", self.handle)