Skip to content

Commit

Permalink
* Stylistic fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
stridger committed Mar 19, 2019
1 parent c11ceed commit f118990
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 36 deletions.
2 changes: 1 addition & 1 deletion handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def lambda_handler(event, context, server=None):
deviceId = event['context']['System']['device']['deviceId']
server = server or get_server(deviceId)
echomaps = server.get_echomaps()
except KeyError or NoneType:
except KeyError as e:
if not SKILL_SETTINGS.use_spoken_errors:
raise e
if deviceId in echomaps:
Expand Down
5 changes: 3 additions & 2 deletions squeezealexa/alexa/intents.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,6 @@ class Custom(object):
for s in ["SetVolume", "SetVolumePercent"])
NOW_PLAYING, SELECT_PLAYER = ("%sIntent" % s
for s in ["NowPlaying", "SelectPlayer"])
SET_ECHOMAP, DEL_ECHOMAP_PLAYER, DEL_ECHOMAP_DEVICE = ("%sIntent" % s
for s in ["SetEchoMap", "DelEchoMapPlayer", "DelEchoMapDevice"])
(SET_ECHOMAP, DEL_ECHOMAP_PLAYER,
DEL_ECHOMAP_DEVICE) = ("%sIntent" % s for s in ["SetEchoMap",
"DelEchoMapPlayer", "DelEchoMapDevice"])
23 changes: 17 additions & 6 deletions squeezealexa/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,12 @@ def on_set_echomap(self, intent, session, pid=None):
srv.set_echomap(pid, srv.deviceId)
if pid:
player = srv.players[pid]
return self.smart_response(text=_("Set the default player for current Echo to {player}").format(player=player.name),
speech=_("I have set the default player for current Echo to {player}").format(player=player.name))
return self.smart_response(
text=(_("Set the default player for current Echo "
"to {player}").format(player=player.name)),
speech=(_("I have set the default player for "
"current Echo to {player}")
.format(player=player.name)))
speech = (_("I only found these players: {players}. "
"Could you try again?")
.format(players=human_join(srv.player_names)))
Expand All @@ -240,8 +244,12 @@ def on_del_echomap_player(self, intent, session, pid=None):
srv.del_echomap(pid)
if pid:
player = srv.players[pid]
return self.smart_response(text=_("Removed the default associations for player {player}").format(player=player.name),
speech=_("I have removed the default associations for player {player}").format(player=player.name))
text = (_("Removed the default associations for player {player}")
.format(player=player.name))
speech = (_("I have removed the default associations "
"for player {player}")
.format(player=player.name))
return self.smart_response(text, speech)
speech = (_("I only found these players: {players}. "
"Could you try again?")
.format(players=human_join(srv.player_names)))
Expand All @@ -260,8 +268,11 @@ def on_del_echomap_player(self, intent, session, pid=None):
def on_del_echomap_device(self, intent, session, pid=None):
srv = self._server
srv.del_echomap(False, srv.deviceId)
return self.smart_response(text=_("Removed the default player for the current Echo device"),
speech=_("I have removed the default player for the current Echo device"))
return self.smart_response(
text=_("Removed the default player for "
"the current Echo device"),
speech=_("I have removed the default player for "
"the current Echo device"))

@handler.handle(Audio.SHUFFLE_ON)
@handler.handle(CustomAudio.SHUFFLE_ON)
Expand Down
69 changes: 42 additions & 27 deletions squeezealexa/squeezebox/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,17 +394,17 @@ def get_squeezealexa_favorite_id(self):
resp = self.__a_request("favorites items 0 255",
raw=True)
favorites = {d['name']: d
for d in self._groups(resp, 'id')
if d['hasitems']}
if not 'squeeze-alexa' in favorites:
for d in self._groups(resp, 'id')
if d['hasitems']}
if 'squeeze-alexa' not in favorites:
print_d("Creating squeeze-alexa container in Favorites...")
resp = self.__a_request("favorites addlevel title:squeeze-alexa",
raw=True)
raw=True)
resp = self.__a_request("favorites items 0 255",
raw=True)
raw=True)
favorites = {d['name']: d
for d in self._groups(resp, 'id')
if d['hasitems']}
for d in self._groups(resp, 'id')
if d['hasitems']}
if 'squeeze-alexa' in favorites:
id = favorites['squeeze-alexa']['id']
print_d("Found squeeze-alexa favorite id={id}", id=id)
Expand All @@ -416,44 +416,59 @@ def get_echomaps(self):
""" Updates the list of the Squeezebox players available and other
server metadata."""
id = self.get_squeezealexa_favorite_id()
resp = self.__a_request("favorites items 0 255 item_id:%s want_url:1" % id,
raw=True)
resp = self.__a_request("favorites items 0 255 item_id:%s want_url:1" %
id, raw=True)
self.__echomaps = {d['url']: d for d in self._groups(resp, 'id')
if d['isaudio']}
if d['isaudio']}
print_d(with_example("Loaded {num} Echo Maps", self.__echomaps))
return self.__echomaps

