use count_documents to get folder count

- map filenames with db data
This commit is contained in:
geoffrey45 committed 2022-06-21 16:24:27 +03:00
1 parent 2b5e9c02bb
commit 3cd0527962
9 files changed
+41 -26

No files matched your search

+13 -4
View File
@@ -1,11 +1,14 @@
from dataclasses import dataclass
from os import scandir
import time
from typing import Tuple
from concurrent.futures import ThreadPoolExecutor
from app.models import Folder
from app.models import Track
from app import instances
from app.logger import Log
@dataclass
@@ -28,7 +31,7 @@ def create_folder(dir: Dir) -> Folder:
"name": dir.path.split("/")[-1],
"path": dir.path,
"is_sym": dir.is_sym,
"trackcount": get_folder_track_count(dir.path),
"trackcount": instances.tracks_instance.find_tracks_inside_path_regex(dir.path),
}
return Folder(folder)
@@ -59,11 +62,17 @@ class getFnF:
dirs.append(Dir(**dir))
elif entry.is_file() and entry.name.endswith((".mp3", ".flac")):
files.append(entry.path)
tracks = instances.tracks_instance.find_songs_by_folder(self.path)
tracks = instances.tracks_instance.find_songs_by_filenames(files)
tracks = [Track(track) for track in tracks]
s = time.time()
folders = [create_folder(dir) for dir in dirs]
# folders = [create_folder(dir) for dir in dirs]
with ThreadPoolExecutor() as pool:
iter = pool.map(create_folder, dirs)
folders = [i for i in iter if i is not None]
d = time.time() - s
Log(f"Did that in {d} seconds")
folders = filter(lambda f: f.trackcount > 0, folders)
return tracks, folders
-1
View File
@@ -1,5 +1,4 @@
from dataclasses import dataclass
from pprint import pprint
import time
from concurrent.futures import ThreadPoolExecutor
from typing import List