4141ANSI_BBLUE = "\033 [1;34m"
4242ANSI_YELLOW = "\033 [0;33m"
4343ANSI_RED = "\033 [0;31m"
44+ ANSI_BRED = "\033 [1;31m"
4445ANSI_MAGENTA = "\033 [0;35m"
4546ANSI_BMAGENTA = "\033 [1;35m"
4647ANSI_CYAN = "\033 [0;36m"
@@ -105,15 +106,15 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
105106 name = ct ["adv_name" ]
106107
107108 if ct ["type" ] == 3 : # room
108- disp = f"{ ANSI_BCYAN } "
109+ disp = f"{ ANSI_CYAN } "
109110 elif ct ["type" ] == 2 : # repeater
110- disp = f"{ ANSI_BMAGENTA } "
111+ disp = f"{ ANSI_MAGENTA } "
111112 else :
112- disp = f"{ ANSI_BBLUE } "
113+ disp = f"{ ANSI_BLUE } "
113114 disp = disp + f"{ name } "
114115 if 'signature' in data :
115116 sender = mc .get_contact_by_key_prefix (data ['signature' ])
116- disp = disp + f"/{ ANSI_BBLUE } { sender ['adv_name' ]} "
117+ disp = disp + f"/{ ANSI_BLUE } { sender ['adv_name' ]} "
117118 disp = disp + f" { ANSI_YELLOW } ({ path_str } )"
118119 if data ["txt_type" ] == 1 :
119120 disp = disp + f"{ ANSI_LIGHT_GRAY } "
@@ -131,7 +132,7 @@ async def process_event_message(mc, ev, json_output, end="\n", above=False):
131132
132133 elif (data ['type' ] == "CHAN" ) :
133134 path_str = f" { ANSI_YELLOW } ({ path_str } ){ ANSI_END } "
134- disp = f"{ ANSI_BGREEN } ch{ data ['channel_idx' ]} { path_str } "
135+ disp = f"{ ANSI_GREEN } ch{ data ['channel_idx' ]} { path_str } "
135136 disp = disp + f"{ ANSI_END } "
136137 disp = disp + f": { data ['text' ]} "
137138
@@ -177,9 +178,11 @@ def make_completion_dict(contacts):
177178 "name" : None , "lat" : None , "lon" : None , "coords" : None ,
178179 "print_snr" : {"on" :None , "off" : None },
179180 "json_msgs" : {"on" :None , "off" : None },
180- "color" : {"on" :None , "off" :None }},
181+ "color" : {"on" :None , "off" :None },
182+ "classic_prompt" : {"on" : None , "off" :None }},
181183 "get" : {"name" : None , "bat" : None , "coords" : None , "radio" : None ,
182- "tx" : None , "print_snr" : None , "json_msgs" :None , "color" :None },
184+ "tx" : None , "print_snr" : None , "json_msgs" :None , "color" :None ,
185+ "classic_prompt" :None },
183186 "reboot" : None ,
184187 "card" : None ,
185188 "login" : None ,
@@ -259,19 +262,35 @@ def _(event):
259262
260263 last_ack = True
261264 while True :
262- prompt = f"{ ANSI_INVERT } "
263- if not last_ack :
264- prompt = prompt + f"{ ANSI_RED } !"
265+ color = process_event_message .color
266+ classic = interactive_loop .classic or not color
265267
266- if contact ["type" ] == 3 : # room server
268+ if classic :
269+ prompt = ""
270+ else :
271+ prompt = f"{ ANSI_INVERT } "
272+ if not last_ack :
273+ prompt = prompt + f"{ ANSI_BRED } "
274+ if classic :
275+ prompt = prompt + "!"
276+ elif contact ["type" ] == 3 : # room server
267277 prompt = prompt + f"{ ANSI_BCYAN } "
268278 elif contact ["type" ] == 2 :
269279 prompt = prompt + f"{ ANSI_BMAGENTA } "
270280 else :
271281 prompt = prompt + f"{ ANSI_BBLUE } "
272- prompt = prompt + f"{ ANSI_INVERT } { contact ['adv_name' ]} { ANSI_NORMAL } { ANSI_END } "
282+ # some possible symbols 🭬🬛🬗🭬🬛🬃🬗🭬🬛🬃🬗🬏🭀🭋🭨🮋
283+ if not classic :
284+ prompt = prompt + f"{ ANSI_INVERT } "
285+ prompt = prompt + f"{ contact ['adv_name' ]} "
286+ if classic :
287+ prompt = prompt + f"{ ANSI_NORMAL } > "
288+ else :
289+ prompt = prompt + f" { ANSI_NORMAL } 🭬"
273290
274- if not process_event_message .color :
291+ prompt = prompt + f"{ ANSI_END } "
292+
293+ if not color :
275294 prompt = escape_ansi (prompt )
276295
277296 session .app .ttimeoutlen = 0.2
@@ -348,6 +367,7 @@ def _(event):
348367 await process_cmds (mc , args )
349368
350369 elif line .startswith ("to " ) : # dest
370+ last_ack = True
351371 dest = line [3 :]
352372 nc = mc .get_contact_by_name (dest )
353373 if nc is None :
@@ -403,6 +423,7 @@ def _(event):
403423 except asyncio .CancelledError :
404424 # Handle task cancellation from KeyboardInterrupt in asyncio.run()
405425 print ("Exiting cli" )
426+ interactive_loop .classic = False
406427
407428async def next_cmd (mc , cmds , json_output = False ):
408429 """ process next command """
@@ -503,6 +524,8 @@ async def next_cmd(mc, cmds, json_output=False):
503524 lon <lon> : longitude
504525 coords <lat,lon> : coordinates
505526 print_snr <on/off> : toggle snr display in messages""" )
527+ case "classic_prompt" :
528+ interactive_loop .classic = (cmds [2 ] == "on" )
506529 case "color" :
507530 process_event_message .color = (cmds [2 ] == "on" )
508531 case "print_snr" :
@@ -603,6 +626,11 @@ async def next_cmd(mc, cmds, json_output=False):
603626 radio : radio parameters
604627 tx : tx power
605628 print_snr : snr display in messages""" )
629+ case "classic_prompt" :
630+ if json_output :
631+ print (json .dumps ({"classic_prompt" : interactive_loop .classic }))
632+ else :
633+ print (f"{ 'on' if interactive_loop .classic else 'off' } " )
606634 case "json_msgs" :
607635 if json_output :
608636 print (json .dumps ({"json_msgs" : handle_message .json_output }))
0 commit comments