Вопрос по использованию переменных
$puts и
$getЗадумал написать универсальную схему
для корректного отображения в плейлисте разных типов альбомов:
1 сборник разных артистов (VA)
2 один артист играет одного композитора
3 один артист играет разных композиторов
4 разные артисты играют одного композитора
5 один артист играет свой альбом
6 разные артисты играют разных композиторов
7 сборник разных композиторов
- Подробнее
- Схема должна выводить заголовок альбома и треклист
в виде сочетаний переменных (см. ниже):
1 AX
2 D-
3 CY
4 BX
5 C-
6 AZ
7 AY
- Переменные
- // переменные для отсутствующих тегов
$puts(noAA,$if($not(%album artist%),TRUE))
$puts(noTA,$if($not(%track artist%),TRUE))
$puts(noTC,$if($not(%track composer%),TRUE))
$puts(noC,$if($not(%composer%),TRUE))
// переменные для определения подходящего типа альбома
$puts(1,$if($and(%album artist%,%track artist%,$get(noC),$get(noTC)),TRUE))
$puts(2,$if($and(%track artist%,%composer%,$get(noAA),$get(noTC)),TRUE))
$puts(3,$if($and(%track artist%,%composer%,%track composer%,$get(noAA)),TRUE))
$puts(4,$if($and(%album artist%,%track artist%,%composer%,$get(noTC)),TRUE))
$puts(5,$if($and(%track artist%,$get(noAA),$get(noC),$get(noTC)),TRUE))
$puts(6,$if($and(%album artist%,%track artist%,%track composer%,%composer%),TRUE))
$puts(7,$if($and(%album artist%,%composer%,%track composer%,$get(noTA)),TRUE))
// переменные для заголовка альбома
$puts(A,%album artist%$char(10)%album%)
$puts(B,%album artist%$char(10)%composer%: %album%)
$puts(C,%artist%$char(10)%album%)
$puts(D,%artist%$char(10)%composer%: %album%)
// переменные для треклиста
$puts(X,%track artist% $char(187) %title%)
$puts(Y,%track composer% $char(187) %title%)
$puts(Z,%track composer% $char(187) %track artist% $char(187) %title%)
$char(10) это абзац-перевод строки
$char(187) это знак »
- Скрипты
- // скрипт для вывода заголовка альбома
$ifequal($get(1),TRUE,$get(A),
$ifequal($get(2),TRUE,$get(D),
$ifequal($get(3),TRUE,$get(C),
$ifequal($get(4),TRUE,$get(B),
$ifequal($get(5),TRUE,$get(C),
$ifequal($get(6),TRUE,$get(A),
$ifequal($get(7),TRUE,$get(A)
)))))))
// скрипт для вывода треклиста
$ifequal($get(1),TRUE,$get(X),
$ifequal($get(2),TRUE,%title%,
$ifequal($get(3),TRUE,$get(Y),
$ifequal($get(4),TRUE,$get(X),
$ifequal($get(5),TRUE,%title%,
$ifequal($get(6),TRUE,$get(Z),
$ifequal($get(7),TRUE,$get(Y)
)))))))
Если применять соответствующие части скриптов отдельно для каждого типа альбома (1, 2, 3..), то всё работает корректно, а если использовать комплексные скрипты сразу для всех типов альбомов, то выходит ошибка.
Вот что получается (слева — желаемый результат, справа — факт):
Прилагаю для удобства:
скрипты в txt-виде,
треклист в mp3-виде (6 Мб).
Буду признателен за содействие.