mood-media-player
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

npm npm GitHub issues GitHub license

mood-media-player

Javascript/Typescript library for controlling a Mood Media player through the REST api

Setup

Install with npm

npm i --save mood-media-player

Import module and login using default credentials

import { MoodPlayer } from "mood-media-player";
 
const moodPlayer = new MoodPlayer(Environment.moodUri);
 
moodPlayer.login()

Examples

Get Current Station

The API makes heavy use of RxJS Observables so you must subscribe to any async api calls like so

moodPlayer.login().subscribe(() => {
    moodPlayer.getCurrentStation()
        .subscribe(console.log);
});

Set Volume

Under the hood, we use Observable.bindCallback so the underlying AJAX request is only sent if you subscribe to the observable. Because of this, you must subscribe to simple commands, even if you do not care about the response.

moodPlayer.login().subscribe(() => {
    moodPlayer.setVolume(75)
        .subscribe(console.log);
 
    moodPlayer.skipTrack()
        .subscribe(console.log);
});

Search and Create Stations

Query the preset genre stations in Pandora and create a personal station from the first result

moodPlayer.login()
    .mergeMap(() => moodPlayer.searchGenreStations("50s rock"))
    .first()
    .do(station => console.log(station.name))
    .map(station => station.id)
    .mergeMap(moodPlayer.createStation)
    .subscribe(console.log);

Give Positive Feedback for Last 5 Songs

moodPlayer.login()
    .mergeMap(moodPlayer.getStationHistory)
    .take(5)
    .do(song => console.log(song.title))
    .map(song => song.id)
    .mergeMap(moodPlayer.givePositiveTrackFeedback)
    .subscribe(console.log);

Poll

Since the Mood devices don't support web sockets you must poll to receive updates. This example polls every 1 second and logs the song every time it changes.

moodPlayer.login().subscribe(() => {
    moodPlayer.poll().song$
        .subscribe(console.log);
});

Readme

Keywords

none

Package Sidebar

Install

npm i mood-media-player

Weekly Downloads

0

Version

1.1.1

License

MIT

Last publish

Collaborators

  • manbearwiz