Example #1
0
def player_mode(player_id):  
  json = request.get_json()
  print('player_mode:', request)
  print('player_mode:', json)
  server = connect(app.config['SERVER'])
  modes[json['mode']](server, player_id)
  server.close()
  return ('', 204)
Example #2
0
def player_volume(player_id):
  json = request.get_json()
  print('player_mode:', request)
  print('player_mode:', json)
  server = connect(app.config['SERVER'])
  set_player_volume(server, player_id, '{0:+}'.format(json['delta']))
  server.close()
  return ('', 204)
Example #3
0
def album_page(album_id):
  server = connect(app.config['SERVER'])
  album = get_albums(server, album_id=album_id)[0]
  artist = get_artists(server, artist_id=album['artist_id'])[0]
  tracks = get_tracks(server, album_id=album_id)
  tracks.sort(key=lambda track: track['tracknum'])
  server.close()
  return render_template('album.html', artist=artist, album=album, tracks=tracks)
Example #4
0
def player_playlist_current_index(player_id):
  json = request.get_json()
  print('player_mode:', request)
  print('player_mode:', json)
  server = connect(app.config['SERVER'])
  if json['delta'] < 0:
    previous_track(server, player_id)
  elif json['delta'] > 0:
    next_track(server, player_id)
  server.close()
  return ('', 204)
Example #5
0
def player_playlist_tracks(player_id):
  method_to_command = {
    'PUT': 'load',
    'POST': 'add',
  }
  json = request.get_json()
  server = connect(app.config['SERVER'])
  player_playlist_control(server, player_id, method_to_command[request.method],
    **{type_to_id_tag[json['type']]: json['id']})
  new_player_status = status(server, player_id)['player']
  server.close()
  return jsonify(new_player_status['playlist'])
Example #6
0
def onMQTTMsg(client,userdate,msg):
  print('MQTTMsg: ####' )
  payload = msg.payload.decode("utf-8")
  topic = msg.topic.split('/')
  print(topic, payload)
  server = juice.connect('euterpe3', 9090)
  players = juice.get_players(server)
  for player in players:
    print(player)
    if player['name'] == topic[-1]:
      juice.pause(server, player['id'])
      break;
  server.close()
Example #7
0
def artists_page():
  server = connect(app.config['SERVER'])
  artists = get_artists(server)
  server.close()
  return render_template('artists.html',
                         artists=artists)
Example #8
0
def player_playlist_tracks_indexed(player_id, index):
  server = connect(app.config['SERVER'])
  player_playlist_delete(server, player_id, index)
  server.close()
  return ('', 204)
Example #9
0
def new_music_page():
  server = connect(app.config['SERVER'])
  albums = get_albums(server, sort='new')
  server.close()
  return render_template('new_music.html', albums=albums)
Example #10
0
def track_page(track_id):
  server = connect(app.config['SERVER'])
  track = get_tracks(server, track_id=track_id)[0]
  server.close()
  return render_template('track.html', track=track)
Example #11
0
def players():
  server = connect(app.config['SERVER'])
  players = get_players(server)
  server.close()
  return jsonify(players)
Example #12
0
def library_years():
  server = connect(app.config['SERVER'])
  years = get_years(server)
  server.close()
  return jsonify(years)
Example #13
0
def library_tracks():
  server = connect(app.config['SERVER'])
  tracks = get_tracks(server, **{k: request.args[k] for k in request.args.keys()})
  server.close()
  #print('library_tracks:', tracks)
  return jsonify(tracks)
Example #14
0
def library_album_by_id(album_id):
  server = connect(app.config['SERVER'])
  albums = get_albums(server, album_id=album_id)
  server.close()
  #print('library_album_by_id(', album_id, ')', albums[0])
  return jsonify(albums[0])
Example #15
0
def library_albums():
  server = connect(app.config['SERVER'])
  albums = get_albums(server, **{k: request.args[k] for k in request.args.keys()})
  server.close()
  print('library_albums()', jsonify(albums).data[16500:16700])
  return jsonify(albums)
Example #16
0
def library_artist_by_id(id):
  server = connect(app.config['SERVER'])
  artists = get_artists(server, artist_id=id)
  server.close()
  return jsonify(artists[0])
Example #17
0
def library_artists():
  server = connect(app.config['SERVER'])
  artists = get_artists(server)
  server.close()
  return jsonify(artists)
Example #18
0
def artist_page(artist_id):
  server = connect(app.config['SERVER'])
  artist = get_artists(server, artist_id=artist_id)[0]
  albums = get_albums(server, artist_id=artist_id)
  server.close()
  return render_template('artist.html', albums=albums, artist=artist)
Example #19
0
def albums_page():
  server = connect(app.config['SERVER'])
  albums = get_albums(server)
  server.close()
  return render_template('albums.html', albums=albums)
Example #20
0
def player(player_id):
  server = connect(app.config['SERVER'])
  players = status(server, player_id)
  server.close()
  return jsonify(players)
Example #21
0
def tracks_page():
  server = connect(app.config['SERVER'])
  tracks = get_tracks(server)
  server.close()
  return render_template('tracks.html', tracks=tracks)
Example #22
0
def genre_page(genre_id):
  server = connect(app.config['SERVER'])
  genre = [g for g in get_genres(server) if g['id'] == int(genre_id)][0]
  artists = get_artists(server, genre_id=genre_id)
  server.close()
  return render_template('genre.html', genre=genre, artists=artists)
Example #23
0
def genres_page():
  server = connect(app.config['SERVER'])
  genres = get_genres(server)
  server.close()
  return render_template('genres.html', genres=genres)
Example #24
0
def year_page(year):
  server = connect(app.config['SERVER'])
  albums = get_albums(server, year=year)
  server.close()
  return render_template('year.html', year=year, albums=albums)
Example #25
0
def years_page():
  server = connect(app.config['SERVER'])
  years = get_years(server)
  server.close()
  return render_template('years.html', years=years)
Example #26
0
      'album': track.get('album', None),
      'album_id': track.get('album_id', None),
      'artist': track.get('artist', None),
      'artist_id': track.get('artist_id', None),
      'title': player.get('current_title', None), 
      'volume': player['volume'],
      'playlist': player['playlist'],
      'playlist_cur_index': player.get('playlist_cur_index', None)
  }
  last_status[player['name']] = status
  client.publish('squeezebox/players/' + player['name'],
    json.dumps(status), retain=True, qos=1)
  client.publish('squeezebox/display/' + player['name'], 
    '{}\t{}\t{}'.format(track.get('title','---'),
                        track.get('artist','---'),
                        track.get('album','---')).encode('ascii','ignore'),
    retain=True, qos=1)

if __name__ == '__main__':
  client = mqtt.Client('juice-bridge')
  client.connect('euterpe3')
  client.on_message = onMQTTMsg
  #client.on_log = lambda client,ussrdata,level,buf: print("log:",level,buf)
  client.loop_start()
  client.subscribe("squeezebox/command/#")
  server = juice.connect('euterpe3', 9090)
  players = juice.get_players(server)
  for player in players:
    server.write(msg_format.player_status(player['id'], subscribe=0, start=0, page_size=9999).encode('ascii'))
  juice.loop_start(server, onSBMsg)