diff --git a/dist/md5.txt b/dist/md5.txt deleted file mode 100644 index ccb26fe..0000000 --- a/dist/md5.txt +++ /dev/null @@ -1 +0,0 @@ -d41d8cd98f00b204e9800998ecf8427e ./md5.txt diff --git a/internal/config/v1.go b/internal/config/v1.go index 89f7796..0861264 100644 --- a/internal/config/v1.go +++ b/internal/config/v1.go @@ -40,6 +40,13 @@ func (z *ZurgConfigV1) GetDirectories() []string { return rootDirectories } +func (z *ZurgConfigV1) GetDirectoryConfig(directory string) Directory { + if dirCfg, ok := z.Directories[directory]; ok { + return *dirCfg + } + return Directory{} +} + func (z *ZurgConfigV1) GetGroupMap() map[string][]string { var groupMap = make(map[string][]string) var groupOrderMap = make(map[string]int) // To store GroupOrder for each directory diff --git a/internal/config/v1types.go b/internal/config/v1types.go index d1f8690..22c8b7c 100644 --- a/internal/config/v1types.go +++ b/internal/config/v1types.go @@ -4,13 +4,14 @@ import "github.com/debridmediamanager/zurg/pkg/logutil" type ZurgConfigV1 struct { ZurgConfig `yaml:",inline"` - Directories map[string]*DirectoryFilterConditionsV1 `yaml:"directories"` + Directories map[string]*Directory `yaml:"directories"` log *logutil.Logger } -type DirectoryFilterConditionsV1 struct { - GroupOrder int `yaml:"group_order"` - Group string `yaml:"group"` - Filters []*FilterConditionsV1 `yaml:"filters"` +type Directory struct { + GroupOrder int `yaml:"group_order"` + Group string `yaml:"group"` + Filters []*FilterConditionsV1 `yaml:"filters"` + OnlyShowTheBiggestFile bool `yaml:"only_show_the_biggest_file"` } type FilterConditionsV1 struct { diff --git a/internal/http/listing.go b/internal/http/listing.go index 50adfb5..ed671c8 100644 --- a/internal/http/listing.go +++ b/internal/http/listing.go @@ -7,6 +7,7 @@ import ( "sort" "strings" + "github.com/debridmediamanager/zurg/internal/config" "github.com/debridmediamanager/zurg/internal/torrent" "github.com/debridmediamanager/zurg/pkg/logutil" ) @@ -59,6 +60,12 @@ func HandleListFiles(directory, torrentName string, torMgr *torrent.TorrentManag return nil, fmt.Errorf("cannot find torrent %s", torrentName) } + dirCfg := torMgr.Config.(*config.ZurgConfigV1).GetDirectoryConfig(directory) + biggestFileSize := int64(0) + if dirCfg.OnlyShowTheBiggestFile { + biggestFileSize = tor.ComputeBiggestFileSize() + } + htmlDoc := "