Example #1
0
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")
}
Example #2
0
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")
}
Example #3
0
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")
}