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 Path string
Modify bool Modify bool
Expand bool Expand bool
ReadHeader bool
Checker rules.Checker Checker rules.Checker
} }
@ -75,7 +76,7 @@ func NewFileInfo(opts FileOptions) (*FileInfo, error) {
if opts.Expand { if opts.Expand {
if file.IsDir { 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 nil, err
} }
return file, nil 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} afs := &afero.Afero{Fs: i.Fs}
dir, err := afs.ReadDir(i.Path) dir, err := afs.ReadDir(i.Path)
if err != nil { if err != nil {
@ -269,7 +270,7 @@ func (i *FileInfo) readListing(checker rules.Checker) error {
} else { } else {
listing.NumFiles++ listing.NumFiles++
err := file.detectType(true, false, checker.ReadHeader()) err := file.detectType(true, false, readHeader)
if err != nil { if err != nil {
return err return err
} }

View File

@ -47,11 +47,6 @@ func (d *data) Check(path string) bool {
return allow 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 { func handle(fn handleFunc, prefix string, store *storage.Storage, server *settings.Server) http.Handler {
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
settings, err := store.Settings.Get() settings, err := store.Settings.Get()

View File

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

View File

@ -29,6 +29,7 @@ var withHashFile = func(fn handleFunc) handleFunc {
Path: link.Path, Path: link.Path,
Modify: d.user.Perm.Modify, Modify: d.user.Perm.Modify,
Expand: true, Expand: true,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d, Checker: d,
}) })
if err != nil { 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, Path: r.URL.Path,
Modify: d.user.Perm.Modify, Modify: d.user.Perm.Modify,
Expand: false, Expand: false,
ReadHeader: d.server.TypeDetectionByHeader,
Checker: d, Checker: d,
}) })
if err != nil { if err != nil {

View File

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

View File

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