aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/evergreen/issues.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot/exts/evergreen/issues.py')
-rw-r--r--bot/exts/evergreen/issues.py38
1 files changed, 35 insertions, 3 deletions
diff --git a/bot/exts/evergreen/issues.py b/bot/exts/evergreen/issues.py
index bbcbf611..4a73d20b 100644
--- a/bot/exts/evergreen/issues.py
+++ b/bot/exts/evergreen/issues.py
@@ -7,7 +7,16 @@ from enum import Enum
import discord
from discord.ext import commands, tasks
-from bot.constants import Categories, Channels, Colours, ERROR_REPLIES, Emojis, Tokens, WHITELISTED_CHANNELS
+from bot.constants import (
+ Categories,
+ Channels,
+ Colours,
+ ERROR_REPLIES,
+ Emojis,
+ NEGATIVE_REPLIES,
+ Tokens,
+ WHITELISTED_CHANNELS
+)
log = logging.getLogger(__name__)
@@ -150,10 +159,20 @@ class Issues(commands.Cog):
user: str = "python-discord"
) -> None:
"""Command to retrieve issue(s) from a GitHub repository."""
- if not(
+ if not ctx.guild or not(
ctx.channel.category.id in WHITELISTED_CATEGORIES
or ctx.channel.id in WHITELISTED_CHANNELS
):
+ await ctx.send(
+ embed=discord.Embed(
+ title=random.choice(NEGATIVE_REPLIES),
+ description=(
+ "You can't run this command in this channel. "
+ f"Try again in <#{Channels.community_bot_commands}>"
+ ),
+ colour=discord.Colour.red()
+ )
+ )
return
result = await self.fetch_issues(set(numbers), repository, user)
@@ -180,7 +199,8 @@ class Issues(commands.Cog):
@commands.Cog.listener()
async def on_message(self, message: discord.Message) -> None:
"""Command to retrieve issue(s) from a GitHub repository using automatic linking if matching <repo>#<issue>."""
- if not(
+ # Ignore messages not in whitelisted categories / channels, only when in guild.
+ if message.guild and not (
message.channel.category.id in WHITELISTED_CATEGORIES
or message.channel.id in WHITELISTED_CHANNELS_ON_MESSAGE
):
@@ -190,6 +210,18 @@ class Issues(commands.Cog):
links = []
if message_repo_issue_map:
+ if not message.guild:
+ await message.channel.send(
+ embed=discord.Embed(
+ title=random.choice(NEGATIVE_REPLIES),
+ description=(
+ "You can't retreive issues from DMs. "
+ f"Try again in <#{Channels.community_bot_commands}>"
+ ),
+ colour=discord.Colour.red()
+ )
+ )
+ return
for repo_issue in message_repo_issue_map:
if not self.check_in_block(message, " ".join(repo_issue)):
result = await self.fetch_issues({repo_issue[1]}, repo_issue[0], "python-discord")