@@ -1261,17 +1261,26 @@ def __init__(self, title: str, config: dict, old_values: Optional[dict] = None,
12611261 if not old_values :
12621262 old_values = {}
12631263 for k , v in self .config .items ():
1264- self .add_item (TextInput (custom_id = k ,
1265- label = v .get ('label' ),
1266- style = discord .TextStyle (v .get ('style' , 1 )),
1267- placeholder = v .get ('placeholder' ),
1268- default = str (old_values .get (k )) if old_values .get (k ) is not None else v .get ('default' , '' ),
1269- required = v .get ('required' , False ),
1270- min_length = v .get ('min_length' ),
1271- max_length = v .get ('max_length' )))
1264+ self .add_item (TextInput (
1265+ custom_id = k ,
1266+ label = v .get ('label' ),
1267+ style = discord .TextStyle (v .get ('style' , 1 )),
1268+ placeholder = v .get ('placeholder' ),
1269+ default = self .parse (old_values .get (k )) if old_values .get (k ) is not None else self .parse (v .get ('default' , '' )),
1270+ required = v .get ('required' , False ),
1271+ min_length = v .get ('min_length' ),
1272+ max_length = v .get ('max_length' )))
12721273
12731274 @staticmethod
1274- def unmap (value : str , t : str = None ) -> Any :
1275+ def parse (value : Any ) -> str :
1276+ if isinstance (value , bool ):
1277+ return 'true' if value else 'false'
1278+ elif isinstance (value , datetime ):
1279+ return value .strftime ('%Y-%m-%d %H:%M:%S' )
1280+ return str (value )
1281+
1282+ @staticmethod
1283+ def unparse (value : str , t : str = None ) -> Any :
12751284 if not t or t == str :
12761285 return value
12771286 elif not value :
@@ -1294,7 +1303,7 @@ async def on_submit(self, interaction: discord.Interaction) -> None:
12941303 await interaction .response .defer (ephemeral = self .ephemeral )
12951304 # noinspection PyUnresolvedReferences
12961305 self .value = {
1297- v .custom_id : self .unmap (v .value , self .config [v .custom_id ].get ('type' ))
1306+ v .custom_id : self .unparse (v .value , self .config [v .custom_id ].get ('type' ))
12981307 for v in self .children
12991308 }
13001309 self .stop ()
0 commit comments