add readheader param

This commit is contained in:
Weidi Deng 2020-12-30 09:13:52 +08:00
parent 0d2b9bcabf
commit 4b2d21c7e4
7 changed files with 39 additions and 39 deletions

View File

@ -46,6 +46,7 @@ type FileOptions struct {
Path string
Modify bool
Expand bool
ReadHeader bool
Checker rules.Checker
}
@ -75,7 +76,7 @@ func NewFileInfo(opts FileOptions) (*FileInfo, error) {
if opts.Expand {
if file.IsDir {
if err := file.readListing(opts.Checker); err != nil { //nolint:shadow
if err := file.readListing(opts.Checker, opts.ReadHeader); err != nil { //nolint:shadow
return nil, err
}
return file, nil
@ -223,7 +224,7 @@ func (i *FileInfo) detectSubtitles() {
}
}
func (i *FileInfo) readListing(checker rules.Checker) error {
func (i *FileInfo) readListing(checker rules.Checker, readHeader bool) error {
afs := &afero.Afero{Fs: i.Fs}
dir, err := afs.ReadDir(i.Path)
if err != nil {
@ -269,7 +270,7 @@ func (i *FileInfo) readListing(checker rules.Checker) error {
} else {
listing.NumFiles++
err := file.detectType(true, false, checker.ReadHeader())
err := file.detectType(true, false, readHeader)
if err != nil {
return err
}

View File

@ -47,11 +47,6 @@ func (d *data) Check(path string) bool {
return allow
}
// ReadHeader implements rules.ReadHeader.
func (d *data) ReadHeader() bool {
return d.server.TypeDetectionByHeader
}
func handle(fn handleFunc, prefix string, store *storage.Storage, server *settings.Server) http.Handler {
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
settings, err := store.Settings.Get()

View File

@ -50,6 +50,7 @@ func previewHandler(imgSvc ImgService, fileCache FileCache, enableThumbnails, re
Path: "/" + vars["path"],
Modify: d.user.Perm.Modify,
Expand: true,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d,
})
if err != nil {

View File

@ -29,6 +29,7 @@ var withHashFile = func(fn handleFunc) handleFunc {
Path: link.Path,
Modify: d.user.Perm.Modify,
Expand: true,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d,
})
if err != nil {

View File

@ -88,6 +88,7 @@ var rawHandler = withUser(func(w http.ResponseWriter, r *http.Request, d *data)
Path: r.URL.Path,
Modify: d.user.Perm.Modify,
Expand: false,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d,
})
if err != nil {

View File

@ -24,6 +24,7 @@ var resourceGetHandler = withUser(func(w http.ResponseWriter, r *http.Request, d
Path: r.URL.Path,
Modify: d.user.Perm.Modify,
Expand: true,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d,
})
if err != nil {
@ -62,6 +63,7 @@ func resourceDeleteHandler(fileCache FileCache) handleFunc {
Path: r.URL.Path,
Modify: d.user.Perm.Modify,
Expand: true,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d,
})
if err != nil {

View File

@ -9,7 +9,6 @@ import (
// Checker is a Rules checker.
type Checker interface {
Check(path string) bool
ReadHeader() bool
}
// Rule is a allow/disallow rule.