boxd/database.go
x 7a06c28bbc
Simple Fixes + Listing Episodes
added a table for episodes as well
2024-05-14 17:33:59 +05:30

71 lines
1.8 KiB
Go

package main
import (
"database/sql"
"runtime"
"os"
"fmt"
"log"
)
func OpenDatabase() (*sql.DB){
var db *sql.DB
var err error
switch runtime.GOOS {
case "linux", "darwin":
dbFolder := os.Getenv("HOME") + "/.config/boxd"
_, err = os.Stat(dbFolder)
if os.IsNotExist(err) {
err := os.Mkdir(dbFolder, 0755)
if err != nil {
fmt.Println("failed to create the configuration directory")
}
} else if err != nil {
fmt.Println("error checking configuration directory")
}
dbLocation := dbFolder + "/boxd.db?_foreign_keys=true"
db, err = sql.Open("sqlite3", "file:" + dbLocation)
if err != nil {
log.Fatal(err)
}
case "windows":
userProfile := os.Getenv("USERPROFILE")
dbFolder := userProfile + "\\Documents\\"
_, err = os.Stat(dbFolder)
if os.IsNotExist(err) {
err := os.Mkdir(dbFolder, 0755)
if err != nil {
fmt.Println("failed to create the configuration directory")
}
} else if err != nil {
fmt.Println("error checking configuration directory")
}
dbLocation := dbFolder + "boxd.db"
db, err = sql.Open("sqlite3", dbLocation)
if err != nil {
log.Fatal(err)
}
}
return db
}
func DBEntryExist(db *sql.DB, name string, isMovie bool, isSeries bool) (bool, error) {
var count int
var row *sql.Row
if isMovie == true && isSeries == false {
row = db.QueryRow("SELECT COUNT(*) FROM movies WHERE imdb = ?", name)
} else if isMovie == false && isSeries == true {
row = db.QueryRow("SELECT COUNT(*) FROM series WHERE tmdb = ?", name)
} else {
fmt.Println("oops there is some confusion")
os.Exit(1)
}
err := row.Scan(&count)
if err != nil {
return false, err
}
return count > 0, nil
}