Added a restriction on maximum video length

This commit is contained in:
Jake 2015-02-16 16:34:38 +00:00 committed by Jake
parent 4957133c14
commit d11b6326cc
5 changed files with 13 additions and 0 deletions

View file

@ -195,6 +195,8 @@ func add(user *gumble.User, username, url string) {
}
}
}
} else if fmt.Sprint(err) == "video exceeds the maximum allowed duration." {
dj.SendPrivateMessage(user, VIDEO_TOO_LONG_MSG)
} else {
dj.SendPrivateMessage(user, INVALID_YOUTUBE_ID_MSG)
}

View file

@ -22,6 +22,9 @@ PlaylistSkipRatio = 0.5
# NOTE: If you do not want a comment by default, set the variable equal to an empty string ("").
DefaultComment = "Hello! I am a bot. Type !help for a list of commands."
# Maximum song duration in seconds
# Default Value 600
MaxSongDuration = 600
[Cache]

View file

@ -20,6 +20,7 @@ type DjConfig struct {
SkipRatio float32
PlaylistSkipRatio float32
DefaultComment string
MaxSongDuration int
}
Cache struct {
Enabled bool

View file

@ -60,6 +60,10 @@ func NewSong(user, id string, playlist *Playlist) (*Song, error) {
duration, _ := jq.Int("data", "duration")
videoDuration := fmt.Sprintf("%d:%02d", duration/60, duration%60)
if duration > dj.conf.General.MaxSongDuration {
return nil, errors.New("video exceeds the maximum allowed duration.")
}
song := &Song{
submitter: user,
title: videoTitle,

View file

@ -22,6 +22,9 @@ const CHANNEL_DOES_NOT_EXIST_MSG = "The channel you specified does not exist."
// Message shown to users when they attempt to add an invalid URL to the queue.
const INVALID_URL_MSG = "The URL you submitted does not match the required format."
// Message shown to users when they attempt to add a video that's too long
const VIDEO_TOO_LONG_MSG = "The video you submitted exceeds the duration allowed by the server."
// Message shown to users when they attempt to perform an action on a song when
// no song is playing.
const NO_MUSIC_PLAYING_MSG = "There is no music playing at the moment."