Files
muzi/main.go

84 lines
1.6 KiB
Go

package main
import (
"errors"
"fmt"
"os"
"path/filepath"
"muzi/importsongs"
"muzi/web"
)
func dbCheck() error {
if !importsongs.DbExists() {
err := importsongs.CreateDB()
if err != nil {
fmt.Fprintf(os.Stderr, "Error creating muzi DB: %v\n", err)
return err
}
}
return nil
}
func dirCheck(path string) error {
_, err := os.Stat(path)
if err != nil {
if errors.Is(err, os.ErrNotExist) {
os.MkdirAll(path, os.ModePerm)
} else {
fmt.Fprintf(os.Stderr, "Error checking dir: %s: %v\n", path, err)
return err
}
}
return nil
}
func main() {
dirImports := filepath.Join(".", "imports")
dirSpotify := filepath.Join(".", "imports", "spotify")
dirSpotifyZip := filepath.Join(".", "imports", "spotify", "zip")
dirSpotifyExt := filepath.Join(".", "imports", "spotify", "extracted")
fmt.Printf("Checking if directory %s exists...\n", dirImports)
err := dirCheck(dirImports)
if err != nil {
return
}
fmt.Printf("Checking if directory %s exists...\n", dirSpotify)
err = dirCheck(dirSpotify)
if err != nil {
return
}
fmt.Printf("Checking if directory %s exists...\n", dirSpotifyZip)
err = dirCheck(dirSpotifyZip)
if err != nil {
return
}
fmt.Printf("Checking if directory %s exists...\n", dirSpotifyExt)
err = dirCheck(dirSpotifyExt)
if err != nil {
return
}
fmt.Println("Checking if muzi database exists...")
err = dbCheck()
if err != nil {
return
}
username := ""
apiKey := ""
fmt.Printf("Importing LastFM data for %s", username)
err = importsongs.ImportLastFM(username, apiKey)
if err != nil {
return
}
err = importsongs.ImportSpotify()
if err != nil {
return
}
web.Start()
}