quintodrome/scanners/itunes/itl_scanner.go

30 lines
681 B
Go
Raw Normal View History

package itunes
import (
"github.com/deluan/gosonic/models"
2016-02-25 14:52:07 -09:00
"github.com/dhowden/itl"
"net/url"
2016-02-25 14:52:07 -09:00
"os"
"strings"
)
func LoadFolder(path string) []models.MediaFile {
xml, _ := os.Open(path)
2016-02-25 14:52:07 -09:00
l, _ := itl.ReadFromXML(xml)
mediaFiles := make([]models.MediaFile, len(l.Tracks))
i := 0
for id, track := range l.Tracks {
mediaFiles[i].Id = id
mediaFiles[i].Album = track.Album
mediaFiles[i].Title = track.Name
mediaFiles[i].Artist = track.Artist
2016-02-25 14:52:07 -09:00
path, _ = url.QueryUnescape(track.Location)
mediaFiles[i].Path = strings.TrimPrefix(path, "file://")
mediaFiles[i].CreatedAt = track.DateAdded
mediaFiles[i].UpdatedAt = track.DateModified
i++
}
return mediaFiles
}