def set_echomap(self, player, deviceId):
self.__echomaps = self.get_echomaps()
id = self.get_squeezealexa_favorite_id()
if deviceId not in self.__echomaps:
print_d("Setting new Echo Map from {player} to {deviceId}", player=player, deviceId=deviceId)
resp = self.__a_request("favorites add item_id:%s.0 title:%s url:%s" % (id, player, deviceId),
raw=True)
print_d("Setting new Echo Map from {player} to {deviceId}",
player=player, deviceId=deviceId)
self.__a_request("favorites add item_id:%s.0 title:%s"
"url:%s" % (id, player, deviceId),
raw=True)
elif self.__echomaps[deviceId]['name'] != player:
print_d("Deleting outdated Echo Map with {id}", id=self.__echomaps[deviceId]['id'])
resp = self.__a_request("favorites delete item_id:%s" % self.__echomaps[deviceId]['id'],
raw=True)
print_d("Setting new Echo Map from {player} to {deviceId}", player=player, deviceId=deviceId)
resp = self.__a_request("favorites add item_id:%s.0 title:%s url:%s" % (id, player, deviceId),
raw=True)
print_d("Deleting outdated Echo Map with {id}",
id=self.__echomaps[deviceId]['id'])
self.__a_request("favorites delete item_id:%s" %
self.__echomaps[deviceId]['id'],
raw=True)
print_d("Setting new Echo Map from {player} to {deviceId}",
player=player, deviceId=deviceId)
self.__a_request("favorites add item_id:%s.0 title:%s "
"url:%s" % (id, player, deviceId),
raw=True)

def del_echomap(self, player=False, deviceId=False):
self.__echomaps = self.get_echomaps()
if deviceId:
print_d("Trying to remove default player for {deviceId}", deviceId=deviceId)
print_d("Trying to remove default player for {deviceId}",
deviceId=deviceId)
while deviceId in self.__echomaps:
print_d("Deleting Echo Map with ID {id}", id=self.__echomaps[deviceId]['id'])
resp = self.__a_request("favorites delete item_id:%s" % self.__echomaps[deviceId]['id'],
raw=True)
print_d("Deleting Echo Map with ID {id}",
id=self.__echomaps[deviceId]['id'])
self.__a_request("favorites delete item_id:%s" %
self.__echomaps[deviceId]['id'],
raw=True)
self.__echomaps = self.get_echomaps()
if player:
inverted_echomaps = {v['name']: { 'deviceId': k, 'id': v['id'] } for k, v in self.__echomaps.items()}
inverted_echomaps = {v['name']: {'deviceId': k, 'id': v['id']}
for k, v in self.__echomaps.items()}
while player in inverted_echomaps:
print_d("Deleting Echo Map with ID {id}", id=inverted_echomaps[player]['id'])
resp = self.__a_request("favorites delete item_id:%s" % inverted_echomaps[player]['id'],
raw=True)
print_d("Deleting Echo Map with ID {id}",
id=inverted_echomaps[player]['id'])
self.__a_request("favorites delete item_id:%s" %
inverted_echomaps[player]['id'],
raw=True)
self.__echomaps = self.get_echomaps()
inverted_echomaps = {v['name']: {'deviceId': k, 'id': v['id']}
for k, v in self.__echomaps.items()}


def people_from(details: Dict, default=None) -> Union[str, None]:
genres = {g.lower() for g in details.get('genre', [])}
Expand Down

0 comments on commit f118990

Please sign in to comment.