Skip to content

Commit fe41bfa

Browse files
committed
- Version 0.8.8
- Fixing volume display for python 3 MPV, before a Title is received - Finalizing \p command
1 parent 26992bb commit fe41bfa

File tree

6 files changed

+180
-98
lines changed

6 files changed

+180
-98
lines changed

Changelog

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
2020-12-06 s-n-g
2-
* Starting 0.8.8-beta7
1+
2020-12-10 s-n-g
2+
* Starting 0.8.8
3+
* Implementing "Paste to playlist" (\p) command
34
* Implementing "Create Playlist" (\n)
45
* Addind \u (show Unnamed Register) command
6+
* Fixing volume display for MPV on python3 before a
7+
valid Title has been received
58
* Revert to stations playlist if default one (set by
69
config) does not exist
710
* Second level config windows will not be displayed

pyradio/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# New stable version: ''
77
# Beta version: 'betax', x=1,2,3...
88
# RC version: 'RCx', x=1,23...
9-
app_state = 'beta7'
9+
app_state = ''
1010

1111
__version__ = version = '.'.join(map(str, version_info))
1212
__project__ = __name__

pyradio/browser.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,7 +809,6 @@ def get_data_dict(data):
809809
callback(my_data, ret)
810810
lock.release()
811811

812-
813812
def probeBrowsers(a_browser_url):
814813
base_url = a_browser_url.split('/')[2]
815814
logger.error('DE base_url = ' + base_url)

