Skip to content

Commit edd69a1

Browse files
committed
a bit of refactoring: _update_config_buffering_data created
1 parent 9e5b0d0 commit edd69a1

File tree

2 files changed

+26
-95
lines changed

2 files changed

+26
-95
lines changed

pyradio/player.py

Lines changed: 6 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2259,33 +2259,23 @@ def play(self,
22592259
isPlayList = streamUrl.split("?")[0][-3:] in ['m3u', 'pls']
22602260

22612261
# get buffering data from station data
2262-
logger.error('\n\n\n')
22632262
if a_station[Station.buffering].startswith('0'):
22642263
self._buffering_data = None
22652264
else:
22662265
try:
22672266
sp = a_station[Station.buffering].split('@')
2268-
delay = sp[0]
2269-
bitrate = sp[1]
2270-
logger.error(f'{delay = }')
22712267
delay = self._calculate_buffer_size_in_kb(*sp)
2272-
logger.error(f'{delay = }')
22732268
x = PlayerCache(
22742269
self.PLAYER_NAME,
22752270
self._cnf.state_dir,
22762271
lambda: self.recording
22772272
)
2278-
logger.error(f'{delay = }')
22792273
x.enabled = True
22802274
x.delay = delay
22812275
self._buffering_data = x.cache[:]
22822276
x = None
2283-
logger.error(f'{self._buffering_data = }')
2284-
logger.error('\n\n\n')
22852277
except ValueError:
22862278
self._buffering_data = None
2287-
logger.error(f'{self._buffering_data = }')
2288-
logger.error('\n\n\n')
22892279

22902280
opts, self.monitor_opts, referer, referer_file = self._buildStartOpts(
22912281
name, streamUrl, station_force_http,
@@ -4493,35 +4483,17 @@ class PlayerCache():
44934483
]
44944484
}
44954485

4496-
_enabled = {
4497-
'mpv': '0',
4498-
'mplayer': '0',
4499-
'vlc': '0'
4500-
}
4501-
45024486
_bitrate = '128'
45034487

45044488
def __init__(self, player_name, data_dir, recording):
45054489
self._player_name = player_name
4506-
self._data_file = os.path.join(data_dir, 'buffers')
45074490
self._recording = recording
4508-
self._read()
4509-
4510-
@property
4511-
def enabled(self):
4512-
return bool(int(self._enabled[self._player_name]))
4513-
4514-
@enabled.setter
4515-
def enabled(self, val):
4516-
if val == '0':
4517-
self._enabled[self._player_name] = '0'
4518-
elif val == '1':
4519-
self._enabled[self._player_name] = '1'
4520-
elif not val:
4521-
self._enabled[self._player_name] = '0'
4522-
else:
4523-
self._enabled[self._player_name] = '1'
4524-
self._dirty = True
4491+
data_file = os.path.join(data_dir, 'buffers')
4492+
if os.path.exists(data_file):
4493+
try:
4494+
os.unlink(data_file)
4495+
except (FileNotFoundError, PermissionError, OSError):
4496+
pass
45254497

45264498
@property
45274499
def cache(self):
@@ -4580,32 +4552,6 @@ def station_delay(self, value):
45804552
self.delay = value
45814553
self._bitrate = '128'
45824554

4583-
def _read(self):
4584-
logger.error('\n\nself._data_file = "{}"'.format(self._data_file))
4585-
if os.path.exists(self._data_file):
4586-
try:
4587-
with open(self._data_file, 'r', encoding='utf-8') as f:
4588-
line = f.read().strip()
4589-
orig_player_name = self._player_name
4590-
sp = line.split(',')
4591-
logger.error(f'{sp }')
4592-
logger.error('len(sp) = {}'.format(len(sp)))
4593-
if len(sp) == 6 or \
4594-
len(sp) == 3:
4595-
# this is the old buffering format
4596-
for i, a_player in enumerate(('mpv', 'mplayer', 'vlc')):
4597-
self._player_name = a_player
4598-
if len(sp) == 3:
4599-
self.delay = sp[i]
4600-
self.enabled = '0'
4601-
else:
4602-
self.delay = sp[2*i]
4603-
self.enabled = sp[2*i+1]
4604-
self._player_name = orig_player_name
4605-
except:
4606-
pass
4607-
logger.error('\n\n')
4608-
46094555
def _on_disk(self):
46104556
if self._recording() > 0:
46114557
self._data['mpv'][2] = '--cache-on-disk=no'

