예제 #1
0
파일: slack.py 프로젝트: stevenchang8/will
 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)
예제 #2
0
    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)