654212086f
Following Functions have been added: 1. GenerateContentSlice : This Function Generates a slice of interfaces which are mostly string slices or strings. The Reason for this is the random nature of the maps. and also this makes adding songs to playlist a breeze as we only need the row number to add the song/album/artist to the playlist. 2. UpdateSearchView : this is the Update function for the search view which just iterates over the interface slice and draws their content to the expanded view 3. AddAlbum : As the Name Suggests adds all the contents of the Album to the Playlist 4. AddTitle : As the Name Suggests adds the track to the Playlist 5. QueryArtistTreeForAlbums : This Functions finds all the albums named album in the Artist tree and returns an album map. This is because two artists can have same album names too. Album Map is basically a [2]string{artist, album} -> path to all the songs in the album Following Functions Have been changed: 1. AddArtist : It now sends notifications. Following Functions Have been removed: 1. GetAlbumTree 2. PrintAlbumTree Album Trees are no longer needed |
||
---|---|---|
cache | ||
config | ||
search | ||
.gitignore | ||
App.go | ||
client.go | ||
fileBrowser.go | ||
go.mod | ||
go.sum | ||
imageUtils.go | ||
lastfm.go | ||
LICENSE | ||
main.go | ||
notification.go | ||
progressBar.go | ||
README.md | ||
render.go | ||
sample_config.yml | ||
utils.go |
goMP
MPD client inspired by ncmpcpp written in GO
Roadmap
- Add Functionality to Sort out most played songs
- Add a config parser
- Image Previews
- User Key Mappings
- Querying LastFM API for getting Album Art
- Fuzzy Searching
- Visual Mode (like vim) for updating playlists
Setting Up
- Music Player Daemon must be setup
- Go Should Be Installed ( for building )
- Make a YAML/TOML file in
$HOME/.config/goMP
named config.yml / config.toml - Read the sample_config.yml for config options
Installing / Building
git clone https://github.com/aditya-K2/goMP &&
cd goMP &&
go build
Configuration
Key Mappings
Following Keys can be used for Mappings
Keys | Using them in Config |
---|---|
a-z | a-z |
A-Z | A-z |
{,},(,),[,],<,> | {,},(,),[,],<,> |
Enter(Return) | ENTER/RETURN |
Tab | TAB |
Space | SPACE |
See config/kMap.go for more information
For mapping a key to some function use the following format:
Function: [ firstMapping, secondMapping, thirdMapping]
for.eg
togglePlayBack : [ "p", "TAB", "[" ] # using the quotes is neccessary.
Following functions are provided :
Functions |
---|
showChildrenContent |
togglePlayBack |
showParentContent |
nextSong |
clearPlaylist |
previousSong |
addToPlaylist |
toggleRandom |
toggleRepeat |
decreaseVolume |
increaseVolume |
navigateToFiles |
navigateToPlaylist |
navigateToMostPlayed |
quit |
stop |
updateDB |
deleteSongFromPlaylist |
Getting Album Art from LastFm API
-
Generate API Key here
-
Add the api key and api secret to config.yml
GET_COVER_ART_FROM_LAST_FM : "TRUE" # Turn On Getting Album art from lastfm api
LASTFM_API_KEY: "YOUR API KEY HERE"
LASTFM_API_SECRET: "YOUR API SECRET HERE"
- Auto correct
LASTFM_AUTO_CORRECT: 1 # 0 means it is turned off
Tested on following terminals:
- Alacritty
- ST
- URXVT