@@ -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