Package: lollypopint
Lollypop InterfaceThis application works in extension to the Lollypop Music Player to allow users to search for and play songs from a command-line interface.It works in two parts. The first one, the play python module, does most of the work. It accepts a series of search terms and then looks through a compatible SQLite3 database (the Lollypop music player database, by default) for the songs before launching VLC media player.The second part, the key listener, will listen for arguments for the python module from the keyboard without changing window focus, with audio feedback to ensure that the user knows that they are inputing into the program. This part will need to be run by a user added to theinputuser group.Building and InstallingRunningmakewill build the play_capture and play_repeat utilities. TheTo install, runmake install. This will install the utilities to $HOME/.local/bin and the python module to the standard installation directories via pip. For convenience, a "play" utility is installed to the user bin directory for running the python module.Song DatabaseBy default, the Python module will pull music from the databases maintained by the Lollypop music player at ~/.local/share/lollypop (specifically, lollpop.db and playlists.db). However, you can supply your own and pass the directory containing the two databases via the --directory argument.In either case, there must be two databases. The lollypop.db database will contain the tracks as well as additional information like albums and artists. There is also a playlists.db that contains playlist information.lollypop.dbcommandlinePlay requires 4 tables from lollypop.db: tracks, albums, artists, and track_artists.tracksThis row contains tracks.columntypedescriptionidINTEGERThe ID of the track. This is used to join this table with other tables.uriTEXTThe URI to the file of the song.nameTEXTThe title of the song.album_idINTEGERThe ID of the album the song belongs to. This corresponds to an album in thealbumstable.albumsThis row contains albums.columntypedescriptionidINTEGERThe ID of the album. This is used to join this table withtracks.nameTEXTThe name of the album.artistsThis table contains artists, with each row being an artist.columntypedescriptionidINTEGERThe ID of the artist. This is used to join this table withtrack_artists.nameTEXTThe name of the artist.track_artistsThis table joins tracks and artists, with each row being an artist that contributed to a song.columntypedescriptiontrack_idINTEGERThe ID of a song. This is used to join this table withtracks.artist_idINTEGERThe ID of an artist that contributed to the song. This corresponds to an id inartists.playlists.dbThis database contains playlist information. It is separate from thelollypop.dbdatabase, as tracks are represented using only their file paths here.playlistsThis table contains all playlists, with each row being a playlist.columntypedescriptionidINTEGERThe ID of a playlist.nameTEXTThe name of a playlist.tracksThis table contains all tracks that are part of a playlist. Each row corresponds to a single track.columntypedescriptionplaylist_idINTThe ID of the playlist that this track belongs to. This corresponds to a playlist in theplayliststable.uriTEXTThe link to the track as a URI path.