11
11
from .radio import PyRadio
12
12
from .config import PyRadioConfig , SUPPORTED_PLAYERS
13
13
from .install import PyRadioUpdate , PyRadioUpdateOnWindows , is_pyradio_user_installed , version_string_to_list , get_github_tag
14
+ from .cjkwrap import cjklen , cjkslices , fill
14
15
from .log import Log
15
16
16
17
PATTERN = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
@@ -394,7 +395,7 @@ def shell():
394
395
sys .exit ()
395
396
396
397
if args .list :
397
- header_format_string , format_string = get_format_string (pyradio_config .stations )
398
+ m_len , header_format_string , format_string = get_format_string (pyradio_config .stations )
398
399
header_string = header_format_string .format ('[Name]' ,'[URL]' ,'[Encoding]' )
399
400
print (header_string )
400
401
print (len (header_string ) * '-' )
@@ -403,7 +404,8 @@ def shell():
403
404
encoding = a_station [2 ]
404
405
else :
405
406
encoding = pyradio_config .default_encoding
406
- print (format_string .format (str (num + 1 ), a_station [0 ], a_station [1 ], encoding ))
407
+ station_name = pad_string (a_station [0 ], m_len )
408
+ print (format_string .format (str (num + 1 ), station_name , a_station [1 ], encoding ))
407
409
sys .exit ()
408
410
409
411
#pyradio_config.log.configure_logger(titles=True)
@@ -588,14 +590,22 @@ def open_conf_dir(cnf):
588
590
def get_format_string (stations ):
589
591
len0 = len1 = 0
590
592
for n in stations :
591
- if len (n [0 ]) > len0 :
592
- len0 = len (n [0 ])
593
- if len (n [1 ]) > len1 :
594
- len1 = len (n [1 ])
595
- num = len (str (len (stations )))
596
- format_string = '{0:>' + str (num ) + '.' + str (num ) + 's}. ' + '{1:' + str (len0 ) + '.' + str (len0 ) + 's} | {2:' + str (len1 ) + '.' + str (len1 ) + 's} | {3}'
593
+ if cjklen (n [0 ]) > len0 :
594
+ len0 = cjklen (n [0 ])
595
+ if cjklen (n [1 ]) > len1 :
596
+ len1 = cjklen (n [1 ])
597
+ num = cjklen (str (cjklen (stations )))
598
+ # format_string = '{0:>' + str(num) + '.' + str(num) + 's}. ' + '{1:' + str(len0) + '.' + str(len0) + 's} | {2:' + str(len1) + '.' + str(len1) + 's} | {3}'
599
+ format_string = '{0:>' + str (num ) + '.' + str (num ) + 's}. ' + '{1} | {2:' + str (len1 ) + '.' + str (len1 ) + 's} | {3}'
597
600
header_format_string = '{0:' + str (len0 + num + 2 ) + '.' + str (len0 + num + 2 ) + 's} | {1:' + str (len1 ) + '.' + str (len1 ) + 's} | {2}'
598
- return header_format_string , format_string
601
+ return len0 , header_format_string , format_string
602
+
603
+ def pad_string (a_string , width ):
604
+ st_len = cjklen (a_string )
605
+ if st_len > width :
606
+ return cjkslices (a_string , width )
607
+ diff = width - st_len
608
+ return a_string + ' ' * diff
599
609
600
610
if __name__ == '__main__' :
601
611
shell ()
0 commit comments