Skip to content

Commit 73254ef

Browse files
committed
Does better factoid fallback management for failed embed
1 parent 77de9e7 commit 73254ef

1 file changed

Lines changed: 46 additions & 9 deletions

File tree

techsupport_bot/commands/factoids.py

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -827,10 +827,23 @@ async def response(
827827
not in config.extensions.factoids.restricted_list.value
828828
):
829829
return
830-
if not config.extensions.factoids.disable_embeds.value:
831-
embed = self.get_embed_from_factoid(factoid)
832-
else:
830+
831+
if config.extensions.factoids.disable_embeds.value:
833832
embed = None
833+
else:
834+
try:
835+
embed = self.get_embed_from_factoid(factoid)
836+
except TypeError as exception:
837+
log_channel = config.get("logging_channel")
838+
await self.bot.logger.send_log(
839+
message=f"Unable to make embed for factoid `{factoid.name}`, sending fallback.",
840+
level=LogLevel.ERROR,
841+
channel=log_channel,
842+
context=LogContext(guild=ctx.guild, channel=ctx.channel),
843+
exception=exception,
844+
)
845+
embed = None
846+
834847
# if the json doesn't include non embed argument, then don't send anything
835848
# otherwise send message text with embed
836849
try:
@@ -964,10 +977,23 @@ async def factoid_call_command(
964977
)
965978
await interaction.response.send_message(embed=embed, ephemeral=True)
966979
return
967-
if not config.extensions.factoids.disable_embeds.value:
968-
embed = self.get_embed_from_factoid(factoid)
969-
else:
980+
if config.extensions.factoids.disable_embeds.value:
970981
embed = None
982+
else:
983+
try:
984+
embed = self.get_embed_from_factoid(factoid)
985+
except TypeError as exception:
986+
log_channel = config.get("logging_channel")
987+
await self.bot.logger.send_log(
988+
message=f"Unable to make embed for factoid `{factoid.name}`, sending fallback.",
989+
level=LogLevel.ERROR,
990+
channel=log_channel,
991+
context=LogContext(
992+
guild=interaction.guild, channel=interaction.channel
993+
),
994+
exception=exception,
995+
)
996+
embed = None
971997
# if the json doesn't include non embed argument, then don't send anything
972998
# otherwise send message text with embed
973999
try:
@@ -1154,10 +1180,21 @@ async def cronjob(
11541180
return
11551181

11561182
# Get_embed accepts job as a factoid object
1157-
if not config.extensions.factoids.disable_embeds.value:
1158-
embed = self.get_embed_from_factoid(factoid)
1159-
else:
1183+
if config.extensions.factoids.disable_embeds.value:
11601184
embed = None
1185+
else:
1186+
try:
1187+
embed = self.get_embed_from_factoid(factoid)
1188+
except TypeError as exception:
1189+
log_channel = config.get("logging_channel")
1190+
await self.bot.logger.send_log(
1191+
message=f"Unable to make embed for factoid `{factoid.name}`, sending fallback.",
1192+
level=LogLevel.ERROR,
1193+
channel=log_channel,
1194+
context=LogContext(guild=channel.guild, channel=channel),
1195+
exception=exception,
1196+
)
1197+
embed = None
11611198

11621199
try:
11631200
content = factoid.message if not embed else None

0 commit comments

Comments
 (0)