pyradio/config_window.py

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -674,9 +674,9 @@ def refresh_win(self, set_encoding=True):
674674
curses.color_pair(4))
675675
for i in range(1, self.maxX - 1):
676676
try:
677-
self._win.addch(self.maxY -4, i, '─', curses.color_pair(3))
677+
self._win.addch(self.maxY - 4, i, '─', curses.color_pair(3))
678678
except:
679-
self._win.addstr(self.maxY -4 , i, u'─'.encode('utf-8'), curses.color_pair(3))
679+
self._win.addstr(self.maxY - 4, i, u'─'.encode('utf-8'), curses.color_pair(3))
680680
try:
681681
self._win.addch(self.maxY - 4, 0, '├', curses.color_pair(3))
682682
self._win.addch(self.maxY - 4, self.maxX - 1, '┤', curses.color_pair(3))
@@ -981,6 +981,7 @@ def __init__(self, parent, config_path, default_playlist, include_registers=Fals
981981
#self._include_registers = True
982982
if self._include_registers:
983983
self._title = ' Paste: Select target '
984+
self._playlist_in_editor = self._selected_playlist
984985
self.init_window()
985986

986987
def __del__(self):
@@ -992,10 +993,6 @@ def init_window(self):
992993
self.maxY = self._num_of_items + 2
993994
if self.maxY > self._parent_maxY - 2:
994995
self.maxY = self._parent_maxY - 2
995-
#elif self.maxY < 12:
996-
# self.maxY = 12
997-
#if self.maxY < 7:
998-
# self.maxY = 7
999996
self._calculate_width()
1000997
self._win = None
1001998
Y = int((self._parent_maxY - self.maxY) / 2) + self._parent_Y
@@ -1007,7 +1004,6 @@ def refresh_and_resize(self, parent_maxYX):
10071004
self._parent_maxX = parent_maxYX[1]
10081005
self.init_window()
10091006
self.refresh_win(resizing=True)
1010-
self._resize()
10111007

10121008
def _calculate_width(self):
10131009
self.maxX = self._max_len + 5 + len(str(self._num_of_items))
@@ -1018,15 +1014,16 @@ def _calculate_width(self):
10181014
self.maxX = self._parent_maxX - 4
10191015

10201016
def refresh_win(self, resizing=False):
1021-
""" set_encoding is False when resizing """
1022-
#self.init_window(set_encoding)
10231017
self._win.bkgdset(' ', curses.color_pair(3))
10241018
self._win.erase()
10251019
self._win.box()
1026-
self._win.addstr(0,
1027-
int((self.maxX - len(self._title)) / 2),
1020+
self._win.addstr(
1021+
0, int((self.maxX - len(self._title)) / 2),
10281022
self._title,
1029-
curses.color_pair(4))
1023+
curses.color_pair(4)
1024+
)
1025+
if resizing:
1026+
self._resize()
10301027
self.refresh_selection(resizing)
10311028

10321029
def refresh_selection(self, resizing=False):
@@ -1036,13 +1033,13 @@ def refresh_selection(self, resizing=False):
10361033
#logger.error('de i = {0}, startPos = {1}'.format(i, self.startPos))
10371034
if i + self.startPos < self._num_of_items:
10381035
line, pad = self._format_line(i, pad)
1039-
col = self._get_color(i)
1040-
self._win.hline(i + 1, 1, ' ', self.maxX - 2, col)
1041-
self._win.addstr(i + 1, 1, line[:self.maxX - 3], col)
1036+
colour = self._get_color(i)
1037+
self._win.hline(i + 1, 1, ' ', self.maxX - 2, colour)
1038+
self._win.addstr(i + 1, 1, line[:self.maxX - 3], colour)
10421039
else:
10431040
break
1041+
self._win.refresh()
10441042
if not resizing:
1045-
self._win.refresh()
10461043
if self._select_playlist_error > -2:
10471044
self.print_select_playlist_error()
10481045

@@ -1051,13 +1048,12 @@ def _resize(self):
10511048
self.startPos = 0
10521049
else:
10531050
self._fix_startPos()
1054-
self.refresh_selection()
10551051

10561052
def _get_color(self, i):
10571053
col = curses.color_pair(5)
10581054
if self._items[i + self.startPos] == self._orig_playlist:
10591055
if i + self.startPos == self._selected_playlist_id:
1060-
col =curses.color_pair(9)
1056+
col = curses.color_pair(9)
10611057
else:
10621058
col = curses.color_pair(4)
10631059
elif i + self.startPos == self._selected_playlist_id:
@@ -1066,12 +1062,13 @@ def _get_color(self, i):
10661062

10671063
def _format_line(self, i, pad):
10681064
""" PyRadioSelectPlaylist format line """
1069-
line = '{0}. {1}'.format(str(i + self.startPos + 1).rjust(pad),
1070-
self._items[i + self.startPos])
1065+
line = '{0}. {1}'.format(
1066+
str(i + self.startPos + 1).rjust(pad),
1067+
self._items[i + self.startPos]
1068+
)
10711069
return line, pad
10721070

10731071
def _read_items(self):
1074-
to_del = -1
10751072
self._items = []
10761073
self._items = glob.glob(path.join(self._config_path, '*.csv'))
10771074
if len(self._items) > 0:
@@ -1088,20 +1085,22 @@ def _read_items(self):
10881085
return 0, -1
10891086
for i, an_item in enumerate(self._items):
10901087
if self._include_registers:
1091-
self._items[i] = an_item.replace(self._registers_path + sep, '').replace('.csv', '').replace('register_', 'Register: ')
1088+
self._items[i] = an_item.replace(self._registers_path + sep, '').replace('.csv', '').replace('register_', 'Register: ')
10921089
self._items[i] = self._items[i].replace(self._config_path + sep, '')
1093-
if self._items[i] == self._selected_playlist:
1094-
to_del = i
10951090
else:
10961091
self._items[i] = an_item.replace(self._config_path + sep, '').replace('.csv', '')
1097-
""" get already loaded playlist id """
1098-
if not self._include_registers:
1092+
if self._include_registers:
1093+
""" Remove playlist in editor """
1094+
try:
1095+
self._items.remove(self._playlist_in_editor)
1096+
except ValueError:
1097+
pass
1098+
else:
1099+
""" get already loaded playlist id """
10991100
for i, a_playlist in enumerate(self._items):
11001101
if a_playlist ==self._selected_playlist:
11011102
self._selected_playlist_id = i
11021103
break
1103-
if to_del >= 0:
1104-
del self._items[to_del]
11051104
self._max_len = cjklen(max(self._items, key=cjklen))
11061105
self._num_of_items = len(self._items)
11071106

@@ -1144,7 +1143,7 @@ def _get_result(self):
11441143
ret = self._items[self._selected_playlist_id].replace('Register: ', 'register_')
11451144
ret = path.join(self._config_path, '.registers', ret + '.csv')
11461145
else:
1147-
ret = path.join(self._config_path, self._items[self._selected_playlist_id], ret + '.csv')
1146+
ret = path.join(self._config_path, self._items[self._selected_playlist_id] + '.csv')
11481147
if platform == 'win32':
11491148
ret.replace('.registers', '_registers')
11501149
return 0, ret
@@ -1215,6 +1214,14 @@ def _fix_startPos(self):
12151214
self.startPos = self._selected_playlist_id - int((self.maxY - 2) / 2)
12161215

12171216
def keypress(self, char):
1217+
""" Return restlt from playlist selection window
1218+
1219+
Results are:
1220+
-1, '' - Continue in window
1221+
0, station title - selected station title (for config window)
1222+
0, station path - selected station path (for paste window)
1223+
1, '' - Cancel
1224+
"""
12181225
if self._select_playlist_error == -1 or \
12191226
self._select_playlist_error == 0:
12201227
self._error_win = None

pyradio/player.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,8 +1011,7 @@ def _set_mpv_playback_is_on(self, stop):
10111011
self.outputStream.write(msg=new_input, counter='')
10121012
if self.oldUserInput['Title'] == '':
10131013
self.oldUserInput['Input'] = new_input
1014-
else:
1015-
self.oldUserInput['Title'] = new_input
1014+
self.oldUserInput['Title'] = new_input
10161015
self.playback_is_on = True
10171016
if stop():
10181017
return False
@@ -1107,12 +1106,17 @@ def play(self, name, streamUrl, encoding = ''):
11071106
stdout=subprocess.DEVNULL,
11081107
stdin=subprocess.DEVNULL,
11091108
stderr=subprocess.DEVNULL)
1110-
t = threading.Thread(target=self.updateMPVStatus, args=(lambda: self.stop_mpv_status_update_thread, ))
1109+
t = threading.Thread(
1110+
target=self.updateMPVStatus,
1111+
args=(lambda: self.stop_mpv_status_update_thread, )
1112+
)
11111113
else:
1112-
self.process = subprocess.Popen(opts, shell=False,
1113-
stdout=subprocess.PIPE,
1114-
stdin=subprocess.PIPE,
1115-
stderr=subprocess.STDOUT)
1114+
self.process = subprocess.Popen(
1115+
opts, shell=False,
1116+
stdout=subprocess.PIPE,
1117+
stdin=subprocess.PIPE,
1118+
stderr=subprocess.STDOUT
1119+
)
11161120
t = threading.Thread(target=self.updateStatus, args=())
11171121
t.start()
11181122
# start playback check timer thread
@@ -1156,7 +1160,6 @@ def close(self):
11561160
self._no_mute_on_stop_playback()
11571161

11581162
# First close the subprocess
1159-
logger.error('DE self._stop()')
11601163
self._stop()
11611164
# Here is fallback solution and cleanup
11621165
self.stop_timeout_counter_thread = True

0 commit comments

Comments
 (0)