110 lines
2.5 KiB
Go
110 lines
2.5 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"path"
|
|
"path/filepath"
|
|
"slices"
|
|
)
|
|
|
|
type MediaFiles struct {
|
|
EventType string
|
|
SourcePath string
|
|
SourceFolder string
|
|
FileName string
|
|
InFolder bool
|
|
Arr string
|
|
}
|
|
|
|
func (m *MediaFiles) IsInFolder() {
|
|
folderList := []string{"Movies", "4K-Movies"}
|
|
dir, f := path.Split(m.SourcePath)
|
|
m.FileName = f
|
|
|
|
ContainsFolder := slices.Contains(folderList, dir)
|
|
|
|
if !ContainsFolder {
|
|
m.InFolder = true
|
|
log.Printf("Movie %v is in a Folder\n", m.SourceFolder)
|
|
} else {
|
|
m.InFolder = false
|
|
log.Printf("Movie %v is not in a Folder\n", m.SourceFolder)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
|
|
// os.Setenv("radarr_moviefile_sourcepath", "/mnt/Multimedia/Download/PostProcess/Movies/Butchers.Crossing.2023.MULTi.1080p.WEB.x264-FW/Butchers.Crossing.2023.MULTi.1080p.WEB.x264-FW.mkv")
|
|
// os.Setenv("radarr_moviefile_sourcefolder", "/mnt/Multimedia/Download/PostProcess/Movies/Butchers.Crossing.2023.MULTi.1080p.WEB.x264-FW")
|
|
// os.Setenv("radarr_eventtype", "Download")
|
|
|
|
ex, err := os.Executable()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
exPath := filepath.Dir(ex)
|
|
|
|
f, err := os.OpenFile(exPath+"/log.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
|
|
if err != nil {
|
|
log.Fatalf("error opening file: %v", err)
|
|
}
|
|
defer f.Close()
|
|
|
|
log.SetOutput(f)
|
|
|
|
RadarrEventType := os.Getenv("radarr_eventtype")
|
|
SonarrEventType := os.Getenv("sonarr_eventtype")
|
|
|
|
m := &MediaFiles{}
|
|
|
|
if RadarrEventType != "" {
|
|
m.EventType = os.Getenv("rad")
|
|
m.SourcePath = os.Getenv("radarr_moviefile_sourcepath")
|
|
log.Printf("The Source Path is: %v", m.SourcePath)
|
|
m.SourceFolder = os.Getenv("radarr_moviefile_sourcefolder")
|
|
log.Printf("The Source Folder is: %v", m.SourceFolder)
|
|
|
|
}
|
|
|
|
if SonarrEventType != "" {
|
|
m.EventType = os.Getenv("sonarr_eventtype")
|
|
m.SourcePath = os.Getenv("sonarr_episodefile_sourcepath")
|
|
log.Printf("The Source Path is: %v", m.SourcePath)
|
|
m.SourceFolder = os.Getenv("radarr_moviefile_sourcefolder")
|
|
log.Printf("The Source Folder is: %v", m.SourceFolder)
|
|
}
|
|
|
|
m.IsInFolder()
|
|
|
|
if m.InFolder {
|
|
|
|
f, err := os.Open(m.SourceFolder)
|
|
if err != nil {
|
|
log.Println(err)
|
|
return
|
|
}
|
|
files, err := f.Readdir(0)
|
|
if err != nil {
|
|
log.Println(err)
|
|
return
|
|
}
|
|
|
|
mkvCount := 0
|
|
|
|
for _, v := range files {
|
|
log.Println("Found file: " + v.Name())
|
|
if filepath.Ext(v.Name()) == ".mkv" {
|
|
mkvCount += 1
|
|
}
|
|
}
|
|
log.Printf("Found %v MKV files in the folder", mkvCount)
|
|
|
|
// if not in folder just delete the file
|
|
} else {
|
|
os.RemoveAll(m.SourcePath)
|
|
log.Printf("Deleting the file %v", m.SourcePath)
|
|
}
|
|
|
|
}
|