def invite(self, *args): user_count = self.driver.teams.get_team_stats( team_id=self.teamid)['total_member_count'] user_page_limit = 200 users_not_in_channel = [] for start in range(0, user_count, user_page_limit): users_not_in_channel.extend( self.driver.users.get_users( params={ 'page': start, 'per_page': user_page_limit, 'in_team': self.teamid, 'not_in_channel': self.id })) users = {} for user in users_not_in_channel: users.update({user['username']: user['id']}) for user in args: if user not in users: raise UserDoesNotExistError( 'User \'{}\' not found'.format(user)) log.info('Inviting {} into {} ({})'.format(user, str(self), self.id)) try: self.driver.channels.add_user(channel_id=self.id, options={'user_id': users[user]}) except (InvalidOrMissingParameters, NotEnoughPermissions): raise RoomError( "Unable to invite {} to channel {} ({})".format( user, str(self), self.id))
def username_to_userid(self, name): """Convert a Slack user name to their user ID""" name = name.lstrip('@') user = self.sc.server.users.find(name) if user is None: raise UserDoesNotExistError("Cannot find user %s" % name) return user.id
def username_to_userid(webclient: WebClient, name: str): """Convert a Slack user name to their user ID""" name = name.lstrip('@') user = [user for user in webclient.users_list()['users'] if user['name'] == name] if user is None: raise UserDoesNotExistError(f'Cannot find user {name}.') return user['id']
def username_to_userid(self, name): """Convert a Slack user name to their user ID""" name = name.lstrip('@') user = [user for user in self.sc.server.users if user.name == name] if not user: raise UserDoesNotExistError("Cannot find user %s" % name) return user[0].id
def invite(self, *args): users = { user['name']: user['id'] for user in self._bot.api_call('users.list')['members'] } for user in args: if user not in users: raise UserDoesNotExistError("User '%s' not found" % user) log.info("Inviting %s into %s (%s)" % (user, str(self), self.id)) method = 'groups.invite' if self.private else 'channels.invite' response = self._bot.api_call(method, data={ 'channel': self.id, 'user': users[user] }, raise_errors=False) if not response['ok']: if response['error'] == "user_is_bot": raise RoomError("Unable to invite people. " + USER_IS_BOT_HELPTEXT) elif response['error'] != "already_in_channel": raise SlackAPIResponseError( error="Slack API call to %s failed: %s" % (method, response['error']))
def username_to_userid(self, name): """Converts a name prefixed with @ to the userid""" name = name.lstrip('@') user = self.driver.users.get_user_by_username(username=name) if user is None: raise UserDoesNotExistError("Cannot find user {}".format(name)) return user['id']
def invite(self, *args): users = { user['name']: user['id'] for user in self._bot.api_call('users.list')['members'] } for user in args: if user not in users: raise UserDoesNotExistError(f'User "{user}" not found.') log.info('Inviting %s into %s (%s)', user, self, self.id) method = 'groups.invite' if self.private else 'channels.invite' response = self._bot.api_call(method, data={ 'channel': self.id, 'user': users[user] }, raise_errors=False) if not response['ok']: if response['error'] == 'user_is_bot': raise RoomError( f'Unable to invite people. {USER_IS_BOT_HELPTEXT}') elif response['error'] != 'already_in_channel': raise SlackAPIResponseError( error= f'Slack API call to {method} failed: {response["error"]}.' )
def invite(self, *args): users = { user["name"]: user["id"] for user in self._bot.api_call("users.list")["members"] } for user in args: if user not in users: raise UserDoesNotExistError(f'User "{user}" not found.') log.info("Inviting %s into %s (%s)", user, self, self.id) method = "conversations.invite" response = self._bot.api_call( method, data={ "channel": self.id, "user": users[user] }, raise_errors=False, ) if not response["ok"]: if response["error"] == "user_is_bot": raise RoomError( f"Unable to invite people. {USER_IS_BOT_HELPTEXT}") elif response["error"] != "already_in_channel": raise SlackAPIResponseError( error= f'Slack API call to {method} failed: {response["error"]}.' )
def username(self): """Convert a Slack user ID to their user name""" user = self._sc.server.users.find(self._userid) if user is None: raise UserDoesNotExistError("Cannot find user with ID %s" % self._userid) return user.name
def invite(self, *args): user_count = self.driver.teams.get_team_stats( team_id=self.teamid)["total_member_count"] user_page_limit = 200 users_not_in_channel = [] for start in range(0, user_count, user_page_limit): users_not_in_channel.extend( self.driver.users.get_users( params={ "page": start, "per_page": user_page_limit, "in_team": self.teamid, "not_in_channel": self.id, })) users = {} for user in users_not_in_channel: users.update({user["username"]: user["id"]}) for user in args: if user not in users: raise UserDoesNotExistError("User '{}' not found".format(user)) log.info("Inviting {} into {} ({})".format(user, str(self), self.id)) try: self.driver.channels.add_user(channel_id=self.id, options={"user_id": users[user]}) except (InvalidOrMissingParameters, NotEnoughPermissions): raise RoomError( "Unable to invite {} to channel {} ({})".format( user, str(self), self.id))
def userid_to_username(self, id_): """Convert a Slack user ID to their user name""" if hasattr(self.sc.server.users, 'get'): # Slackclient > 1.0.2 user = self.sc.server.users.get(id_) else: try: user = [user for user in self.sc.server.users if user.id == id_][0] except IndexError: user = None if user is None: raise UserDoesNotExistError("Cannot find user with ID %s" % id_) return user.name
def username_to_userid(self, name: str): """Convert a Slack user name to their user ID""" name = name.lstrip('@') user = [user for user in self.webclient.users_list()['members'] if user['name'] == name] if user == []: raise UserDoesNotExistError(f'Cannot find user {name}.') if len(user) > 1: log.error( "Failed to uniquely identify '{}'. Errbot found the following users: {}".format( name, " ".join(["{}={}".format(u['name'], u['id']) for u in user]) ) ) raise UserNotUniqueError(f"Failed to uniquely identify {name}.") return user[0]['id']
def username_to_userid(self, name): """Convert a Slack user name to their user ID""" name = name.lstrip('@') if hasattr(self.sc.server.users, 'get'): # Slackclient > 1.0.2 user = self.sc.server.users.get(name) else: try: user = [user for user in self.sc.server.users if user.name == name][0] except IndexError: user = None if user is None: raise UserDoesNotExistError("Cannot find user %s" % name) return user.id
def invite(self, *args): users_not_in_channel = self.client.api.getUsersNotInChannel( self.teamid, self.id) users = {} for user in users_not_in_channel: users.update({ users_not_in_channel[user]['username']: users_not_in_channel[user]['id'] }) for user in args: if user not in users: raise UserDoesNotExistError( 'User \'{}\' not found'.format(user)) log.info('Inviting {} into {} ({})'.format(user, str(self), self.id)) try: self.client.api.addUserToChannel(self.teamid, self.id, users[user]) except MattermostApiResponseError as e: raise RoomError( "Unable to invite {} to channel {} ({})".format( user, str(self), self.id))
def userid_to_username(self, id_): """Convert a Slack user ID to their user name""" user = self.sc.server.users.get(id_) if user is None: raise UserDoesNotExistError("Cannot find user with ID %s" % id_) return user.name
def userid_to_username(self, id_): """Convert a Slack user ID to their user name""" user = [user for user in self.sc.server.users if user.id == id_] if not user: raise UserDoesNotExistError("Cannot find user with ID %s" % id_) return user[0].name
def userid_to_username(self, id_: str): """Convert a Slack user ID to their user name""" user = self.webclient.users_info(user=id_)["user"] if user is None: raise UserDoesNotExistError(f"Cannot find user with ID {id_}.") return user["name"]
def userid_to_username(webclient: WebClient, id_: str): """Convert a Slack user ID to their user name""" user = webclient.users_info(user=id_)['user'] if user is None: raise UserDoesNotExistError(f'Cannot find user with ID {id_}.') return user['name']