1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package movies
- import (
- "fmt"
- "os"
- "path/filepath"
- "strings"
- )
- type FileSource struct {
- ID string
- Files []string
- }
- func (fs *FileSource) Scan(root string) error {
- var files []string
- if err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
- if err != nil {
- return err
- }
- if info.IsDir() {
- return nil
- }
- files = append(files, path)
- return nil
- }); err != nil {
- return fmt.Errorf("error while walking directory %q: %w", root, err)
- }
- fs.Files = files
- return nil
- }
- func (fs *FileSource) Search(query string) []string {
- var res []string
- for _, path := range fs.Files {
- if strings.Contains(strings.ToLower(path), strings.ToLower(query)) {
- res = append(res, path)
- }
- }
- return res
- }
|