musicpom/utils/scan_for_music.py
2025-04-04 11:16:41 -04:00

30 lines
1.1 KiB
Python

import os
from PyQt5.QtCore import pyqtSignal
from utils.add_files_to_database import add_files_to_database
from configparser import ConfigParser
from pathlib import Path
from appdirs import user_config_dir
def scan_for_music():
"""
Scans the user-defined library directory (defined in config file)
Looks for audio files with specific extensions (defined in config file)
Adds found files to the database/primary library (songs table - which holds all songs :o)
"""
config = ConfigParser()
cfg_file = (
Path(user_config_dir(appname="musicpom", appauthor="billypom")) / "config.ini"
)
config.read(cfg_file)
root_dir = config.get("directories", "library")
extensions = config.get("settings", "extensions").split(",")
files_to_add = []
# for dirpath, dirnames, filenames ...
for dirpath, _, filenames in os.walk(root_dir):
for file in filenames:
filename = os.path.join(dirpath, file)
if any(filename.lower().endswith(ext) for ext in extensions):
files_to_add.append(filename)
add_files_to_database(files_to_add)