async def verify(self, context, token=None):
        """ Member is completing the verification process """
        if token is None:
            await context.send("You must specify a token")
            return

        member = context.author
        user = User.get_or_none(discord_id=member.id, token=token)
        if user is None:
            await context.send("That verification token is invalid.")
            return

        user.token = None
        user.save()
        await context.send("Verification complete")
Exemple #2
0
def update_user_list(users):
    """Give a list of users in JSON format, create or update user profiles in the database."""
    for user_data in users['members']:
        user = User.get_or_none(slack_id=user_data.get('id'))
        if user is None:
            user = User.create(
                name=user_data.get('name'),
                display_name=user_data.get('profile').get('display_name'),
                slack_id=user_data.get('id'),
                is_bot=user_data.get('is_bot'),
                is_deleted=user_data.get('deleted'))
        else:
            user.name = user_data.get('name')
            user.display_name = user_data.get('profile').get('display_name')
            user.is_bot = user_data.get('is_bot')
            user.is_deleted = user_data.get('deleted')
            user.save()
Exemple #3
0
    async def whitelist(self, context, player = None):
        """ Add member to clan whitelists """
        mentions = context.message.mentions
        kol = self.bot.kol

        if len(mentions) > 0:
            member = mentions[0]
            user = User.get_or_none(User.discord_id == member.id, User.token.is_null())
            if user is None:
                await context.send("That user has not attached their KoL account.")
                return
            player = user.kol_id

        if player is None:
            await context.send("Please specify a KoL id, name or a mention a Discord user")
            return

        message = await context.send("Adding user to clans")
        message_stream = DiscordIO(message)
        result = "Whitelisting complete\n"
        with tqdm(self.clans, desc="Adding user to clans", file=message_stream, bar_format="{l_bar}`{bar}`|") as p:
            for clan_name, clan_id, clan_aliases in p:
                success = await kol.join_clan(id=clan_id)
                if success is False:
                    result += "* Joining *{}* failed\n".format(clan_name)
                    continue

                ranks = await kol.clan.get_ranks()
                rank = next((r for r in ranks if r["name"].lower() == "dungeon runner"), None)

                if rank is None:
                    result += "* No role matching *Dungeon Runner* found in *{}*\n".format(clan_name)
                    continue

                success = await kol.clan.add_user_to_whitelist(player, rank=rank["id"], title="Added by ASSistant ({})".format(date.today()))
                if success is False:
                    result += "* Whitelisting to *{}* failed\n".format(clan_name)

        message_stream.print(result)
Exemple #4
0
def get_user_profile(user_id):
    """Given a user id, retrieve the user profile from the database with that id."""
    return User.get_or_none(User.slack_id == user_id)