filter.go 850 B

1234567891011121314151617181920212223242526272829303132333435
  1. package filter
  2. import (
  3. "github.com/sirupsen/logrus"
  4. "os"
  5. "path/filepath"
  6. "strings"
  7. )
  8. func SkipFileInfo(l *logrus.Logger, curFile os.DirEntry) bool {
  9. // 跳过不符合的文件,比如 MAC OS 下可能有缓存文件,见 #138
  10. fi, err := curFile.Info()
  11. if err != nil {
  12. l.Errorln("curFile.Info:", curFile.Name(), err)
  13. return true
  14. }
  15. if fi.Size() < 1000 {
  16. l.Debugln("curFile.Size() < 1000:", curFile.Name())
  17. return true
  18. }
  19. if fi.Size() == 4096 && strings.HasPrefix(curFile.Name(), "._") == true {
  20. l.Debugln("curFile.Size() == 4096 && Prefix Name == ._*", curFile.Name())
  21. return true
  22. }
  23. // 跳过预告片,见 #315
  24. if strings.HasSuffix(strings.ReplaceAll(curFile.Name(), filepath.Ext(curFile.Name()), ""), "-trailer") == true {
  25. l.Debugln("curFile Name has -trailer:", curFile.Name())
  26. return true
  27. }
  28. return false
  29. }