Exemplo n.º 1
0
async def staff():
    user = models.User.get_from_cache()
    if not verify_staff(db, user):
        abort(403)
    success = request.args.get('success')
    response = await request.form
    if request.method == 'POST' and response:
        success = f'{user}'
        # Staff apps
        success += update_apps(db, response)
        # Website announcement
        success += update_announcement(response)
        # Invites
        success += block_invites(response)

        if len(success) > len(str(user)):
            webhook = DiscordWebhook(url=config.WEBHOOK_TOKEN,
                                     content=f"UPDATE: {success}")
            webhook.execute()
        success = success[len(str(user)):]
        return redirect(url_for('.staff', success=success))

    return await render_template(
        'staff/main.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        success=success,
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        applications=list(db.apps.find({'status': 0})),
        reason=cache.get_from_cache(cache, 'reason'),
        user=user)
Exemplo n.º 2
0
async def user_app(userid):
    logged_in_user = models.User.get_from_cache()
    if not verify_staff(db, logged_in_user):
        abort(403)
    success = None
    if request.method == 'POST':
        message = ''
        response = await request.form
        message += await application_manage(response, logged_in_user, userid,
                                            bot, db)
        webhook = DiscordWebhook(url=config.WEBHOOK_TOKEN,
                                 content=f"UPDATE: {message}")
        webhook.execute()
        return redirect('/staff/applications/')

    return await render_template(
        'staff/apps.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        success=success,
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, logged_in_user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        application=db.apps.find_one({'userID': int(userid)}),
        bot=bot,
        user=logged_in_user)
Exemplo n.º 3
0
async def exc(e):
    user = models.User.get_from_cache()
    error_channel = bot.get_channel(836993491485458454)

    emb = discord.Embed(color=discord.Color.red(), title="Error Occured!")
    error = "".join(traceback.format_exception(type(e), e, e.__traceback__))
    if len(error) > 2000:
        mystbin_client = mystbin.Client()
        error = await mystbin_client.post(error, syntax='python')
    else:
        error = f"```py\n{error}```"
    emb.description = f"{error}"
    await error_channel.send(embed=emb, content="Error occured!")

    return await render_template(
        'errors/exception.html',
        not_found_icon=not_found_icon,
        color=WebsiteTheme.color,
        icon=image,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        error=e,
        user=user)
Exemplo n.º 4
0
async def staff_apps():
    user = models.User.get_from_cache()
    if not verify_staff(db, user):
        abort(403)
    success = None
    return await render_template(
        'staff/applications.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        success=success,
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        applications=cache.get_from_cache(cache, 'staff_apps'),
        bot=bot,
        user=user)
