mirror of
https://git.sr.ht/~phw/scotty
synced 2025-04-26 06:17:55 +02:00
Move models to separate package
This allows easier reuse and better separation of code without introducing circular dependencies
This commit is contained in:
parent
cdddf89a3e
commit
9d97e324aa
8 changed files with 43 additions and 37 deletions
|
@ -33,6 +33,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"go.uploadedlobster.com/scotty/models"
|
||||
)
|
||||
|
||||
type ScrobblerLogBackend struct {
|
||||
|
@ -46,7 +47,7 @@ func (b ScrobblerLogBackend) FromConfig(config *viper.Viper) Backend {
|
|||
return b
|
||||
}
|
||||
|
||||
func (b ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time) ([]Listen, error) {
|
||||
func (b ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time) ([]models.Listen, error) {
|
||||
file, err := os.Open(b.filePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -65,7 +66,7 @@ func (b ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time) ([]Listen,
|
|||
// Row length is often flexible
|
||||
tsvReader.FieldsPerRecord = -1
|
||||
|
||||
listens := make([]Listen, 0)
|
||||
listens := make([]models.Listen, 0)
|
||||
for {
|
||||
// A row is:
|
||||
// artistName releaseName trackName trackNumber duration rating timestamp recordingMbid
|
||||
|
@ -101,7 +102,7 @@ func (b ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time) ([]Listen,
|
|||
return listens, nil
|
||||
}
|
||||
|
||||
func (b ScrobblerLogBackend) ImportListens(listens []Listen, oldestTimestamp time.Time) (ImportResult, error) {
|
||||
func (b ScrobblerLogBackend) ImportListens(listens []models.Listen, oldestTimestamp time.Time) (ImportResult, error) {
|
||||
result := ImportResult{
|
||||
Count: 0,
|
||||
LastTimestamp: oldestTimestamp,
|
||||
|
@ -195,8 +196,8 @@ func writeHeader(writer io.Writer) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func rowToListen(row []string, client string) (Listen, error) {
|
||||
var listen Listen
|
||||
func rowToListen(row []string, client string) (models.Listen, error) {
|
||||
var listen models.Listen
|
||||
trackNumber, err := strconv.Atoi(row[3])
|
||||
if err != nil {
|
||||
return listen, err
|
||||
|
@ -212,14 +213,14 @@ func rowToListen(row []string, client string) (Listen, error) {
|
|||
return listen, err
|
||||
}
|
||||
|
||||
listen = Listen{
|
||||
Track: Track{
|
||||
listen = models.Listen{
|
||||
Track: models.Track{
|
||||
ArtistNames: []string{row[0]},
|
||||
ReleaseName: row[1],
|
||||
TrackName: row[2],
|
||||
TrackNumber: trackNumber,
|
||||
Duration: time.Duration(duration * int(time.Second)),
|
||||
AdditionalInfo: AdditionalInfo{
|
||||
AdditionalInfo: models.AdditionalInfo{
|
||||
"rockbox_rating": row[5],
|
||||
"media_player": client,
|
||||
},
|
||||
|
@ -228,7 +229,7 @@ func rowToListen(row []string, client string) (Listen, error) {
|
|||
}
|
||||
|
||||
if len(row) > 7 {
|
||||
listen.Track.RecordingMbid = MBID(row[7])
|
||||
listen.Track.RecordingMbid = models.MBID(row[7])
|
||||
}
|
||||
|
||||
return listen, nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue