Nutritious Pomegranate Muffins

    working-mpd-client

    1.0.2 • Public • Published

    WorkingMpdClient

    An MPD client

    yarn add working-mpd-client
    

    Features

    • working-mpd-client supports the command sending
    • working-mpd-client allows subscribing on the server events (i.e. status updates)
    • working-mpd-client attempts to reconnect if the connection has been interrupted

    Example

    const mpdClient = new MpdClient({
      connectOptions: {
        host: 'localhost',
        port: 6600
      },
      reconnectOptions: {
        isUse: true,
        reconnectDelay: 2000
      }
    }).on('error', console.error)
      .on('changed', (name) => {
        if (name === 'playlist') printPlaylist()
      })
      .on('ready', printPlaylist)
      .init()
     
    function printPlaylist() {
      mpdClient.sendCommand('playlist', (err, result) => {
        if (err) {
          console.error(err)
        } else {
          console.log('\nnew playlist:\n' + result)
        }
      })
    }

    Information events

    • warn - a channel to notify about maintainable problems. Example: a connection has been interrupted but an attempt to reconnect will be performed. Another example: a server responded with an error to a command that did not register a callback.
    • error - a channel to notify about critical problems. Example: a connection has been interrupted and a reconnect attempt won't be performed.

    Connection events

    • ready - a connection has been established
    • disconnected - a connection has been interrupted due to a problem or as the result of a destroy method call
    • reconnecting - an attempt to recconect is in progress
    • reconnected - an attempt to reconnect succeed
    • destroyed - a client has been destroyed

    Server events

    • changed - a server reported a change

    Known changes

    • options - an option has been changed (the repeat option or the random option for example)
    • output - an audio channel has been changed
    • mixer - the volume level has been changed
    • player - the playback has been paused, resumed, or stoped
    • playlist - the playlist has been changed
    • update - a database update has been started or completed
    • database - the track database has been updated

    Methods

    • init - establish a connection; ready event follows a method call
    • destroy - closes a connection and rejects all the callbacks left in the callbacks queue; disconnected and destroyed events follow a method call
    • sendCommand - sends a command to a server and calls a callback when the server responds to the command
    • sendCommandList - sends a list of commands to a server and calls a callback when the server responds to all the commands

    Ways to send a command

    mpdClient
        .sendCommand('status')
        .sendCommand('status', someHandler)
        .sendCommand({
            cmd: 'add',
            args: 'somePath'
        })
        .sendCommand({
            cmd: 'add',
            args: ['somePath', 'anotherSomePath']
        }, someHandler)
        .sendCommandList([{
            cmd: 'add',
            args: 'somePath'
        }, 'play'])

    MPD documention

    http://www.musicpd.org/doc/protocol/

    Keywords

    Install

    npm i working-mpd-client

    DownloadsWeekly Downloads

    52

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    16.2 kB

    Total Files

    8

    Last publish

    Collaborators

    • nskazki