From 47c2ebb822b40f4da4fde68bb47a7e39fe04d5ba Mon Sep 17 00:00:00 2001 From: Karl Date: Mon, 8 Nov 2021 12:12:31 +0000 Subject: [PATCH] reworked player logic --- player.py | 60 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/player.py b/player.py index b2e36f3..1e3d3c6 100644 --- a/player.py +++ b/player.py @@ -9,30 +9,42 @@ args = parser.parse_args() inputURI = args.URI_string -async def selector(): - if "ytmusic" in inputURI or "http://" in inputURI: - await run_floppy(inputURI) +async def selector(action): + last_disk_read = open("/home/pi/pythonDiskPlayer/last_disk.txt", "r+").read() + if action is not "" and last_disk_read != action: + mopidy = await MopidyClient().connect() + if action == "stop": + await mopidy.playback.stop() + await mopidy.tracklist.clear() + elif action == "next": + await mopidy.playback.next() + elif action == "previous": + await mopidy.playback.previous() + elif action == "shuffle": + await mopidy.tracklist.shuffle() + await mopidy.tracklist.move( + start=await mopidy.tracklist.index(), + end=await mopidy.tracklist.index(), + to_position=0, + ) + elif action == "playpause": + if await mopidy.playback.get_state() == "playing": + await mopidy.playback.pause() + else: + await mopidy.playback.resume() + elif action == "": + return + else: + last_disk = open("/home/pi/pythonDiskPlayer/last_disk.txt", "w") + last_disk.write(action) + await run_floppy(action) + await mopidy.disconnect() else: - await action(inputURI) - - -async def action(action): - mopidy = await MopidyClient().connect() - if action == "stop": - await mopidy.playback.stop() - elif action == "next": - await mopidy.playback.next() - elif action == "previous": - await mopidy.playback.previous() - elif action == "play": - await mopidy.playback.play() - elif action == "pause": - await mopidy.playback.pause() - elif action == "resume": - await mopidy.playback.resume() - elif action == "shuffle": - await mopidy.tracklist.shuffle() - await mopidy.disconnect() + mopidy = await MopidyClient().connect() + if await mopidy.playback.get_state() == "playing": + return + else: + await run_floppy(action) async def run_floppy(input): @@ -45,4 +57,4 @@ async def run_floppy(input): await mopidy.disconnect() -asyncio.run(selector()) +asyncio.run(selector(inputURI))