@@ -976,8 +976,12 @@ async def process_contact_chat_line(mc, contact, line):
976976 password = f .readline ().strip ()
977977
978978 if password == "" :
979- sess = PromptSession ("Password: " , is_password = True )
980- password = await sess .prompt_async ()
979+ try :
980+ sess = PromptSession ("Password: " , is_password = True )
981+ password = await sess .prompt_async ()
982+ except EOFError :
983+ logger .info ("Canceled" )
984+ return True
981985
982986 if password_file != "" :
983987 with open (password_file , "w" , encoding = "utf-8" ) as f :
@@ -1990,7 +1994,12 @@ async def next_cmd(mc, cmds, json_output=False):
19901994 else :
19911995 print (f"Unknown contact { cmds [1 ]} " )
19921996 else :
1993- res = await mc .commands .send_login (contact , cmds [2 ])
1997+ password = cmds [2 ]
1998+ if password == "$" :
1999+ sess = PromptSession ("Password: " , is_password = True )
2000+ password = await sess .prompt_async ()
2001+
2002+ res = await mc .commands .send_login (contact , password )
19942003 logger .debug (res )
19952004 if res .type == EventType .ERROR :
19962005 if json_output :
@@ -2572,6 +2581,9 @@ async def next_cmd(mc, cmds, json_output=False):
25722581 except IndexError :
25732582 logger .error ("Error in parameters, returning" )
25742583 return None
2584+ except EOFError :
2585+ logger .error ("Cancelled" )
2586+ return None
25752587
25762588async def process_cmds (mc , args , json_output = False ) :
25772589 cmds = args
0 commit comments