Skip to main content

Async Mopidy Client via JSON/RPC Websocket interface

Project description

License: GPL v2

Mopidy-Async-Client

Fork of Mopidy-json-client, but from scratch and async

Async Mopidy Client via JSON/RPC Websocket interface

Usage

mopidy-async-client provides a main class MopidyClient, which manages the connection and methods to the Mopidy Server.

import asyncio

from mopidy_async_client import MopidyClient


async def playback_started_handler(data):
    print(data)


async def all_events_handler(event, data):
    print(event, data)


async def main1():
    async with MopidyClient(url='ws://some_ip:6680/mopidy/ws') as mopidy:  # close connection explicit
        await mopidy.playback.play()


async def main2():
    mopidy = await MopidyClient().connect()
    mopidy.listener.bind('track_playback_started', playback_started_handler)
    mopidy.listener.bind('*', all_events_handler)

    # your app logic
    for i in range(10):
        await asyncio.sleep(5)
    # end your app logic

    await mopidy.disconnect()  # close connection implicit


asyncio.run(main1())
# or 
asyncio.run(main2())

Parse results

You can specify parse_results=True in MopidyClient and get Mopidy objects instead of json dictionaries. To do this, you need to install Mopidy locally (only for importing models)

async with MopidyClient(parse_results=True) as mopidy:
    res = await mopidy.tracklist.get_tracks()
    print(res)

>>> [Track(date='2020-01-01', length=392533, name='audio.mp3', uri='file:///home/svin/Music/audio.mp3')]
# instead of
>>> [{'__model__': 'Track', 'uri': 'file:///home/svin/Music/audio.mp3', 'name': 'audio.mp3', 'date': '2020-01-01', 'length': 392533}]

Installation

pip install mopidy-async-client

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mopidy-async-client-0.6.4.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

mopidy_async_client-0.6.4-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file mopidy-async-client-0.6.4.tar.gz.

File metadata

  • Download URL: mopidy-async-client-0.6.4.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.26.0

File hashes

Hashes for mopidy-async-client-0.6.4.tar.gz
Algorithm Hash digest
SHA256 0677d41ef9dff7b8fa5142b308d4bfa15b02b0f8a6398f9f37f24e60e87aaaac
MD5 26234f8eeef24d274fd84b61217076c6
BLAKE2b-256 a21f413baad91f6b15d01b02b24b8fbc6c6d2259170e3f909408a1c6e3f219bf

See more details on using hashes here.

File details

Details for the file mopidy_async_client-0.6.4-py3-none-any.whl.

File metadata

File hashes

Hashes for mopidy_async_client-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 dd7d36ab3245ddf0b3dd19bbb49fe276f50d066572ac8c4a2071741ba30eb984
MD5 67593353134d95db694ecc613a46a5ce
BLAKE2b-256 2a41b8c92733b9e7dc12d45ac7534ae186edc9d9f24a360acb5c918c9af44903

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page