This repository has been archived on 2019-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
mumbledj/bot/track.go

95 lines
2.3 KiB
Go
Raw Normal View History

2016-06-21 02:16:05 +02:00
/*
* 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
}