Make sure we kill any existing process before we try to spin one up again.
This commit is contained in:
11
skill/app.py
11
skill/app.py
@@ -182,6 +182,8 @@ manager.start()
|
|||||||
play_queue = manager.MediaQueue()
|
play_queue = manager.MediaQueue()
|
||||||
logger.debug('MediaQueue object created...')
|
logger.debug('MediaQueue object created...')
|
||||||
|
|
||||||
|
backgroundProcess = None
|
||||||
|
|
||||||
# Connect to Navidrome
|
# Connect to Navidrome
|
||||||
connection = api.SubsonicConnection(navidrome_url,
|
connection = api.SubsonicConnection(navidrome_url,
|
||||||
navidrome_user,
|
navidrome_user,
|
||||||
@@ -472,8 +474,13 @@ class NaviSonicPlayPlaylist(AbstractRequestHandler):
|
|||||||
return is_intent_name('NaviSonicPlayPlaylist')(handler_input)
|
return is_intent_name('NaviSonicPlayPlaylist')(handler_input)
|
||||||
|
|
||||||
def handle(self, handler_input: HandlerInput) -> Response:
|
def handle(self, handler_input: HandlerInput) -> Response:
|
||||||
|
global backgroundProcess
|
||||||
logger.debug('In NaviSonicPlayPlaylist')
|
logger.debug('In NaviSonicPlayPlaylist')
|
||||||
|
|
||||||
|
if backgroundProcess != None:
|
||||||
|
backgroundProcess.terminate()
|
||||||
|
backgroundProcess.join()
|
||||||
|
|
||||||
# Get the requested playlist
|
# Get the requested playlist
|
||||||
playlist = get_slot_value_v2(handler_input, 'playlist')
|
playlist = get_slot_value_v2(handler_input, 'playlist')
|
||||||
|
|
||||||
@@ -490,8 +497,8 @@ class NaviSonicPlayPlaylist(AbstractRequestHandler):
|
|||||||
song_id_list = connection.build_song_list_from_playlist(playlist_id)
|
song_id_list = connection.build_song_list_from_playlist(playlist_id)
|
||||||
play_queue.clear()
|
play_queue.clear()
|
||||||
controller.enqueue_songs(connection, play_queue, [song_id_list[0], song_id_list[1]])
|
controller.enqueue_songs(connection, play_queue, [song_id_list[0], song_id_list[1]])
|
||||||
process = Process(target=queueWorkerThread, args=(connection, play_queue, song_id_list[2:]))
|
backgroundProcess = Process(target=queueWorkerThread, args=(connection, play_queue, song_id_list[2:]))
|
||||||
process.start()
|
backgroundProcess.start()
|
||||||
speech = 'Playing playlist ' + str(playlist.value)
|
speech = 'Playing playlist ' + str(playlist.value)
|
||||||
logger.info(speech)
|
logger.info(speech)
|
||||||
card = {'title': 'AskNavidrome',
|
card = {'title': 'AskNavidrome',
|
||||||
|
|||||||
Reference in New Issue
Block a user