Facilitates the connection between the stremio-api
and Stremio, with extras such as user/add-on sync and persistence.
Contains two main modules:
This is a stateless module to request the stremio-api
It's constructed like this:
var StremioAPIClient = require('stremio-api-client').StremioAPIClient
var API = new StremioAPIClient(options)
-
endpoint
- URL to the API, default ishttps://api.strem.io
-
authKey
- session auth key, default isnull
-
request(method, params)
- returns a promise
This is a stateful class that, when created, would take care of persistance and sync of the user and her add-ons collection
It's constructed like this:
var StremioAPIStore = require('stremio-api-client').StremioAPIStore
var APIStore = new StremioAPIStore(options)
-
endpoint
- URL to the API, default ishttps://api.strem.io
-
storage
- a storage object with synchronousgetJSON
andsetJSON
properties
APIStore.user
- User object
APIStore.addons
- AddonCollection
NOTE: All the methods return promises
APIStore.login({ email, password, fbLoginToken })
- logs in; fbLoginToken
is optional
APIStore.register({ email, password })
- registers a new user
APIStore.logout()
- logs out
All of the above 3 methods change API.user
and therefore will emit (upon success) user-change
APIStore.pushUser()
- pushes the local API.user
to the API; requires to be logged in
APIStore.pullUser()
- pull the latest user from the API; requires to be logged in
pullUser()
may emit user-change
if the remote user is more recent
APIStore.pushAddonCollection()
- pushes local API.addons
collection to the API (via addonCollectionSet
); requires to be logged in
APIStore.pullAddonCollection()
- pulls the remote add-on collection (via addonCollectionGet
), may emit addons-change
or addons-different
user-change
: emitted when the User is changed (by ID, i.e. completely different user)
addons-change
: emitted when the add-on set (AddonCollection) is changed
addons-different
: emitted when the add-on collection is different (compared through transportUrls)