Fixed some bugs and added Random Classic

This commit is contained in:
2024-07-28 15:58:12 +02:00
parent 59f1e2c75c
commit 51a74a9ed1
12 changed files with 152 additions and 16 deletions

View File

@@ -54,13 +54,15 @@ func GetRandomSong() string {
}
func GetRandomSongLowChance() string {
gameList := db.FindAllGames()
if games == nil || len(games) == 0 {
games = db.FindAllGames()
}
var listOfGames []models.GameData
var averagePlayed = getAveragePlayed(gameList)
var averagePlayed = getAveragePlayed(games)
for _, data := range gameList {
for _, data := range games {
var timesToAdd = averagePlayed - data.TimesPlayed
if timesToAdd <= 0 {
listOfGames = append(listOfGames, data)
@@ -77,6 +79,40 @@ func GetRandomSongLowChance() string {
}
func GetRandomSongClassic() string {
if games == nil || len(games) == 0 {
games = db.FindAllGames()
}
var listOfAllSongs []models.SongData
for _, game := range games {
listOfAllSongs = append(listOfAllSongs, db.FindSongsFromGame(game.Id)...)
}
songFound := false
var song models.SongData
for !songFound {
song = listOfAllSongs[rand.Intn(len(listOfAllSongs))]
gameData := db.GetGameById(song.GameId)
//Check if file exists and open
openFile, err := os.Open(song.Path)
if err != nil || gameData.Path+"/"+song.FileName != song.Path {
//File not found
db.RemoveBrokenSong(song)
log.Println("Song not found, song '" + song.SongName + "' deleted from game '" + gameData.GameName + "' FileName: " + song.FileName)
} else {
songFound = true
}
err = openFile.Close()
if err != nil {
log.Println(err)
}
}
lastFetched = song
return song.Path
}
func GetSongInfo() models.SongInfo {
if songQue == nil {
return models.SongInfo{}
@@ -195,17 +231,17 @@ func getSongFromList(games []models.GameData) models.SongData {
//Check if file exists and open
openFile, err := os.Open(song.Path)
if err != nil {
if err != nil || game.Path+"/"+song.FileName != song.Path {
//File not found
db.RemoveBrokenSong(song)
log.Println("Song not found, song '" + song.SongName + "' deleted from game '" + game.GameName + "' songPath: " + song.Path)
log.Println("Song not found, song '" + song.SongName + "' deleted from game '" + game.GameName + "' FileName: " + song.FileName)
} else {
songFound = true
}
err = openFile.Close()
if err != nil {
log.Fatal(err)
log.Println(err)
}
}
return song