Fix https://github.com/matthieugrieger/mumbledj/issues/45: Bot crashing after 5 minutes with no songs in queue
This commit is contained in:
parent
879af4798f
commit
873748bef3
|
@ -1,6 +1,9 @@
|
||||||
MumbleDJ Changelog
|
MumbleDJ Changelog
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
### February 18, 2015 -- `v2.6.2`
|
||||||
|
* Fixed bot crashing after 5 minutes if there is nothing in the song queue.
|
||||||
|
|
||||||
### February 17, 2015 -- `v2.6.0, v2.6.1`
|
### February 17, 2015 -- `v2.6.0, v2.6.1`
|
||||||
* Added caching system to MumbleDJ.
|
* Added caching system to MumbleDJ.
|
||||||
* Added configuration variables in `mumbledj.gcfg` for caching related settings (please note that caching is off by default).
|
* Added configuration variables in `mumbledj.gcfg` for caching related settings (please note that caching is off by default).
|
||||||
|
|
20
cache.go
20
cache.go
|
@ -73,8 +73,14 @@ func (c *SongCache) ClearExpired() {
|
||||||
songs, _ := ioutil.ReadDir(fmt.Sprintf("%s/.mumbledj/songs", dj.homeDir))
|
songs, _ := ioutil.ReadDir(fmt.Sprintf("%s/.mumbledj/songs", dj.homeDir))
|
||||||
for _, song := range songs {
|
for _, song := range songs {
|
||||||
hours := time.Since(song.ModTime()).Hours()
|
hours := time.Since(song.ModTime()).Hours()
|
||||||
if hours >= dj.conf.Cache.ExpireTime && (dj.queue.CurrentSong().youtubeId+".m4a") != song.Name() {
|
if hours >= dj.conf.Cache.ExpireTime {
|
||||||
os.Remove(fmt.Sprintf("%s/.mumbledj/songs/%s", dj.homeDir, song.Name()))
|
if dj.queue.Len() > 0 {
|
||||||
|
if (dj.queue.CurrentSong().youtubeId + ".m4a") != song.Name() {
|
||||||
|
os.Remove(fmt.Sprintf("%s/.mumbledj/songs/%s", dj.homeDir, song.Name()))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
os.Remove(fmt.Sprintf("%s/.mumbledj/songs/%s", dj.homeDir, song.Name()))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,9 +89,13 @@ func (c *SongCache) ClearExpired() {
|
||||||
func (c *SongCache) ClearOldest() error {
|
func (c *SongCache) ClearOldest() error {
|
||||||
songs, _ := ioutil.ReadDir(fmt.Sprintf("%s/.mumbledj/songs", dj.homeDir))
|
songs, _ := ioutil.ReadDir(fmt.Sprintf("%s/.mumbledj/songs", dj.homeDir))
|
||||||
sort.Sort(ByAge(songs))
|
sort.Sort(ByAge(songs))
|
||||||
if (dj.queue.CurrentSong().youtubeId + ".m4a") != songs[0].Name() {
|
if dj.queue.Len() > 0 {
|
||||||
return os.Remove(fmt.Sprintf("%s/.mumbledj/songs/%s", dj.homeDir, songs[0].Name()))
|
if (dj.queue.CurrentSong().youtubeId + ".m4a") != songs[0].Name() {
|
||||||
|
return os.Remove(fmt.Sprintf("%s/.mumbledj/songs/%s", dj.homeDir, songs[0].Name()))
|
||||||
|
} else {
|
||||||
|
return errors.New("Song is currently playing.")
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return errors.New("Song is currently playing.")
|
return os.Remove(fmt.Sprintf("%s/.mumbledj/songs/%s", dj.homeDir, songs[0].Name()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue