Added check if game not found
This commit is contained in:
@@ -2,11 +2,13 @@ package db
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/jackc/pgtype"
|
|
||||||
"music-server/pkg/models"
|
"music-server/pkg/models"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jackc/pgtype"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetGameName(gameId int) string {
|
func GetGameName(gameId int) string {
|
||||||
@@ -20,17 +22,17 @@ func GetGameName(gameId int) string {
|
|||||||
return gameName
|
return gameName
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetGameById(gameId int) models.GameData {
|
func GetGameById(gameId int) (models.GameData, error) {
|
||||||
var id, timesPlayed int
|
var id, timesPlayed int
|
||||||
var numberOfSongs pgtype.Int4
|
var numberOfSongs pgtype.Int4
|
||||||
var gameName, path string
|
var gameName, path string
|
||||||
var added, deleted, lastChanged, lastPlayed pgtype.Timestamp
|
var added, deleted, lastChanged, lastPlayed pgtype.Timestamp
|
||||||
err := pool.QueryRow(context.Background(),
|
err := pool.QueryRow(context.Background(),
|
||||||
"SELECT id, game_name, added, deleted, last_changed, path, times_played, last_played, number_of_songs "+
|
"SELECT id, game_name, added, deleted, last_changed, path, times_played, last_played, number_of_songs "+
|
||||||
"FROM game WHERE id = $1", gameId).Scan(&id, &gameName, &added, &deleted, &lastChanged, &path, ×Played, &lastPlayed, &numberOfSongs)
|
"FROM game WHERE id = $1 AND deleted IS NULL", gameId).Scan(&id, &gameName, &added, &deleted, &lastChanged, &path, ×Played, &lastPlayed, &numberOfSongs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
|
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
|
||||||
return models.GameData{}
|
return models.GameData{}, errors.New("Game not found")
|
||||||
}
|
}
|
||||||
return models.GameData{
|
return models.GameData{
|
||||||
Id: id,
|
Id: id,
|
||||||
@@ -42,7 +44,7 @@ func GetGameById(gameId int) models.GameData {
|
|||||||
TimesPlayed: timesPlayed,
|
TimesPlayed: timesPlayed,
|
||||||
LastPlayed: lastPlayed.Time,
|
LastPlayed: lastPlayed.Time,
|
||||||
NumberOfSongs: numberOfSongs.Int,
|
NumberOfSongs: numberOfSongs.Int,
|
||||||
}
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetGameDeletionDate() {
|
func SetGameDeletionDate() {
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ func GetRandomSongLowChance() string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
song := getSongFromList(games)
|
song := getSongFromList(listOfGames)
|
||||||
|
|
||||||
lastFetched = song
|
lastFetched = song
|
||||||
return song.Path
|
return song.Path
|
||||||
@@ -93,7 +93,13 @@ func GetRandomSongClassic() string {
|
|||||||
var song models.SongData
|
var song models.SongData
|
||||||
for !songFound {
|
for !songFound {
|
||||||
song = listOfAllSongs[rand.Intn(len(listOfAllSongs))]
|
song = listOfAllSongs[rand.Intn(len(listOfAllSongs))]
|
||||||
gameData := db.GetGameById(song.GameId)
|
gameData, err := db.GetGameById(song.GameId)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
db.RemoveBrokenSong(song)
|
||||||
|
log.Println("Song not found, song '" + song.SongName + "' deleted from game '" + gameData.GameName + "' FileName: " + song.FileName)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
//Check if file exists and open
|
//Check if file exists and open
|
||||||
openFile, err := os.Open(song.Path)
|
openFile, err := os.Open(song.Path)
|
||||||
|
|||||||
Reference in New Issue
Block a user