func UpdateLibrary(ctx *gin.Context) { LibraryPath := config.Get().LibraryPath DBPath := filepath.Join(LibraryPath, fmt.Sprintf("%s.json", DBName)) if fileInfo, err := os.Stat(LibraryPath); err != nil || fileInfo.IsDir() == false || LibraryPath == "" || LibraryPath == "." { ctx.String(404, "") return } if _, err := os.Stat(DBPath); err != nil { ctx.String(404, "") return } MoviesLibraryPath := filepath.Join(LibraryPath, "Movies") if _, err := os.Stat(MoviesLibraryPath); os.IsNotExist(err) { if err := os.Mkdir(MoviesLibraryPath, 0755); err != nil { libraryLog.Info("Unable to create MoviesLibraryPath") ctx.String(404, "") return } } ShowsLibraryPath := filepath.Join(LibraryPath, "Shows") if _, err := os.Stat(ShowsLibraryPath); os.IsNotExist(err) { if err := os.Mkdir(ShowsLibraryPath, 0755); err != nil { libraryLog.Info("Unable to create ShowsLibraryPath") ctx.String(404, "") return } } var db DataBase file, err := ioutil.ReadFile(DBPath) if err != nil { ctx.String(404, "") return } json.Unmarshal(file, &db) for _, movieId := range db.Movies { WriteMovieStrm(movieId, MoviesLibraryPath) } for _, showId := range db.Shows { WriteShowStrm(showId, ShowsLibraryPath) } ctx.String(200, "") xbmc.VideoLibraryScan() libraryLog.Info("Library Updated") }
func AddShow(ctx *gin.Context) { LibraryPath := config.Get().LibraryPath DBPath := filepath.Join(LibraryPath, fmt.Sprintf("%s.json", DBName)) if fileInfo, err := os.Stat(LibraryPath); err != nil || fileInfo.IsDir() == false || LibraryPath == "" || LibraryPath == "." { xbmc.Notify("Quasar", "LOCALIZE[30220]", config.AddonIcon()) ctx.String(404, "") return } showId := ctx.Params.ByName("showId") if inJsonDb, err := InJsonDB(showId, LShow); err != nil || inJsonDb == true { ctx.String(404, "") return } ShowsLibraryPath := filepath.Join(LibraryPath, "Shows") if _, err := os.Stat(ShowsLibraryPath); os.IsNotExist(err) { if err := os.Mkdir(ShowsLibraryPath, 0755); err != nil { libraryLog.Error("Unable to create library path for Shows") ctx.String(404, "") return } } if err := WriteShowStrm(showId, ShowsLibraryPath); err != nil { ctx.String(404, "") return } if err := UpdateJsonDB(DBPath, showId, LShow); err != nil { libraryLog.Error("Unable to update json DB") ctx.String(404, "") return } xbmc.Notify("Quasar", "LOCALIZE[30221]", config.AddonIcon()) ctx.String(200, "") xbmc.VideoLibraryScan() ClearCache(ctx) xbmc.Refresh() libraryLog.Notice("Show added") }
func AddMovie(ctx *gin.Context) { LibraryPath := config.Get().LibraryPath DBPath := filepath.Join(LibraryPath, fmt.Sprintf("%s.json", DBName)) imdbId := ctx.Params.ByName("imdbId") if fileInfo, err := os.Stat(LibraryPath); err != nil || fileInfo.IsDir() == false || LibraryPath == "" || LibraryPath == "." { xbmc.Notify("Quasar", "LOCALIZE[30220]", config.AddonIcon()) ctx.String(404, "") return } if inJsonDb, err := inJsonDB(DBPath, imdbId, LMovie); err != nil || inJsonDb == true { ctx.String(404, "") return } MoviesLibraryPath := filepath.Join(LibraryPath, "Movies") if _, err := os.Stat(MoviesLibraryPath); os.IsNotExist(err) { if err := os.Mkdir(MoviesLibraryPath, 0755); err != nil { libraryLog.Info("Unable to create MoviesLibraryPath") ctx.String(404, "") return } } if err := WriteMovieStrm(imdbId, MoviesLibraryPath); err != nil { ctx.String(404, "") return } if err := UpdateJsonDB(DBPath, imdbId, LMovie); err != nil { libraryLog.Info("Unable to UpdateJsonDB") ctx.String(404, "") return } xbmc.Notify("Quasar", "LOCALIZE[30221]", config.AddonIcon()) ctx.String(200, "") xbmc.VideoLibraryScan() libraryLog.Info("Movie added") }