class MusicServer(object): """ @summary: Music server class that provides function to interrupt with new song """ def __init__(self): self.server = Server(hostname=SERVER, port=9090) self.server.connect() def interrupt(self, filename): players = self.server.get_players() for player in players: player.playlist_play(filename)
class CommonNetLMS(object): def __init__(self, hostname="192.168.1.1", port=9090, username="******", password="******"): self.lms_device = Server(hostname=hostname, port=port, username=username, password=password) self.lms_device.connect() def com_net_lms_version(self): return self.lms_device.get_version() def com_net_lms_logged_in(self): return self.lms_device.logged_in def com_net_lms_close(self): self.lms_device.disconnect() def com_net_lms_play_count(self): return self.lms_device.get_player_count() def com_net_lms_get_players(self, update=True): return self.lms_device.get_players(update=update) def com_net_lms_connect(self): self.lms_device.login() def com_net_lms_request(self, command_string, preserve_encoding=False): self.lms_device.request( command_string, preserve_encoding=preserve_encoding) def com_net_lms_request_results(self, command_string, preserve_encoding=False): self.lms_device.request_with_results( command_string, preserve_encoding=preserve_encoding) def com_net_lms_rescan(self, mode='fast'): # ‘fast’ for update changes on library, ‘full’ for complete library scan # and ‘playlists’ for playlists scan only self.lms_device.rescan(mode=mode) def com_net_lms_rescanprogress(self): self.lms_device.rescanprogress() def com_net_lms_search(self, search_term, mode='albums'): self.lms_device.search(search_term, mode=mode) def com_net_lms_telnet_connect(self): self.lms_device.telnet_connect()
def connect_to_player_at_server(playername, hostname): """Connects to a Squeezbox player connected to a server by their name. Args: playername (string): name of player hostname (string): hostname of Squeezbox server Returns: pylms.player.Player """ server = Server(hostname=hostname) server.connect() players = [ply for ply in server.get_players() if ply.name == playername] if len(players) < 1: raise RuntimeError(('No player named %s connected to ' 'server named %s') % (playername, hostname)) return players[0]
#!/usr/bin/env python from pylms.server import Server from pylms.player import Player sc = Server(hostname="10.0.0.1", port=9090, username="******", password="******") sc.connect() print "Logged in: %s" % sc.logged_in print "Version: %s" % sc.get_version() print "Num players: %s" % sc.get_player_count() print "Players: %s" % sc.get_players() players = sc.get_players() print ("Type of player = %s" % type(players)) for p in players: print "Player number %s" % p #sq = sc.get_player("00:11:22:33:44:55") print "Name: %s | Mode: %s | Time: %s | Connected: %s | WiFi: %s" % (p.get_name(), p.get_mode(), p.get_time_elapsed(), p.is_connected, p.get_wifi_signal_strength()) print p.get_track_title() print p.get_time_remaining() p=sc.get_player('00:04:20:17:5b:41') print("Current path = %s" % p.get_track_path()) with open('z.txt','w') as f: f.write("Current path = %s" % p.get_track_path()) p.playlist_play("file:///volume1/hdtl/Music/H3MusicArchive/Amazon%20MP3/Sam%20The%20Sham%20&%20The%20Pharaohs/20th%20Century%20Masters_%20The%20Millenium%20Collection_%20Best%20Of%20Sam%20The%20Sham%20&%20The%20Pharaohs/02%20-%20Lil%27%20Red%20Riding%20Hood.mp3")