|
@@ -0,0 +1,82 @@
|
|
|
+import asyncio
|
|
|
+import argparse
|
|
|
+
|
|
|
+from mopidy_async_client import MopidyClient
|
|
|
+
|
|
|
+parser = argparse.ArgumentParser(description="Mopdiy FloppyPlayer")
|
|
|
+parser.add_argument("URI_string", help="Mopdiy URI to Album/Playlist.")
|
|
|
+args = parser.parse_args()
|
|
|
+inputURI = args.URI_string
|
|
|
+
|
|
|
+
|
|
|
+async def playback_started_handler(data):
|
|
|
+ print(data)
|
|
|
+
|
|
|
+
|
|
|
+async def all_events_handler(event, data):
|
|
|
+ print(event, data)
|
|
|
+
|
|
|
+
|
|
|
+async def main3():
|
|
|
+ if inputURI == "stop":
|
|
|
+ await stop()
|
|
|
+ elif inputURI == "current_track":
|
|
|
+ await current_track()
|
|
|
+ else:
|
|
|
+ await main1()
|
|
|
+
|
|
|
+
|
|
|
+async def stop():
|
|
|
+ mopidy = await MopidyClient().connect()
|
|
|
+ await mopidy.playback.stop()
|
|
|
+ await mopidy.disconnect()
|
|
|
+
|
|
|
+
|
|
|
+async def current_track():
|
|
|
+ mopidy = await MopidyClient().connect()
|
|
|
+ res = await mopidy.playback.get_current_track()
|
|
|
+ current_data = {
|
|
|
+ "Artist": res["artists"][0]["name"],
|
|
|
+ "Album": res["album"]["name"],
|
|
|
+ "Song": res["name"],
|
|
|
+ }
|
|
|
+ print(current_data)
|
|
|
+ await mopidy.disconnect()
|
|
|
+
|
|
|
+
|
|
|
+async def main1():
|
|
|
+ link = inputURI.split(" - ")[1]
|
|
|
+ async with MopidyClient(
|
|
|
+ url="ws://127.0.0.1:6680/mopidy/ws"
|
|
|
+ ) as mopidy: # close connection explicit
|
|
|
+ await mopidy.playback.stop()
|
|
|
+ await mopidy.tracklist.clear()
|
|
|
+ await mopidy.tracklist.add(uris=[link])
|
|
|
+ await mopidy.playback.play()
|
|
|
+
|
|
|
+
|
|
|
+async def main2():
|
|
|
+ mopidy = await MopidyClient().connect()
|
|
|
+ await mopidy.playback.stop()
|
|
|
+ await mopidy.tracklist.clear()
|
|
|
+ await mopidy.tracklist.add(uris=[inputURI])
|
|
|
+ await mopidy.playback.play()
|
|
|
+ mopidy.listener.bind("track_playback_started", playback_started_handler)
|
|
|
+ mopidy.listener.bind("*", all_events_handler)
|
|
|
+
|
|
|
+ # your app logic
|
|
|
+ for i in range(10):
|
|
|
+ # res = await mopidy.tracklist.get_tracks()
|
|
|
+ res = await mopidy.playback.get_current_track()
|
|
|
+ print(res)
|
|
|
+ await asyncio.sleep(5)
|
|
|
+
|
|
|
+ # end your app logic
|
|
|
+
|
|
|
+ await mopidy.disconnect() # close connection implicit
|
|
|
+
|
|
|
+
|
|
|
+# asyncio.run(main1())
|
|
|
+# or
|
|
|
+# asyncio.run(main2())
|
|
|
+asyncio.run(main3())
|