Generating Album and Artist Tree
Artist tree is a map that maps the artist names to a map of albums Similarly the Album tree is a map that maps album names to their content. Album trees are generated from artist trees. the content of the album is a map of title to the destinationFile.
This commit is contained in:
parent
5623551b61
commit
f529fd556c
54
client.go
54
client.go
@ -1,6 +1,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/rivo/tview"
|
"github.com/rivo/tview"
|
||||||
@ -83,3 +85,55 @@ func Update(f []FileNode, inputTable *tview.Table) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GenerateArtistTree() (map[string]map[string]map[string]string, error) {
|
||||||
|
ArtistTree := make(map[string]map[string]map[string]string)
|
||||||
|
AllInfo, err := CONN.ListAllInfo("/")
|
||||||
|
if err == nil {
|
||||||
|
for _, i := range AllInfo {
|
||||||
|
if _, ArtistExists := ArtistTree[i["Artist"]]; !ArtistExists {
|
||||||
|
ArtistTree[i["Artist"]] = make(map[string]map[string]string)
|
||||||
|
}
|
||||||
|
if _, AlbumExists := ArtistTree[i["Artist"]][i["Album"]]; !AlbumExists {
|
||||||
|
ArtistTree[i["Artist"]][i["Album"]] = make(map[string]string)
|
||||||
|
}
|
||||||
|
if _, TitleExists := ArtistTree[i["Artist"]][i["Album"]][i["Title"]]; !TitleExists {
|
||||||
|
ArtistTree[i["Artist"]][i["Album"]][i["Title"]] = i["file"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ArtistTree, nil
|
||||||
|
} else {
|
||||||
|
return nil, errors.New("Could Not Generate Artist Tree")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAlbumTree(a map[string]map[string]map[string]string) map[string]map[string]string {
|
||||||
|
AlbumTree := make(map[string]map[string]string)
|
||||||
|
for _, AlbumMap := range a {
|
||||||
|
for AlbumName, AlbumContent := range AlbumMap {
|
||||||
|
AlbumTree[AlbumName] = AlbumContent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return AlbumTree
|
||||||
|
}
|
||||||
|
|
||||||
|
func PrintAlbumTree(a map[string]map[string]string) {
|
||||||
|
for k, v := range a {
|
||||||
|
fmt.Println(k)
|
||||||
|
for k1 := range v {
|
||||||
|
fmt.Println("\t|---", k1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func PrintArtistTree(a map[string]map[string]map[string]string) {
|
||||||
|
for k, v := range a {
|
||||||
|
fmt.Println(k, " : ")
|
||||||
|
for k1, v1 := range v {
|
||||||
|
fmt.Println("\t|---", k1, " : ")
|
||||||
|
for k2 := range v1 {
|
||||||
|
fmt.Println("\t\t|---", k2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user