Source code for mpris2.utils

'''
utils functions not defined in espec
'''

import re

from .interfaces import Interfaces
from .decorator.utils import get_session, get_uri, get_mainloop  # @UnusedImport
from .decorator.utils import list_interfaces as _list_interfaces
from .decorator.utils import implements as _implements

[docs]def get_players_uri(pattern=''): ''' Return string of player bus name @param pattern=None: string RegEx that filter response @return: array string of players bus name ''' return get_uri(Interfaces.MEDIA_PLAYER + '.*' + pattern)
[docs]def get_player_id_from_uri(uri): ''' Returns player mpris2 id from uri @param uri: string mpris2 player dbus uri @return: string mrpis2 id ''' mateched = re.match(Interfaces.MEDIA_PLAYER + '\.(.+)', uri or '') return mateched.groups()[0]\ if mateched\ else ''
[docs]def get_players_id(pattern=None): ''' Return string of player mpris2 id @param pattern=None: string RegEx that filter response @return: array string of players bus name ''' for item in get_uri(Interfaces.MEDIA_PLAYER + '.*' + pattern): yield get_player_id_from_uri(item)
[docs]def list_interfaces(uri, path=None, bus=None): return _list_interfaces(uri, path or Interfaces.OBJECT_PATH, bus)
[docs]def implements(uri, interface, path=Interfaces.OBJECT_PATH, bus=None): return _implements(uri, interface, path or Interfaces.OBJECT_PATH, bus)
if __name__ == '__main__': uris = get_players_uri() if not uris: print('No running players') for uri in uris: print(uri, ':') for interface in list_interfaces(uri): print('\t', interface)