Страница 1 из 2
Автоматизация в создании lossless дискографий
Добавлено: Пт дек 20, 2013 03:41
stan208
Уважаемые специалисты, очень давно нужна кнопка, надеюсь поможете.
Имеем три файла, полученные в процессе снятия рипа с CD:
Fancy - Bolero.cue
Fancy - Bolero.log
Fancy - Bolero.wav
Первый - CUE, текстовый файл разметки, имеющий вид:
Код: Выделить всё
REM GENRE EuroDisco
REM DATE 1986
REM DISCID 65098F09
REM COMMENT "ExactAudioCopy v1.0b3"
CATALOG 0042283120129
PERFORMER "Fancy"
TITLE "Bolero"
FILE "Fancy - Bolero.wav" WAVE
TRACK 01 AUDIO
TITLE "Reaving Queen"
PERFORMER "Fancy"
ISRC <cM@58625190
INDEX 00 00:00:00
INDEX 01 00:00:33
TRACK 02 AUDIO
TITLE "Don't Want To Go"
PERFORMER "Fancy"
ISRC <cM@58625200
INDEX 00 04:20:63
INDEX 01 04:21:28
TRACK 03 AUDIO
TITLE "Bolero (Hold Me In Your Arms Again)"
PERFORMER "Fancy"
ISRC <cM@58625210
INDEX 00 08:27:23
INDEX 01 08:28:10
TRACK 04 AUDIO
TITLE "Feedback, Feedback"
PERFORMER "Fancy"
ISRC <cM@58625220
INDEX 00 12:31:20
INDEX 01 12:33:18
TRACK 05 AUDIO
TITLE "Save The Moment"
PERFORMER "Fancy"
ISRC <cM@58625230
INDEX 00 17:36:13
INDEX 01 17:38:23
TRACK 06 AUDIO
TITLE "Lady Of Ice"
PERFORMER "Fancy"
ISRC <cM@58625240
INDEX 00 21:57:23
INDEX 01 21:58:23
TRACK 07 AUDIO
TITLE "Girl Don't Let Me Down"
PERFORMER "Fancy"
ISRC <cM@58625250
INDEX 00 26:33:15
INDEX 01 26:34:55
TRACK 08 AUDIO
TITLE "Latin Fire"
PERFORMER "Fancy"
ISRC <cM@58625260
INDEX 00 30:54:35
INDEX 01 30:55:10
TRACK 09 AUDIO
TITLE "After Midnight"
PERFORMER "Fancy"
ISRC <cM@58625270
INDEX 00 36:05:35
INDEX 01 36:08:35
Второй файл - отчет о снятии рипа. Третий - собственно сам образ диска.
Задача: выделив эти три файла и нажав на кнопку, переместить их во вновь созданную папку, полученную по заранее заданному шаблону,
по информации из CUE.
Например:
В данном CUE имеется две строки:
На основе этой информации, вновь созданная папка должна называться -
1986.Bolero. (То есть -
Год.
Название альбома).
И разумеется, если изначально в корневой папке не три файла, а например девять (три тройки файлов с одинаковым названием каждой тройки, то есть три рипа), они должны "расфасоваться" в три новых папки, каждая из которых названа по тому же шаблону, по информации из CUE каждой тройки.
Вроде все понятно объяснил. Очень надеюсь на вашу помощь.
P.S. И да, если не сложно, очень хотелось бы, что бы во вновь созданной папке, всегда создавалась еще одна, с определенным постоянным названием. Например - "Covers" (или любым другим, которое можно задать самостоятельно).
Добавлено: Сб дек 21, 2013 11:58
Flasher
stan208 писал(а):Задача: выделив эти три файла
stan208 писал(а):если изначально в корневой папке не три файла, а например девять (три тройки файлов с одинаковым названием каждой тройки, то есть три рипа), они должны "расфасоваться" в три новых папки
1. Т.е. в итоге не 3 файла может быть выделено, и задача некорректна?
2. И что, если выделено 1/2 файла из тройки?
3. REM DATE/TITLE всегда будут на 2/7 строках?
Добавлено: Сб дек 21, 2013 16:07
stan208
Flasher
Большое спасибо за отклик. Даже временно остановил создание рипов, в ожидании решения.
Flasher писал(а):1. Т.е. в итоге не 3 файла может быть выделено, и задача некорректна?
2. И что, если выделено 1/2 файла из тройки?
Не думал об этом. Но можно упростить задачу. При выделении только файла cue, все файлы
с точно таким же названием из этой же папки перемещаются во вновь созданную папку, созданную по информации из него. Соответственно, если выделено 3 cue, то все файлы из корневой папки расфасовываются тройками в соответствии с их названиями. Название всех файлов в тройках всегда одинаковы, только расширения разные.
Flasher писал(а):3. REM DATE/TITLE всегда будут на 2/7 строках?
Что бы не усложнять задачу - да. Хотя, если возможно сделать процесс более универсальным, то не очень хотелось бы к привязываться к номеру строки. Некоторые программы в cue добавляют строки со своими комментариями. Соответственно, строки могут сдвинуться. Но если сложно, то хотя бы с привязкой к номерами строк. И наоборот, если, вдруг, какой-то из этих двух строк нет, то в название новой папки поставляется нижний прочерк.
Я далек от программирования, но представлял себе так, что поскольку REM DATE и TITLE - стандартные теги в cue, скрипт должен их найти и подставить в название новой папки те значения, которые в них указаны.
Добавлено: Сб дек 21, 2013 16:24
Tol!k
CMD
Код: Выделить всё
@echo off &setlocal enableextensions
:: Параметры: "%WL"
set "Folder2=Covers"
for /f "delims=" %%b in ('type "%~1" ^|findstr /ei /c:".cue"') do (
call :Year "%%b"
call :Title "%%b"
call :Folder "%%b" "%%Year%%.%%Title%%\"
)
goto :eof
:Year
for /f "tokens=3 delims= " %%d in ('findstr /r /c:"REM DATE [0-9]*" %1') do (
set "Year=%%d" &goto :eof
)
goto :eof
:Title
for /f "tokens=1,*" %%f in ('findstr /c:"TITLE " %1') do (
set "Title=%%~g" &goto :eof
)
goto :eof
:Folder
md "%~2\%Folder2%\" 2>nul
move "%~dp1\%~n1.*" %2
goto :eof
значение имеют только выделенные .cue
Добавлено: Сб дек 21, 2013 16:38
stan208
Tol!k
Ух ты! Огромное спасибо! Но что бы проверить, не буду навязчив, если попрошу код кнопки, на которую этот скрипт повесить? Ибо я в этом полный ноль. Прошу не судить строго.
Добавлено: Сб дек 21, 2013 16:58
Tol!k
Код: Выделить всё
TOTALCMD#BAR#DATA
%commander_path%\Scripts\cue2folder.cmd
"%WL"
shell32.dll,178
.cue > Folder
1
-1
както так
зы
исправил код
Добавлено: Сб дек 21, 2013 17:09
stan208
Tol!k
Все проверил, просто волшебство какое-то. Работает как часы. Правда, искренне признателен. Просто нечеловеческое спасибо!
Избавился от множества лишних телодвижений

