95 lines
2.3 KiB
Go
95 lines
2.3 KiB
Go
|
/*
|
||
|
* MumbleDJ
|
||
|
* By Matthieu Grieger
|
||
|
* bot/track.go
|
||
|
* Copyright (c) 2016 Matthieu Grieger (MIT License)
|
||
|
*/
|
||
|
|
||
|
package bot
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
"github.com/matthieugrieger/mumbledj/interfaces"
|
||
|
)
|
||
|
|
||
|
// Track stores all metadata related to an audio track.
|
||
|
type Track struct {
|
||
|
ID string
|
||
|
URL string
|
||
|
Title string
|
||
|
Author string
|
||
|
AuthorURL string
|
||
|
Submitter string
|
||
|
Service string
|
||
|
Filename string
|
||
|
ThumbnailURL string
|
||
|
Duration time.Duration
|
||
|
PlaybackOffset time.Duration
|
||
|
Playlist interfaces.Playlist
|
||
|
}
|
||
|
|
||
|
// GetID returns the ID of the track.
|
||
|
func (t Track) GetID() string {
|
||
|
return t.ID
|
||
|
}
|
||
|
|
||
|
// GetURL returns the URL of the track.
|
||
|
func (t Track) GetURL() string {
|
||
|
return t.URL
|
||
|
}
|
||
|
|
||
|
// GetTitle returns the title of the track.
|
||
|
func (t Track) GetTitle() string {
|
||
|
return t.Title
|
||
|
}
|
||
|
|
||
|
// GetAuthor returns the author of the track.
|
||
|
func (t Track) GetAuthor() string {
|
||
|
return t.Author
|
||
|
}
|
||
|
|
||
|
// GetAuthorURL returns the URL that links to the author of the track.
|
||
|
func (t Track) GetAuthorURL() string {
|
||
|
return t.AuthorURL
|
||
|
}
|
||
|
|
||
|
// GetSubmitter returns the submitter of the track.
|
||
|
func (t Track) GetSubmitter() string {
|
||
|
return t.Submitter
|
||
|
}
|
||
|
|
||
|
// GetService returns the name of the service from which the track was retrieved from.
|
||
|
func (t Track) GetService() string {
|
||
|
return t.Service
|
||
|
}
|
||
|
|
||
|
// GetFilename returns the name of the file stored on disk, if it exists. If no
|
||
|
// file on disk exists an empty string and error are returned.
|
||
|
func (t Track) GetFilename() string {
|
||
|
return t.Filename
|
||
|
}
|
||
|
|
||
|
// GetThumbnailURL returns the URL to the thumbnail for the track. If no thumbnail
|
||
|
// exists an empty string and error are returned.
|
||
|
func (t Track) GetThumbnailURL() string {
|
||
|
return t.ThumbnailURL
|
||
|
}
|
||
|
|
||
|
// GetDuration returns the duration of the track.
|
||
|
func (t Track) GetDuration() time.Duration {
|
||
|
return t.Duration
|
||
|
}
|
||
|
|
||
|
// GetPlaybackOffset returns the playback offset for the track. A duration
|
||
|
// of 0 is given to tracks that do not specify an offset.
|
||
|
func (t Track) GetPlaybackOffset() time.Duration {
|
||
|
return t.PlaybackOffset
|
||
|
}
|
||
|
|
||
|
// GetPlaylist returns the playlist the track is associated with, if it exists. If
|
||
|
// the track is not associated with a playlist a nil playlist and error are returned.
|
||
|
func (t Track) GetPlaylist() interfaces.Playlist {
|
||
|
return t.Playlist
|
||
|
}
|