Инструменты пользователя

Инструменты сайта


foobar2000:tagz:tutorial:tagz_intro

Это старая версия документа!


Введение в написание скриптов с использованием Tagz

Tagz это скриптовый язык используемый в foobar2000 не только для конфигурации внешнего вида плэйлистов, но и вообще для реализации любой функциональности уровня продвинутых пользователей. После изучения этого пособия Вы сможете легко использовать этот язык в любых ситуациях. Но начнем мы все же с азов.

Доступ к тэгам и полям

В своей простейшей форме Tagz просто читает информацию из тэгов Ваших музыкальных фалов. Вот так:

%artist%

Foobar2000 ищет тэг artist в песне и возвращает имя испонителя. В случае если этот тэг отутсвует в файле Вы получите в качестве результата вопросительный знак (?). Все что заключено между знаками % рассматривается как тэг, не смотря на имя. Если Вы используете тэг с именем my field в Ваших файлах, то просто используйте %my field% для того чтобы получить информацию из этого тэга.
Кроме того, точно такой же синтаксис используется для доступа к технической информации, например %bitrate% возвращает битрэйт файла, а %_ispaused% покажет Вам сотсояние текущей песни (пауза/проигрывание). Для того чтобы получить более полное описание функциональности Tagz прочтите Справку по функциям и полям, используемым в скриптах Foobar2000

Подстановки полей

Опять вернемся к нашему полю %artist% . Начиная с версии 0.9 foobar2000 это поле на самом деле является сокращенной формой для:

$if3($meta(artist),$meta(album artist),$meta(composer),$meta(performer))

Не надо пугаться сложности этого выражения. На самом деле оно говорит: Найти тэг artist. Если его нет, использовать тэг album artist. Если же и его нет, то попытаться использовать тэг composer, а затем performer.

Это на самом деле очень важно знать, что за большинством из наиболее используемых тэгов скрываются подстановки подобные этой. Для полного их перечня обратитесь к уже упомянутой справке по функциям и полям. Эти подстановки введены для того чтобы облегчить жизнь создателей скриптов.

Несомненно, использование подстановок делает процесс создания скриптов более удобным, но бывают случаи когда нам нужно получит доступ к не измененному, «чистому» значению поля, тому, которое на самом деле хранится в файле. И мы уже видели как это делается. Для того чтобы прочитать такое (неизмененное подстановкой) значение тэга artist, следует использовать:

$meta(artist)

Обратите внимание что в этом случае имя поля (тэга) не заключается в знаки %. Вы можете использовать данный синтаксис команды для любых полей, которые ссылаются на тэги в файле, но никогда не используйте его для полей возвращающих техническую информацию (напр. %bitrate%).

Все еще малопонятно? ;-) Не расстраивайтесь, все стянет ясней когда мы начнем разрабатывать настоящий скрипт. Думаю возврат к этой странице и ее повторное прочтение после этого будет весьма уместно.

Функции

Другой важной частью синтаксиса Tagz являются функции, используемые для вычисления огромного разнообразия выражений. Просто передаете некоторые данные в функцию, которая их обрабатывает и возвращает результат. Посмотрим на примере:

$repeat('f',10)

Вызов любой функции начинается со знака $ за которым следует имя функции. Данные которые Вы передаете в функцию (называемые аргументами) помещаются в скобках после имени функции. Если аргументов несколько, то они разделяются запятыми. И запомните, не должно быть никаких пробелов в таком вызове, не после знака $, ни после имени функции, ни между аргументами, нигде.
Функция из примера повторяет букву f десять раз. Ниже, когда мы будем говорить о строках, вы поймете почему f указано в одинарных кавычках, а 10 - нет.

~~DISCUSSION~~

foobar2000/tagz/tutorial/tagz_intro.1147783854.txt.gz · Последние изменения: 2006/05/16 15:51 (внешнее изменение)