Exemplo n.º 5
0
async def bot_lists():
    user = models.User.get_from_cache()
    return await render_template(
        'lists.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        user=user)
Exemplo n.º 6
0
async def ratelimited(e):
    user = models.User.get_from_cache()
    return await render_template(
        'errors/custom.html',
        title="429 - Ratelimited",
        description="You're accessing this route too fast, please slow down!",
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        user=user)
Exemplo n.º 7
0
async def forbidden(e):
    user = models.User.get_from_cache()
    return await render_template(
        'errors/custom.html',
        title="403 - Forbidden",
        description=
        "The route you're trying to access is not accessible by you!",
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        user=user)
Exemplo n.º 8
0
async def my_application():
    user = models.User.get_from_cache()
    return await render_template(
        'staff/apps.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        application=db.apps.find_one({'userID': user.id}),
        bot=bot,
        user=user)
Exemplo n.º 9
0
async def view_guild(guild):
    user = models.User.get_from_cache()
    guild = main_bot.get_guild(guild)
    return await render_template(
        'guildinfo.html',
        color=WebsiteTheme.color,
        icon=image,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        user=user,
        bot=main_bot,
        guild=guild)
Exemplo n.º 10
0
async def main_page():
    user = models.User.get_from_cache()
    return await render_template(
        'index.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        dredd=cache.get_from_cache(cache, 'me'),
        discord=discord,
        user=user,
        guild_count=cache.get_from_cache(cache, 'guilds'),
        user_count=cache.get_from_cache(cache, 'users'))
Exemplo n.º 11
0
async def affiliates():
    user = models.User.get_from_cache()
    if not bot.is_ready():
        return "Partners are not yet cached :/ Should be cached in the next few seconds, if not please report this to us <a href='/support/'>here</a>"
    return await render_template(
        'affiliates.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        all_partners=cache.get_from_cache(cache, 'partners'),
        top_partner=cache.get_from_cache(cache, 'top_partner'),
        bot=bot,
        cache=cache,
        user=user)
Exemplo n.º 12
0
async def my_profile():
    user = models.User.get_from_cache()
    guilds = user.guilds if user.guilds else await user.fetch_guilds()
    apps = list(db.apps.find({'userID': user.id}))
    return await render_template(
        'profile.html',
        color=WebsiteTheme.color,
        icon=image,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        applications=apps,
        user=user,
        guilds=guilds,
        bot=main_bot,
        allow_invites=cache.get_from_cache(cache, 'allow_invite'),
        reason=cache.get_from_cache(cache, 'reason'))
Exemplo n.º 13
0
async def apply():
    user = models.User.get_from_cache()
    if user:
        if not user.guilds:
            await user.fetch_guilds()
        guilds = [x.name for x in user.guilds]
    else:
        guilds = None

    apps_closed, submitted, saw_success = False, False, False
    if not cache.get_from_cache(cache, 'staff_open'):
        apps_closed = True
    elif cache.get_from_cache(cache, 'staff_open'):
        if request.method == 'GET':
            if user:
                db_check = db.apps.find_one({'userID': user.id})
                if db_check and not request.args.get('submitted'):
                    saw_success, submitted = True, True
                elif db_check and request.args.get('submitted'):
                    submitted = True
        elif request.method == 'POST':
            submitted = True
            response = await request.form
            user = bot.get_user(int(user.id))
            await log_app(bot, user, response, db)
            cache.update_cache(cache, 'staff_apps', list(db.apps.find()))
            return redirect(url_for('.apply', submitted=submitted))

    return await render_template(
        'applications.html',
        icon=image,
        color=WebsiteTheme.color,
        submitted=submitted,
        saw_success=saw_success,
        apps_closed=apps_closed,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        user=user,
        guilds=guilds)
Exemplo n.º 14
0
async def bot_invite():
    user = models.User.get_from_cache()
    if user:
        guilds = user.guilds if user.guilds else await user.fetch_guilds()
    else:
        guilds = None
    return await render_template(
        'invite.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        allow_invite=cache.get_from_cache(cache, 'allow_invite'),
        reason=cache.get_from_cache(cache, 'reason'),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        user=user,
        guilds=guilds,
        bot=main_bot)
Exemplo n.º 15
0
async def about_page():
    user = models.User.get_from_cache()
    return await render_template(
        'about.html',
        icon=image,
        color=WebsiteTheme.color,
        staff=cache.get_from_cache(cache, 'staff_open'),
        logged_in=await discord_session.authorized,
        is_staff=verify_staff(db, user),
        announcement=cache.get_from_cache(cache, 'announcement'),
        announcement_color=cache.get_from_cache(cache, 'announcement_color'),
        moksej=cache.get_from_cache(cache, 'moksej'),
        zenpa=cache.get_from_cache(cache, 'zenpa'),
        duck=cache.get_from_cache(cache, 'duck'),
        support=cache.get_from_cache(cache, 'staff'),
        discord=discord,
        on_leave=cache.get_from_cache(cache, 'on_leave'),
        user=user,
        guild_count=cache.get_from_cache(cache, 'guilds'),
        user_count=cache.get_from_cache(cache, 'users'))