. Когда создаешь под сотню рипов, эти телодвижения становятся очень обременительными.
Добавлено: Вс дек 22, 2013 00:11
stan208
Tol!k
Прошу прощения, но аппетит, как известно, приходит во время еды

.
Если бы Вы помогли бы решить еще несколько рутинных задач, то размеры моей признательности...
Кратко поясню, для чего это все нужно. Для создания lossless дискографий на рутрекере.
Итак, создав рипы 50-ти дисков, после использования скрипта выше, мы получили 50 папок вида:
1986.Lady Of Ice
1987.China Blue
1987.Latin Fire
.......
2013.Flames Of Love Megamix
В каждой папке по три файла (не считая папки "Covers"). Задача: одной кнопкой, выделив все cue файлы, переименовать их, добавив в имя файла значение ".wav".
В то же самое время, создать копию всех этих файлов в этих же папках, но параллельно добавив в имя значение ".flac". При этом, необходимо заменить в тексте копии файла в 8-й строке расширение ".wav" на ".flac"
То есть, на примере выше, нужно в итоге получить в папке
1986.Bolero, следующие файлы:
Fancy - Bolero.flac.cue
Fancy - Bolero.wav.cue
Fancy - Bolero.log
Fancy - Bolero.wav
В первом файле 8-я строка выглядит так:
Во втором все остается как было:
Это возможно реализовать одной кнопкой?
Если все получится и дальше, обязательно на рутрекере создам тему - "Помощь при создании дискографий с использованием Total Commander". Со ссылкой на Вас и на всех, кто поможет. Заранее спасибо!
Добавлено: Вс дек 22, 2013 01:26
Flasher
stan208
Советую смотреть в сторону CUETools и CUECorrector, там частично это решаемо.
Добавлено: Вс дек 22, 2013 02:15
stan208
Flasher
Разумеется, обе эти утилиты у меня есть и обе я активно использую. CUETools - в отношении создания контейнеров с вшитыми log и .cue. CUECorrector - прекрасно с этим справляется, но в отложенном режиме и при открытии каждого cue. Там это решаемо полностью. Причем, CUECorrector написал наш модератор.
Но они оказываются бесполезными в том плане, что работают либо в фоновом режиме, либо в плане отложенного задания, когда необходимо открывать каждый файл cue. А очень хочется это автоматизировать, нажатием одной "заветной кнопки". Прекрасно отдаю себе отчет, что запрошенные мной задачи узкоспециализированные, но если не затруднит, почему бы Вам мне не помочь? Буду крайне признателен.
Повторюсь, если все получится, создам отдельную тему в помощь нашим пользователям.
Добавлено: Вс дек 22, 2013 02:38
Flasher
stan208
Для начала стоит переменовать топик на что-то, отражающее суть всех ТЗ.
Я тут одному *персонажу* уже делал скрипт по правке расширений внутри CUE, его забанили.
Могу скинуть в ЛС то, что тогда получилось.
Что касается всё одной кнопкой? А так ли часто требуется всё и сразу? Почему нельзя последовательно переименовать и сделать копии средствами TC?
Добавлено: Вс дек 22, 2013 03:38
stan208
Flasher
Для начала стоит переменовать топик на что-то, отражающее суть всех ТЗ.
Откровенно говоря, если это необходимо, подразумевал, что это сделает модератор. Прошу прощения, если что-то нарушил, у нас обычно так и происходит.
Я тут одному *персонажу* уже делал скрипт по правке расширений внутри CUE, его забанили.
Искренне надеюсь, что я не разделю его судьбу. Видимо нужно представиться. Я - админ музыкальных категорий на рутрекере. А соответственно, не дам ни малейшего повода себя забанить. С правилами форумов очень хорошо знаком (постоянно их цитирую пользователям).
Могу скинуть в ЛС то, что тогда получилось.
Что касается всё одной кнопкой? А так ли часто требуется всё и сразу? Почему нельзя последовательно переименовать и сделать копии средствами TC?
Разумеется, я был бы признателен за абсолютно любой вариант. Сюда или в ЛС.
Часто. Сейчас я создаю очередную дискографию рипов с CD.
Можно и переименовать, но представьте последовательность действий:
Получен рип с тремя файлами. Их нужно перекинуть в соответствующую папку. Переименовать ее в соответствии с годом. Добавить в эту папку папку "Covers". Перекинуть туда сканы.
Затем, скопировать все файлы .cue в другую папку. Переименовать первые и вторые. Потом, кнопкой нахождения текста подставить в искомую строку *flac". Затем, еще нужно во всех этих 50-ти рипах (а в моих раздачах их бывает больше сотни) нужно еще и сами образы ".wav" перекодировать.
Вот это все очень хотелось бы автоматизировать. Почему и обратился к "гуру". Поможете?
Кстати, с точки зрения популярности ресурса (если Вас это заботит). Прямая ссылка в теме помощи по разделу, могла бы несколько поднять популярность (посещаемость) вашего ресурса. Если это Вас (администраторов ресурса) это интересует.
Добавлено: Вс дек 22, 2013 03:56
Flasher
stan208 писал(а):Откровенно говоря, если это необходимо, подразумевал, что это сделает модератор.
Логичней было бы обойтись без его вмешательства.
stan208 писал(а):Вот это все очень хотелось бы автоматизировать. Почему и обратился к "гуру". Поможете?
Т.е. нужно всё, начиная от исходной задачи и заканчивая перекодировкой wav, сделать одним скриптом?
Сделать, конечно, реально. Вопрос в целесообразности. Общественной нужды пока особой не вижу. А так посмотрим по времени. Если
Tol!k спохватится продолжить свой батник, то "мешать" уже не буду.
Вариант замены в CUE скинул.
Добавлено: Вс дек 22, 2013 04:17
stan208
Flasher
Логичней было бы обойтись без его вмешательства.
Согласен с Вами. Новое название темы подойдет?
Т.е. нужно всё, начиная от исходной задачи и заканчивая перекодировкой wav, сделать одним скриптом?
Нет. Этого как раз не нужно. Подразумевал тремя- четырьмя кнопками. Каждая - для своей операции. Все в кучу бросать не нужно.
Сделать, конечно, реально. Вопрос в целесообразности. Общественной нужды пока особой не вижу. А так посмотрим по времени. Если Tol!k спохватится продолжить свой батник, то "мешать" уже не буду.
Да ну, Вас. Прекратите. Вопрос целесообразности я уже озвучил. Если, Вам это не очень затруднительно, просто прошу - помогите. В конце-в конце-концов, у вас, на вашем ресурсе не настолько большой "обвал". Хотите обмен? Со своей стороны, готов оказать Вам любую поддержку на рутрекере. Начиная от создания раздач и заканчивая поддержанием Ваших.
Вариант замены в CUE скинул.
Огромное спасибо, сейчас буду пробовать.
P.S. Если не сложно, объясните дубу, куда сей скрипт приложить и какую кнопку назначить. Повторюсь, в программировании я полный ноль.
Добавлено: Вс дек 22, 2013 04:54
Flasher
stan208 писал(а):Новое название темы подойдет?
"Полезные кнопки для создания" лучше поменять на "Автоматизация в создании".
stan208 писал(а):Нет. Этого как раз не нужно. Подразумевал тремя- четырьмя кнопками. Каждая - для своей операции. Все в кучу бросать не нужно.
Если по отдельности, то уже проще. Тогда можно смотреть уже существующие решения по переименованию и копированию, раз это не один проект.
P.S. В ЛС.