mirror of
https://github.com/powerline/powerline.git
synced 2025-04-08 19:25:04 +02:00
Merge branch 'pr-1811' into develop
This commit is contained in:
commit
e627b29f76
@ -528,3 +528,59 @@ Requires ``osascript``.
|
||||
|
||||
{0}
|
||||
''').format(_common_args.format('itunes')))
|
||||
|
||||
|
||||
class MocPlayerSegment(PlayerSegment):
|
||||
def get_player_status(self, pl):
|
||||
'''Return Music On Console (mocp) player information.
|
||||
|
||||
``mocp -i`` returns current information i.e.
|
||||
|
||||
.. code-block::
|
||||
|
||||
File: filename.format
|
||||
Title: full title
|
||||
Artist: artist name
|
||||
SongTitle: song title
|
||||
Album: album name
|
||||
TotalTime: 00:00
|
||||
TimeLeft: 00:00
|
||||
TotalSec: 000
|
||||
CurrentTime: 00:00
|
||||
CurrentSec: 000
|
||||
Bitrate: 000kbps
|
||||
AvgBitrate: 000kbps
|
||||
Rate: 00kHz
|
||||
|
||||
For the information we are looking for we don’t really care if we have
|
||||
extra-timing information or bit rate level. The dictionary comprehension
|
||||
in this method takes anything in ignore_info and brings the key inside
|
||||
that to the right info of the dictionary.
|
||||
'''
|
||||
now_playing_str = run_cmd(pl, ['mocp', '-i'])
|
||||
if not now_playing_str:
|
||||
return
|
||||
|
||||
now_playing = dict((
|
||||
line.split(': ', 1)
|
||||
for line in now_playing_str.split('\n')[:-1]
|
||||
))
|
||||
state = _convert_state(now_playing.get('State', 'stop'))
|
||||
return {
|
||||
'state': state,
|
||||
'album': now_playing.get('Album', ''),
|
||||
'artist': now_playing.get('Artist', ''),
|
||||
'title': now_playing.get('SongTitle', ''),
|
||||
'elapsed': _convert_seconds(now_playing.get('CurrentSec', 0)),
|
||||
'total': _convert_seconds(now_playing.get('TotalSec', 0)),
|
||||
}
|
||||
|
||||
|
||||
mocp = with_docstring(MocPlayerSegment(),
|
||||
('''Return MOC (Music On Console) player information
|
||||
|
||||
Requires version >= 2.3.0 and ``mocp`` executable in ``$PATH``.
|
||||
|
||||
{0}
|
||||
''').format(_common_args.format('mocp')))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user