How jaedb/iris works
Iris is Mopidy’s web-based music interface. The browser enters a routed React application, browses/searches local and provider catalogs, then manages playback queues and settings through service actions; the Python Mopidy extension exposes HTTP/WebSocket methods that connect the UI to server capabilities. The README also documents Spotify discovery, Last.fm metadata, Genius lyrics, and Snapcast multi-device streaming. Some subsystem links are based on documented capabilities and the file tree; unsampled implementation details are not inferred.
Main entry points: App.js Application router · Settings.js Service settings · mopidy/actions.js Mopidy actions · spotify/actions.js Spotify actions
Components 23
Web interface
- Browser entry
src/js/index.js - Application router
src/js/App.js
Music workflows
- Library browsing
src/js/views/Library - Catalog search
src/js/views/Search.js - Music discovery
src/js/views/Discover - Queue and playback
src/js/views/Queue.js - Service settings
src/js/views/Settings.js
Client services
- Redux store
src/js/store/index.js - Mopidy actions
src/js/services/mopidy/actions.js - Spotify actions
src/js/services/spotify/actions.js - Last.fm actions
src/js/services/lastfm/actions.js - Genius actions
src/js/services/genius/actions.js - Snapcast actions
src/js/services/snapcast/actions.js - Browser preferences
src/js/util/storage.js
Mopidy extension
- Mopidy extension
mopidy_iris/frontend.py - HTTP and WebSocket
mopidy_iris/handlers.py - Mopidy integration
mopidy_iris/core.py
Provider integrations
- Spotify
- Last.fm
- Genius
- Snapcast
Other components
- Listener
- Mopidy server
Connections 26
- Listener → Browser entry: opens
- Browser entry → Application router: renders
- Application router → Redux store: reads and dispatches
- Application router → Library browsing: routes to
- Application router → Catalog search: routes to
- Application router → Music discovery: routes to
- Application router → Queue and playback: routes to
- Application router → Service settings: routes to
- Library browsing → Mopidy actions: requests library data
- Catalog search → Mopidy actions: searches catalogs
- Catalog search → Spotify actions: searches provider
- Music discovery → Spotify actions: requests discovery
- Queue and playback → Mopidy actions: controls playback
- Service settings → Spotify actions: configures authorization
- Service settings → Last.fm actions: configures authorization
- Service settings → Genius actions: configures authorization
- Service settings → Snapcast actions: configures streaming
- Redux store → Browser preferences: persists state
- Mopidy actions → Mopidy extension: calls methods
- Mopidy extension → HTTP and WebSocket: registers endpoints
- HTTP and WebSocket → Mopidy integration: dispatches methods
- Mopidy integration → Mopidy server: uses server core
- Spotify actions → Spotify: requests provider data
- Last.fm actions → Last.fm: requests metadata
- Genius actions → Genius: requests lyrics
- Snapcast actions → Snapcast: controls stream clients