pyradio/radio.py

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,21 @@ def restore_colors(self):
10531053
def player_instance(self):
10541054
return self.player
10551055

1056+
def _update_config_buffering_data(self):
1057+
self._cnf.buffering_enabled = True
1058+
if self._cnf.buffering == '0':
1059+
self._cnf.buffering_data = []
1060+
else:
1061+
x = PlayerCache(
1062+
self.player.PLAYER_NAME,
1063+
self._cnf.state_dir,
1064+
lambda: self.player.recording
1065+
)
1066+
x.enabled = True
1067+
x.delay = self._cnf.buffering
1068+
self._cnf.buffering_data = x.cache[:]
1069+
x = None
1070+
10561071
def _update_bitrate(self, bitrate):
10571072
if self.playing > -1:
10581073
if self._last_played_station == self.stations[self.playing]:
@@ -1224,18 +1239,7 @@ def setup(self, stdscr):
12241239
else:
12251240
self.ws.operation_mode = self.ws.WIN_VLC_NO_RECORD_MODE
12261241
self._cnf.buffering_enabled = True
1227-
if self._cnf.buffering == '0':
1228-
self._cnf.buffering_data = []
1229-
else:
1230-
x = PlayerCache(
1231-
self.player.PLAYER_NAME,
1232-
self._cnf.state_dir,
1233-
lambda: self.player.recording
1234-
)
1235-
x.enabled = True
1236-
x.delay = self._cnf.buffering
1237-
self._cnf.buffering_data = x.cache[:]
1238-
x = None
1242+
self._update_config_buffering_data()
12391243
except:
12401244
''' no player '''
12411245
self.ws.operation_mode = self.ws.NO_PLAYER_ERROR_MODE
@@ -6506,19 +6510,7 @@ def _activate_player(self, player_name):
65066510
if not (self.player.PLAYER_NAME == 'vlc' and \
65076511
platform.startswith('win')):
65086512
self.player.recording = to_record
6509-
self._cnf.buffering_enabled = True
6510-
if self._cnf.buffering == '0':
6511-
self._cnf.buffering_data = []
6512-
else:
6513-
x = PlayerCache(
6514-
self.player.PLAYER_NAME,
6515-
self._cnf.state_dir,
6516-
lambda: self.player.recording
6517-
)
6518-
x.enabled = True
6519-
x.delay = self._cnf.buffering
6520-
self._cnf.buffering_data = x.cache[:]
6521-
x = None
6513+
self._update_config_buffering_data()
65226514
self.log.display_help_message = False
65236515
logger.error(f'Player activated: ' + player_name)
65246516
self.log.write(msg_id=STATES.PLAYER_ACTIVATED, msg=player_name + M_STRINGS['player-acivated_'], help_msg=False, suffix='')
@@ -7757,16 +7749,9 @@ def keypress(self, char):
77577749
if self._cnf.buffering == '0':
77587750
self._cnf.buffering_data = []
77597751
else:
7760-
x = PlayerCache(
7761-
self.player.PLAYER_NAME,
7762-
self._cnf.state_dir,
7763-
lambda: self.player.recording
7764-
)
7765-
x.enabled = True
7766-
x.delay = self._cnf.buffering
7767-
self._cnf.buffering_data = x.cache[:]
7768-
x = None
7769-
7752+
old_buffering = self._cnf.buffering
7753+
self._update_config_buffering_data()
7754+
self._cnf.buffering = old_buffering
77707755
elif ret == 1:
77717756
''' config not modified '''
77727757
self._show_notification_with_delay(

0 commit comments

Comments
 (0)