def valid_for_item(self, leaf, *args, **kw): if hasattr(leaf, 'mpris_uri'): return self.valid_for_uri(leaf.mpris_uri, *args, **kw) for player_uri in get_players_uri(".+" + leaf.repr_key()): Mpris2Source.add_action(self) return self.valid_for_uri(player_uri, *args, **kw) return None
def __init__(self, mpris_uri=None): self._version = 2 default_player = __kupfer_settings__["default_mpris2_player"] players_uri = list(get_players_uri('.+' + default_player)) self.mpris_uri = mpris_uri if len(players_uri) > 0 and not mpris_uri: self.mpris_uri = players_uri[0] name = get_player_id_from_uri(self.mpris_uri) \ if self.mpris_uri \ else "Mpris2 Player Playlist" self.playlists = Playlists(dbus_uri=self.mpris_uri)\ if self.mpris_uri\ else None super(PlaylistSource, self).__init__(name + _(' playlist'))
def get_items(self): for mpris_uri in get_players_uri('.+'): yield MediaPlayerLeaf(mpris_uri, mpris_uri.split('.')[-1], mpris_uri)
def activate(self, leaf): super(InfoAction, self).activate(leaf) player = self.valid_for_item(leaf, Player) if player: for player_uri in get_players_uri(".+" + leaf.repr_key()): return MediaLeafSource(player, player_uri)
def valid_for_item(self, leaf, **kw): for player_uri in get_players_uri(): if leaf.mpris_uri in player_uri: result = self.valid_for_uri(leaf.mpris_uri, **kw) return result return None
def valid_for_item(self, leaf, **kw): for player_uri in get_players_uri(): if leaf.repr_key() in player_uri: return self.valid_for_uri(player_uri, **kw) return None
def rescan(self): self.scan(get_players_uri())
def __init__(self, pattern='.', log=log, *args, **kw): self.uris = get_players_uri(pattern) self.sources = {} self.log = log self.scan(self.uris)