Exemplo n.º 1
0
async def help_page():
    if await discord.authorized:
        user = await fetch_user_with_perms()
    else:
        user = False
    commands = slash.commands
    info = ""
    help_list = []
    for command in commands:
        options = commands[command].options
        guilds = ', '.join([
            bot.get_guild(guild_id).name
            for guild_id in commands[command].allowed_guild_ids
        ])
        command_help = {
            "options":
            options,
            "guilds":
            guilds,
            "description":
            markdown(commands[command].description)
            if commands[command].description else "No Description",
            "command_name":
            command
        }
        help_list.append(command_help)
    return await render_template("help.html", help_list=help_list, user=user)
Exemplo n.º 2
0
async def home():
    if await discord.authorized:
        user = await fetch_user_with_perms()
    else:
        user = False
    guilds = ', '.join(
        [bot.get_guild(guild_id).name for guild_id in SLASH_COMMANDS_GUILDS])
    registered_users = len(fetch_players_list_discord_id())
    online_members = sum(
        member.status != Status.offline and not member.bot
        for member in bot.get_guild(SLASH_COMMANDS_GUILDS[0]).members)
    return await render_template("home.html",
                                 discord_invite=PUG_INVITE_LINK,
                                 guilds=guilds,
                                 registered_users=registered_users,
                                 online_members=online_members,
                                 user=user)
Exemplo n.º 3
0
async def mod_tools():
    if await discord.authorized:
        user = await fetch_user_with_perms()
        if user["is_mod"]:
            guild = bot.get_guild(SLASH_COMMANDS_GUILDS[0])
            text_channels = guild.text_channels
            member = get(guild.members, id=user["user"].id)
            allowed_text_channels = [
                channel for channel in text_channels
                if channel.permissions_for(member).send_messages
            ]
            return await render_template(
                '/moderators/mod_tools.html',
                user=user,
                allowed_text_channels=allowed_text_channels)
        else:
            return redirect(url_for("home"))
    else:
        return redirect(url_for("home"))
Exemplo n.º 4
0
async def fetch_user_with_perms():
    user = await discord.fetch_user()
    guild = bot.get_guild(SLASH_COMMANDS_GUILDS[0])
    admin_role = get(guild.roles, name=ADMIN_ROLE)
    mod_role = get(guild.roles, name=MOD_ROLE)
    member = get(guild.members, id=user.id)
    if member:
        return {
            "user": user,
            "is_admin": member.top_role.position >= admin_role.position,
            "is_mod": member.top_role.position >= mod_role.position,
            "in_server": True
        }
    else:
        return {
            "user": user,
            "is_admin": False,
            "is_mod": False,
            "in_server": False
        }
Exemplo n.º 5
0
async def fetch_dummy_user():
    """for dev purposes"""
    user = bot.get_user(175964671520669696)
    guild = bot.get_guild(SLASH_COMMANDS_GUILDS[0])
    admin_role = get(guild.roles, name=ADMIN_ROLE)
    mod_role = get(guild.roles, name=MOD_ROLE)
    member = get(guild.members, id=user.id)
    if member:
        return {
            "user": user,
            "is_admin": member.top_role.position >= admin_role.position,
            "is_mod": member.top_role.position >= mod_role.position,
            "in_server": True
        }
    else:
        return {
            "user": user,
            "is_admin": False,
            "is_mod": False,
            "in_server": False
        }
Exemplo n.º 6
0
async def send_message():
    if await discord.authorized:
        user = await fetch_user_with_perms()
        if user["is_mod"]:
            message_info = await request.get_json()
            guild = bot.get_guild(SLASH_COMMANDS_GUILDS[0])

            member = get(guild.members, id=user["user"].id)
            info(message_info)
            info(f"{user['user']} sent message \"{message_info['message']}\"")
            channel = bot.get_channel(int(message_info["channel_id"]))
            allowed_text_channels = [
                channel for channel in guild.text_channels
                if channel.permissions_for(member).send_messages
            ]
            if channel in allowed_text_channels:
                await channel.send(message_info["message"])
            else:
                return jsonify({
                    "success":
                    False,
                    "error":
                    "You do not have perms for this channel"
                })
            return jsonify({"success": True})
        else:
            return jsonify({
                "success": False,
                "error": "You need the PUG Mod role to do this"
            })
    else:
        return jsonify({
            "success":
            False,
            "error":
            "You are not logged in with your discord account"
        })
Exemplo n.º 7
0
def get_guild(id):
    return bot.get_guild(id)