Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 36 additions & 21 deletions techsupport_bot/commands/factoids.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,13 @@ async def setup(bot: bot.TechSupportBot) -> None:
description="List of channel IDs that restricted factoids are allowed to be used in",
default=[],
)
config.add(
key="disable_embeds",
datatype="bool",
title="Force disable embeds, for debug purposes",
description="This will force all factoids to not use embeds.",
default=False,
)

await bot.add_cog(
FactoidManager(
Expand Down Expand Up @@ -775,8 +782,10 @@ async def response(
not in config.extensions.factoids.restricted_list.value
):
return

embed = self.get_embed_from_factoid(factoid)
if not config.extensions.factoids.disable_embeds.value:
embed = self.get_embed_from_factoid(factoid)
else:
embed = None
# if the json doesn't include non embed argument, then don't send anything
# otherwise send message text with embed
try:
Expand Down Expand Up @@ -952,25 +961,6 @@ async def cronjob(
)
continue

# Checking for disabled or restricted
if factoid.disabled:
return

if (
factoid.restricted
and str(ctx.channel.id)
not in config.extensions.factoids.restricted_list.value
):
return

# Get_embed accepts job as a factoid object
embed = self.get_embed_from_factoid(factoid)
try:
content = factoid.message if not embed else None
except ValueError:
# The not embed causes a ValueError in certian places. This ensures fallback works
content = factoid.message

channel = self.bot.get_channel(int(job.channel))
if not channel:
log_channel = None
Expand All @@ -992,6 +982,31 @@ async def cronjob(
)
continue

config = self.bot.guild_configs[str(channel.guild.id)]

# Checking for disabled or restricted
if factoid.disabled:
return

if (
factoid.restricted
and str(channel.id)
not in config.extensions.factoids.restricted_list.value
):
return

# Get_embed accepts job as a factoid object
if not config.extensions.factoids.disable_embeds.value:
embed = self.get_embed_from_factoid(factoid)
else:
embed = None

try:
content = factoid.message if not embed else None
except ValueError:
# The not embed causes a ValueError in certian places. This ensures fallback works
content = factoid.message

try:
message = await channel.send(content=content, embed=embed)

Expand Down