@@ -323,6 +323,12 @@ async def broadcast_event(message: str | GameEvent):
323
323
event_messages [event_message .id ] = message
324
324
325
325
326
+ def truncate (text : str , length : int = 1000 ) -> str :
327
+ if len (text ) > length :
328
+ return text [:length ] + "..."
329
+ return text
330
+
331
+
326
332
def embed_from_event (event : GameEvent ) -> Embed | None :
327
333
if isinstance (event , GenerateEvent ):
328
334
return embed_from_generate (event )
@@ -357,7 +363,7 @@ def embed_from_action(event: ActionEvent):
357
363
358
364
def embed_from_reply (event : ReplyEvent ):
359
365
reply_embed = Embed (title = event .room .name , description = event .speaker .name )
360
- reply_embed .add_field (name = "Reply" , value = event .text )
366
+ reply_embed .add_field (name = "Reply" , value = truncate ( event .text ) )
361
367
return reply_embed
362
368
363
369
@@ -367,12 +373,8 @@ def embed_from_generate(event: GenerateEvent) -> Embed:
367
373
368
374
369
375
def embed_from_result (event : ResultEvent ):
370
- text = event .result
371
- if len (text ) > 1000 :
372
- text = text [:1000 ] + "..."
373
-
374
376
result_embed = Embed (title = event .room .name , description = event .character .name )
375
- result_embed .add_field (name = "Result" , value = text )
377
+ result_embed .add_field (name = "Result" , value = truncate ( event . result ) )
376
378
return result_embed
377
379
378
380
@@ -384,14 +386,14 @@ def embed_from_player(event: PlayerEvent):
384
386
title = format_prompt ("discord_leave_title" , event = event )
385
387
description = format_prompt ("discord_leave_result" , event = event )
386
388
387
- player_embed = Embed (title = title , description = description )
389
+ player_embed = Embed (title = title , description = truncate ( description ) )
388
390
return player_embed
389
391
390
392
391
393
def embed_from_prompt (event : PromptEvent ):
392
394
# TODO: ping the player
393
395
prompt_embed = Embed (title = event .room .name , description = event .character .name )
394
- prompt_embed .add_field (name = "Prompt" , value = event .prompt )
396
+ prompt_embed .add_field (name = "Prompt" , value = truncate ( event .prompt ) )
395
397
return prompt_embed
396
398
397
399
@@ -400,5 +402,5 @@ def embed_from_status(event: StatusEvent):
400
402
title = event .room .name if event .room else "" ,
401
403
description = event .character .name if event .character else "" ,
402
404
)
403
- status_embed .add_field (name = "Status" , value = event .text )
405
+ status_embed .add_field (name = "Status" , value = truncate ( event .text ) )
404
406
return status_embed
0 commit comments