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 }