/
Roman_arv
/
UpnpUtil
Обзор
Документация
Войти
/
Roman_arv
/
UpnpUtil
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/folder-analyzer.bat
102 строки
4 KB
Roman_arv
03082026 Analyzer ашч
03 авг 2026, 18:59
03 авг 2026, 18:59
9102a11
Код
Авторство
О чём код?
@echo off REM ============================================================ REM FolderAnalyzer - Скрипт анализа музыкальной коллекции (Windows) REM ============================================================ REM Использование: REM scripts\folder-analyzer.bat analyze ^<путь_к_музыке^> [-o output.json] REM scripts\folder-analyzer.bat sort-by-genre ^<input.json^> [-o output.json] REM scripts\folder-analyzer.bat sort-by-artist ^<input.json^> [-o output.json] REM ============================================================ REM Получаем путь к проекту set "SCRIPT_DIR=%~dp0" set "PROJECT_DIR=%SCRIPT_DIR%\.." if "%PROJECT_DIR:~-1%"=="\" set "PROJECT_DIR=%PROJECT_DIR:~0,-1%" REM Создаём папку для выходных данных if not exist "%PROJECT_DIR%\test_output" mkdir "%PROJECT_DIR%\test_output" REM Проверка аргументов if "%~1"=="" ( echo ============================================================ echo FolderAnalyzer - Анализатор музыкальной коллекции (FLAC) echo ============================================================ echo. echo Использование: echo %~nx0 analyze ^<путь^> [-o output.json] Сканировать коллекцию echo %~nx0 sort-by-genre ^<input.json^> [-o out] Группировка по жанру echo %~nx0 sort-by-artist ^<input.json^> [-o out] Группировка по артисту echo. echo Примеры: echo %~nx0 analyze "C:\Users\Username\Music" echo %~nx0 analyze "C:\Users\Username\Music" -o music_library.json echo %~nx0 sort-by-genre music_library.json echo %~nx0 sort-by-artist music_library.json goto :eof ) set "COMMAND=%~1" shift /1 if "%COMMAND%"=="analyze" ( echo 📂 Сканирование коллекции... pushd "%PROJECT_DIR%" python -m dlna.analyzers.cli -v analyze %* -o test_output\library.json popd ) else if "%COMMAND%"=="sort-by-genre" ( set "INPUT_ARG=%~1" set "INPUT_NAME=%~n1" if not exist "%INPUT_ARG%" ( if exist "test_output\%INPUT_NAME%.json" ( set "INPUT=test_output\%INPUT_NAME%.json" ) else if exist "test_output\%INPUT_ARG%" ( set "INPUT=test_output\%INPUT_ARG%" ) else ( echo ❌ Файл не найден: %INPUT_ARG% goto :eof ) ) else ( set "INPUT=%INPUT_ARG%" ) for %%F in ("%INPUT%") do set "NAME=%%~nF" set "OUTPUT=test_output\!NAME!_by_genre.json" echo 🎵 Группировка по жанру: %INPUT% → %OUTPUT% pushd "%PROJECT_DIR%" set "SORT_ARGS=%~1" if "%~2" neq "" set "SORT_ARGS=%SORT_ARGS% %~2" if "%~3" neq "" set "SORT_ARGS=%SORT_ARGS% %~3" python -m dlna.analyzers.cli -v sort-by-genre !INPUT! -o "!OUTPUT!" !SORT_ARGS! popd ) else if "%COMMAND%"=="sort-by-artist" ( set "INPUT_ARG=%~1" set "INPUT_NAME=%~n1" if not exist "%INPUT_ARG%" ( if exist "test_output\%INPUT_NAME%.json" ( set "INPUT=test_output\%INPUT_NAME%.json" ) else if exist "test_output\%INPUT_ARG%" ( set "INPUT=test_output\%INPUT_ARG%" ) else ( echo ❌ Файл не найден: %INPUT_ARG% goto :eof ) ) else ( set "INPUT=%INPUT_ARG%" ) for %%F in ("%INPUT%") do set "NAME=%%~nF" set "OUTPUT=test_output\!NAME!_by_artist.json" echo 🎤 Группировка по артисту: %INPUT% → %OUTPUT% pushd "%PROJECT_DIR%" set "SORT_ARGS=%~1" if "%~2" neq "" set "SORT_ARGS=%SORT_ARGS% %~2" if "%~3" neq "" set "SORT_ARGS=%SORT_ARGS% %~3" python -m dlna.analyzers.cli -v sort-by-artist !INPUT! -o "!OUTPUT!" !SORT_ARGS! popd ) else ( echo ❌ Неизвестная команда: %COMMAND% echo Доступные команды: analyze, sort-by-genre, sort-by-artist goto :eof )