fully deletable videos -- enable/disable with cli args

This commit is contained in:
2021-08-29 19:48:03 +02:00
parent 7ebc5766e9
commit 543ce5b250
6 changed files with 89 additions and 5 deletions

View File

@ -15,7 +15,8 @@ func readVideosFromResultset(rows *sql.Rows) []types.VideoUnloadedType {
var vid types.VideoUnloadedType
err := rows.Scan(&vid.MovieId, &vid.MovieName)
if err != nil {
panic(err.Error()) // proper error handling instead of panic in your app
fmt.Println(err.Error())
return nil
}
result = append(result, vid)
}

View File

@ -6,6 +6,8 @@ import (
"net/url"
"openmediacenter/apiGo/api/types"
"openmediacenter/apiGo/database"
"openmediacenter/apiGo/database/settings"
"os"
"strconv"
)
@ -423,7 +425,8 @@ func addToVideoHandlers() {
*/
AddHandler("deleteVideo", VideoNode, func(info *HandlerInfo) []byte {
var args struct {
MovieId int
MovieId int
FullyDelete bool
}
if err := FillStruct(&args, info.Data); err != nil {
fmt.Println(err.Error())
@ -443,6 +446,22 @@ func addToVideoHandlers() {
return database.ManualSuccessResponse(err)
}
if settings.VideosDeletable() && args.FullyDelete {
// get physical path of video to delete
query = fmt.Sprintf("SELECT movie_url FROM videos WHERE movie_id=%d", args.MovieId)
var vidpath string
err := database.QueryRow(query).Scan(&vidpath)
if err != nil {
return database.ManualSuccessResponse(err)
}
err = os.Remove(vidpath)
if err != nil {
fmt.Printf("unable to delete file: %s\n", vidpath)
}
}
// delete video row from db
query = fmt.Sprintf("DELETE FROM videos WHERE movie_id=%d", args.MovieId)
return database.SuccessQuery(query)
})