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.Println(m.SourcePath) m.SourceFolder = os.Getenv("radarr_moviefile_sourcefolder") log.Println(m.SourceFolder) } if SonarrEventType != "" { m.EventType = os.Getenv("sonarr_eventtype") m.SourcePath = os.Getenv("sonarr_episodefile_sourcepath") log.Println(m.SourcePath) m.SourceFolder = os.Getenv("radarr_moviefile_sourcefolder") log.Println(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 } for _, v := range files { log.Println(v.Name()) } } }