- commit
- 93ca7a23015cb0575a2aefd4bc4a24126b71564e
- parent
- f596e3b2b47fdefe6bef8f29849e24815505c13a
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2022-11-22 07:53
display current title from stream
Diffstat
| M | cplay.py | 12 | +++++++++++- |
1 files changed, 11 insertions, 1 deletions
diff --git a/cplay.py b/cplay.py
@@ -141,6 +141,7 @@ class Player: 141 141 self.path = None 142 142 self.position = 0 143 143 self.length = 0 -1 144 self.metadata = None 144 145 self._seek_step = 0 145 146 self._seek_timeout = None 146 147 self.is_playing = False @@ -164,6 +165,7 @@ class Player: 164 165 165 166 self._ipc('observe_property', 1, 'time-pos') 166 167 self._ipc('observe_property', 2, 'duration') -1 168 self._ipc('observe_property', 3, 'metadata') 167 169 168 170 def _ipc(self, cmd, *args): 169 171 data = json.dumps({'command': [cmd, *args]}) @@ -177,6 +179,8 @@ class Player: 177 179 elif data.get('event') == 'property-change' and data['id'] == 2: 178 180 if data.get('data') is not None: 179 181 self.length = data['data'] -1 182 elif data.get('event') == 'property-change' and data['id'] == 3: -1 183 self.metadata = data.get('data') 180 184 elif data.get('event') == 'end-file': 181 185 self._playing -= 1 182 186 @@ -193,6 +197,12 @@ class Player: 193 197 return 0 194 198 return self.position / self.length 195 199 -1 200 def get_title(self): -1 201 title = relpath(self.path) -1 202 if self.metadata and 'icy-title' in self.metadata: -1 203 title = '{} [{}]'.format(title, self.metadata['icy-title']) -1 204 return title -1 205 196 206 def stop(self): 197 207 self.is_playing = False 198 208 self._ipc('stop') @@ -711,7 +721,7 @@ class Application: 711 721 elif self.tab == helplist: 712 722 status = __version__ 713 723 elif player.is_playing:714 -1 status = 'Playing %s' % relpath(player.path)-1 724 status = 'Playing %s' % player.get_title() 715 725 else: 716 726 status = '' 717 727