From 820cb0c1e838faefd898bd10f5dc767a86ec84f7 Mon Sep 17 00:00:00 2001 From: sco1 Date: Tue, 18 Dec 2018 16:55:53 -0500 Subject: Make reason a required input to bb watch Resolves #218 --- bot/cogs/bigbrother.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/bot/cogs/bigbrother.py b/bot/cogs/bigbrother.py index 7964c81a8..0f2cc7ac8 100644 --- a/bot/cogs/bigbrother.py +++ b/bot/cogs/bigbrother.py @@ -220,9 +220,14 @@ class BigBrother: """ Relay messages sent by the given `user` to the `#big-brother-logs` channel - If a `reason` is specified, a note is added for `user` + A `reason` for watching is required, which is added for the user to be watched as a + note (aka: shadow warning) """ + if not reason: + await ctx.send(":x: A reason for watching this user is required") + return + channel_id = Channels.big_brother_logs post_data = { @@ -251,10 +256,9 @@ class BigBrother: reason = data.get('error_message', "no message provided") await ctx.send(f":x: the API returned an error: {reason}") - # Add a note (shadow warning) if a reason is specified - if reason: - reason = "bb watch: " + reason # Prepend for situational awareness - await post_infraction(ctx, user, type="warning", reason=reason, hidden=True) + # Add a note (shadow warning) with the reason for watching + reason = "bb watch: " + reason # Prepend for situational awareness + await post_infraction(ctx, user, type="warning", reason=reason, hidden=True) @bigbrother_group.command(name='unwatch', aliases=('uw',)) @with_role(Roles.owner, Roles.admin, Roles.moderator) -- cgit v1.2.3 From 97bedd10cd6c3e1760e115022915566337e42c60 Mon Sep 17 00:00:00 2001 From: sco1 Date: Thu, 20 Dec 2018 16:34:32 -0500 Subject: Fix initial emoji config Resolves #220 --- config-default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-default.yml b/config-default.yml index 41383a6ae..c173330d2 100644 --- a/config-default.yml +++ b/config-default.yml @@ -25,7 +25,7 @@ style: green_chevron: "<:greenchevron:418104310329769993>" red_chevron: "<:redchevron:418112778184818698>" white_chevron: "<:whitechevron:418110396973711363>" - lemoneye2: "<:lemoneye2:435193765582340098>" + bb_message: "<:lemoneye2:435193765582340098>" status_online: "<:status_online:470326272351010816>" status_idle: "<:status_idle:470326266625785866>" -- cgit v1.2.3 From d19bd1315d84dbd28af8e96e70e6d079a668b443 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 20 Dec 2018 16:53:42 -0500 Subject: Update config-default.yml Co-Authored-By: sco1 --- config-default.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config-default.yml b/config-default.yml index c173330d2..25c8b1e6d 100644 --- a/config-default.yml +++ b/config-default.yml @@ -25,7 +25,7 @@ style: green_chevron: "<:greenchevron:418104310329769993>" red_chevron: "<:redchevron:418112778184818698>" white_chevron: "<:whitechevron:418110396973711363>" - bb_message: "<:lemoneye2:435193765582340098>" + bb_message: "<:bbmessage:472476937504423936>" status_online: "<:status_online:470326272351010816>" status_idle: "<:status_idle:470326266625785866>" -- cgit v1.2.3 From d619603cf947ebaea73db387c39e20c9074ae9d1 Mon Sep 17 00:00:00 2001 From: sco1 Date: Thu, 20 Dec 2018 17:08:19 -0500 Subject: Realigned emoji groupings --- config-default.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config-default.yml b/config-default.yml index 25c8b1e6d..e7145289d 100644 --- a/config-default.yml +++ b/config-default.yml @@ -19,13 +19,13 @@ style: emojis: defcon_disabled: "<:defcondisabled:470326273952972810>" - defcon_enabled: "<:defconenabled:470326274213150730>" - defcon_updated: "<:defconsettingsupdated:470326274082996224>" + defcon_enabled: "<:defconenabled:470326274213150730>" + defcon_updated: "<:defconsettingsupdated:470326274082996224>" green_chevron: "<:greenchevron:418104310329769993>" red_chevron: "<:redchevron:418112778184818698>" white_chevron: "<:whitechevron:418110396973711363>" - bb_message: "<:bbmessage:472476937504423936>" + bb_message: "<:bbmessage:472476937504423936>" status_online: "<:status_online:470326272351010816>" status_idle: "<:status_idle:470326266625785866>" @@ -42,7 +42,7 @@ style: crown_green: "https://cdn.discordapp.com/emojis/469964154719961088.png" crown_red: "https://cdn.discordapp.com/emojis/469964154879344640.png" - defcon_denied: "https://cdn.discordapp.com/emojis/472475292078964738.png" + defcon_denied: "https://cdn.discordapp.com/emojis/472475292078964738.png" defcon_disabled: "https://cdn.discordapp.com/emojis/470326273952972810.png" defcon_enabled: "https://cdn.discordapp.com/emojis/470326274213150730.png" defcon_updated: "https://cdn.discordapp.com/emojis/472472638342561793.png" @@ -68,8 +68,8 @@ style: user_unban: "https://cdn.discordapp.com/emojis/469952898692808704.png" user_update: "https://cdn.discordapp.com/emojis/469952898684551168.png" - user_mute: "https://cdn.discordapp.com/emojis/472472640100106250.png" - user_unmute: "https://cdn.discordapp.com/emojis/472472639206719508.png" + user_mute: "https://cdn.discordapp.com/emojis/472472640100106250.png" + user_unmute: "https://cdn.discordapp.com/emojis/472472639206719508.png" user_verified: "https://cdn.discordapp.com/emojis/470326274519334936.png" pencil: "https://cdn.discordapp.com/emojis/470326272401211415.png" -- cgit v1.2.3 From 80e8dc84bcd0a4503c07fc686e5ff4017afdb1eb Mon Sep 17 00:00:00 2001 From: Tagptroll1 Date: Mon, 24 Dec 2018 16:54:26 +0100 Subject: CommandNotFound exceptions will attempt tofind a valid tag before silently ignoring --- bot/cogs/events.py | 12 +++++++++--- bot/cogs/tags.py | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bot/cogs/events.py b/bot/cogs/events.py index 3537c850a..edfc6e579 100644 --- a/bot/cogs/events.py +++ b/bot/cogs/events.py @@ -3,8 +3,8 @@ import logging from discord import Colour, Embed, Member, Object from discord.ext.commands import ( BadArgument, Bot, BotMissingPermissions, - CommandError, CommandInvokeError, Context, - NoPrivateMessage, UserInputError + CommandError, CommandInvokeError, CommandNotFound, + Context, NoPrivateMessage, UserInputError ) from bot.cogs.modlog import ModLog @@ -121,7 +121,13 @@ class Events: log.debug(f"Command {command} has a local error handler, ignoring.") return - if isinstance(e, BadArgument): + if isinstance(e, CommandNotFound) and not hasattr(ctx, "invoked_from_error_handler"): + tags_get_command = self.bot.get_command("tags get") + ctx.invoked_from_error_handler = True + + # Return to not raise the exception + return await ctx.invoke(tags_get_command, tag_name=ctx.invoked_with) + elif isinstance(e, BadArgument): await ctx.send(f"Bad argument: {e}\n") await ctx.invoke(*help_command) elif isinstance(e, UserInputError): diff --git a/bot/cogs/tags.py b/bot/cogs/tags.py index a0ba7fdd1..b128b6de1 100644 --- a/bot/cogs/tags.py +++ b/bot/cogs/tags.py @@ -180,6 +180,9 @@ class Tags: if tag_data['image_url'] is not None: embed.set_image(url=tag_data['image_url']) + # If its invoked from error handler just ignore it. + elif hasattr(ctx, "invoked_from_error_handler"): + return # If not, prepare an error message. else: embed.colour = Colour.red() -- cgit v1.2.3 From 4716565247ea749193f19f0e95e05eeaf4d70288 Mon Sep 17 00:00:00 2001 From: sco1 Date: Mon, 24 Dec 2018 16:39:40 -0500 Subject: Remove reason check --- bot/cogs/bigbrother.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/bot/cogs/bigbrother.py b/bot/cogs/bigbrother.py index 0f2cc7ac8..31dbf8b5e 100644 --- a/bot/cogs/bigbrother.py +++ b/bot/cogs/bigbrother.py @@ -216,18 +216,13 @@ class BigBrother: @bigbrother_group.command(name='watch', aliases=('w',)) @with_role(Roles.owner, Roles.admin, Roles.moderator) - async def watch_command(self, ctx: Context, user: User, *, reason: str = None): + async def watch_command(self, ctx: Context, user: User, *, reason: str): """ Relay messages sent by the given `user` to the `#big-brother-logs` channel A `reason` for watching is required, which is added for the user to be watched as a note (aka: shadow warning) """ - - if not reason: - await ctx.send(":x: A reason for watching this user is required") - return - channel_id = Channels.big_brother_logs post_data = { -- cgit v1.2.3 From 6b49afeb6afe6ecdbc5325723c3106588b85c62b Mon Sep 17 00:00:00 2001 From: sco1 Date: Mon, 24 Dec 2018 16:40:24 -0500 Subject: Add linebreak --- bot/cogs/bigbrother.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bot/cogs/bigbrother.py b/bot/cogs/bigbrother.py index 31dbf8b5e..29b13f038 100644 --- a/bot/cogs/bigbrother.py +++ b/bot/cogs/bigbrother.py @@ -223,6 +223,7 @@ class BigBrother: A `reason` for watching is required, which is added for the user to be watched as a note (aka: shadow warning) """ + channel_id = Channels.big_brother_logs post_data = { -- cgit v1.2.3 From 618a5fc2c399129dbf4fb487cb44ece5f8eb6c18 Mon Sep 17 00:00:00 2001 From: Joseph Banks Date: Thu, 27 Dec 2018 19:23:26 +0000 Subject: Disallow Group DM invites from the invite filter --- bot/cogs/filtering.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bot/cogs/filtering.py b/bot/cogs/filtering.py index a8b5091af..b6ce501fc 100644 --- a/bot/cogs/filtering.py +++ b/bot/cogs/filtering.py @@ -238,7 +238,15 @@ class Filtering: f"{URLs.discord_invite_api}/{invite}" ) response = await response.json() - guild_id = int(response.get("guild", {}).get("id")) + if response.get("guild") is None: + # If we have a valid invite which is not a guild invite + # it might be a DM channel invite + if response.get("channel") is not None: + # We don't have whitelisted Group DMs so we can + # go ahead and return a positive for any group DM + return True + + guild_id = int(response.get("guild").get("id")) if guild_id not in Filter.guild_invite_whitelist: return True -- cgit v1.2.3