There are four specific types of output:
- Main Menu — first activation
- Generic Menu — list of options, used for settings menu.
- Search Menu — user typing
- Detail Menu — autocompleted text with Spotify URL
^⌘⏎
should show the main menu.
It should check for updates every so often and display an update bar occasionally.
- ► Crooked Teeth ⏎
playpause
- ???
- Plans ⏎ album detail
- More from this album...
- Death Cab for Cutie ⏎ artist detail
- More from this artist...
- Search for music...
- Begin typing to search
We use this for the settings & setup menus.
These are the options required for initial operation.
- Country Code
- should trigger a list of countries.
- Create a Spotify application
- should trigger the application-creation web server.
- Link Spotify application
- should open the Spotify login page for the new app.
These are all the original setup options, plus some additional ones.
- Track Notifications
- toggle notifications of next playing tracks
After activation, any typing (3+ chars should work) should show the search menu, unless the query requires a detail menu (see below). The results should be weighted so artists>albums>songs— but only if the query is completely contained by the result. Lady Danv
should return Lady Danville, then Lady Danville EP, then songs. Otherwise sort by popularity; use a unique id for each query so popular searches follow Alfred's smart order.
If the query starts with a c
, include control items, like play, pause, shuffle, etc.
- Lady Danville ⏎ artist detail
- ★★★★☆ Artist
- Lady Danville EP ⏎ album detail
- ★★★☆☆ Album by Lady Danville
- Love to Love ⏎
open location <song>
- ★★☆☆☆ Lady Danville EP by Lady Danville
I want to maintain easily navigable menus & submenus, but need to provide the Spotify URL in order to perform an artist or album lookup. To that end, the detail menu uses a smart syntax, separated by some unicode glyphs (►
& ⟩
maybe).
The query should have all URLs in hierarchical order, than all the queries in hierarchical order, followed by a closing separator:
a menu url⟩a submenu url⟩another submenu url►query used in menu⟩query used in submenu⟩query used in final submenu⟩
The different separator should be a sign that the query is parsable. If it isn't present, ignore the query.
This syntax will not be compatible with the old syntax.
- Liked from Radio ⏎ view in Spotify
- View playlist in Spotify
- Sticking it to Myself ⏎
open location <song>
- Jonathan Coulton - Artificial Heart 2:20 ★★★☆☆
- Jonathan Coulton ⏎ view in Spotify
- View artist in Spotify
- One Christmas at a Time ⏎ album detail
- Open this album...
- ...
- Artificial Heart ⏎ view in Spotify
- View album in Spotify
-
- Sticking it to Myself ⏎
open location <song>
- Jonathan Coulton 2:20 ★★★☆☆
- Sticking it to Myself ⏎
- ...