python-DiskPlayer/player.py
2021-11-03 13:37:53 +00:00

83 lines
2.0 KiB
Python

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())