Проблема с tagz-скриптами

Список разделов Аудиоплеер foobar2000 Общая информация

Описание: Общее обсуждение по аудиоплееру foobar2000

Сообщение #1 bpdq » 27.02.2009, 15:13

Наткнулся на следующую неприятность.

Нужно, чтобы при воспроизведении Monkey's Audio в строке состояния отображалось "APE". Пишу скрипт:

$if($strcmp(%codec%,Monkey's Audio),'APE')

Однако апостроф в названии кодека воспринимается как одиночная кавычка — оператор свободного текста.

Разумеется, из-за этого скрипт не работает.

Я уже всю голову себе сломал в попытках обойти эту дурацкую неувязку. Есть идеи, как тут быть?
bpdq
Автор темы
Репутация: 0
С нами: 12 лет 3 месяца

Сообщение #2 evil » 27.02.2009, 16:55

1.
Код: Выделить всё
$if($strstr(%codec%,'Monkey'),'APE')
2.
Код: Выделить всё
$if($strcmp(%codec%,'Monkey''''s Audio'),'APE')
evil M
Модератор
Возраст: 39
Репутация: 64
С нами: 15 лет 1 месяц

Сообщение #3 bpdq » 27.02.2009, 18:43

Первый вариант тоже сразу пришёл в голову. Однако, увы, он не работает. :-(

Второй мне, честно говоря, не совсем понятен, но так или иначе, он тоже не действует.

Должен же быть какой-то способ...
bpdq
Автор темы
Репутация: 0
С нами: 12 лет 3 месяца

Сообщение #4 mgz » 27.02.2009, 21:27

2bpdq
Второй мне, честно говоря, не совсем понятен, но так или иначе, он тоже не действует.
Там вроде одна ковычка лишняя - попробуйте с 3-мя.
RME HDSP 9632 > DynAudio BM5A II / Audio-Technica ATH-AD900
Nexus 5 > Avantree Clipper > Sennheiser IE 4
mgz M
Аватара
Возраст: 41
Откуда: Украина, Киев
Репутация: 73
С нами: 15 лет 1 месяц

Сообщение #5 evil » 27.02.2009, 22:08

Ответственно заявляю: работают оба варианта, включая все кавычки как в плейлисте, так и в строке статуса. foobar2000 v.0.9.6.3, Columns UI v.0.3.6.7. Уточняйте, где что и каким образом не работает.
evil M
Модератор
Возраст: 39
Репутация: 64
С нами: 15 лет 1 месяц

Сообщение #6 mgz » 27.02.2009, 22:29

2evil
Ответственно заявляю: работают оба варианта
Проверил на 0.9.6.3 + DUI - работают оба варианта :)

В моём сообщении выше ошибка - тот вариант с 3-мя кавычками не работает.
RME HDSP 9632 > DynAudio BM5A II / Audio-Technica ATH-AD900
Nexus 5 > Avantree Clipper > Sennheiser IE 4
mgz M
Аватара
Возраст: 41
Откуда: Украина, Киев
Репутация: 73
С нами: 15 лет 1 месяц

Сообщение #7 bpdq » 27.02.2009, 23:00

Коллеги, вынужден признаться, что в первом посте я намеренно упростил задачу, т. к. посчитал, что так будет проще и понятнее. Возможно дело именно в этом, так что во избежание недопониманий позвольте объясниться.

На самом деле я хочу добиться того, чтобы в заголовках группировки NG-плейлиста отображалось "lossless" в случае, если озаглавленный альбом сохранён в формате без потери данных, и, соответственно, — "lossy" в обратной ситуации.

Для этого я захожу в Preferences/Display/Columns UI/Playlist View, выбираю вкладку Grouping и вставляю в имеющийся там скрипт следующий кусок кода:

>  $if($or($strcmp(%codec%,FLAC),$strcmp(%codec%,WavPack),$strstr(%codec%,'Monkey')),
>  'lossless',
>  $if($or($strcmp(%codec%,MP3),$strcmp(%codec%,Vorbis),$strcmp(%codec%,Musepack)),
>  'lossy',
>  'new codec detected'))

Как вы поняли, проблемный кусок кода выделен жирным. Таким образом, в заголовке альбомов, сохранённых в Monkey's Audio у меня ошибочно выводится идущий в конце скрипта текст.

В этой конкретной ситуации предложенные вами варианты, к великому сожалению, не работают, в том числе и с тремя кавычками.

Foobar 0.9.6.2, Columns UI 0.3.4.1.

Надеюсь на ваши энтузиазм и светлые головы, т. к. уже отчаялся самостоятельно решить поставленную задачу.
bpdq
Автор темы
Репутация: 0
С нами: 12 лет 3 месяца

Сообщение #8 mgz » 27.02.2009, 23:40

2bpdq
По вашей задаче:
%__encoding% - покажет, какой же тип кодека использован.

П.С.: кстати, ваш участок кода работает.
Последний раз редактировалось mgz 27.02.2009, 23:44, всего редактировалось 1 раз.
RME HDSP 9632 > DynAudio BM5A II / Audio-Technica ATH-AD900
Nexus 5 > Avantree Clipper > Sennheiser IE 4
mgz M
Аватара
Возраст: 41
Откуда: Украина, Киев
Репутация: 73
С нами: 15 лет 1 месяц

Сообщение #9 bpdq » 28.02.2009, 03:37

О, а я-то тут изобретаю велосипед. Спасибо большое, не знаю, что без вас делал бы.
bpdq
Автор темы
Репутация: 0
С нами: 12 лет 3 месяца

Сообщение #10 Mishail » 28.02.2009, 03:38

2bpdq
Попробуй заменить $strcmp на $stricmp, тебе же не важен регистр.
Mishail M
Аватара
Возраст: 41
Репутация: 5
С нами: 15 лет 1 месяц

Сообщение #11 bpdq » 22.03.2009, 13:29

Кстати мне тут задним числом пришел-таки в голову идеальный вариант. Одиночная кавычка — это же $char(39). Так просто.
bpdq
Автор темы
Репутация: 0
С нами: 12 лет 3 месяца

Сообщение #12 evil » 22.03.2009, 14:16

Зачем она вообще тут нужна? Других Monkey вроде нет.
evil M
Модератор
Возраст: 39
Репутация: 64
С нами: 15 лет 1 месяц


Вернуться в Общая информация