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

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


foobar2000:tags:encouraged_tag_standards

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


Рекомендуемые стандарты тегов

Предупреждение

Рекомендации, описанные в этом документе, были выработаны и согласованы группой пользователей foobar2000 и авторами скриптов titleformatting. Применение этих рекомендаций не обязательно для использования в foobar2000, хотя некоторые компоненты или готовые скрипты могут потребовать для своей работы различные специфические теги.

Примеры кода и версии foobar2000

Примеры кода приведены для версии Foobar2000 v0.9., потому что обновленная подстановка полей начиная с версии 0.9 не совместима со старыми версиями foobar2000.

Общая конструкция тега

  • Используйте легко понятое название поля в английском написании.
  • Префикс альбомозависимой информации должен быть «ALBUM », например. «ALBUM ARTIST», «ALBUM SUBTITLE».
  • Избегайте использовать в названиях символы вне английского алфавита. Для последовательных полей (не самый удачный пример: FIELD1, FIELD2, и т.д.), вводите их в такои порядке, в каком он должны читаться.
  • Постарайтесь избегать использование символов подчеркивания. Пробелы легче в написании, более понятны и их легче использовать в TAGZ. Пробелы предпочтительней других символов.

Краткий обзор текущих рекомендаций

ИМЯ ПОЛЯ [формат] (компонент)

  • ALBUM ARTIST [например, Various Artists, The Foobar Collective]

Примечание: имя поля ALBUM ARTIST без символов подчеркивания. Тег должен существовать если и только если альбом является V.A.-альбомом (V.A. Various Artists — различные исполнители), т.е. сборником, где присутствуют разные исполнителм, и в таком случае этот тег должен быть прописан в каждом треке. Исполнители должны быть прописаны в теге ARTIST, но не в коем случае не в теге TITLE.

(узнать больше об этом стандарте)

  • FIRST_PLAYED и LAST_PLAYED [2005-03-22 19:00:00…] (компонент foo_playcount)

Примечание: эти два тега используют символы подчеркивания — причиной для этого послужила своместимость с уже существующими тегом PLAY_COUNTER. После времени можно прописать любой тип данных и другую информацию. Скрипты TAGZ при извлечении строк из этого поля должны использовать $substr() вместо $right().

Смотрите также: Standardize my PLAY_DATE and PLAY_TIME fields

(узнать больше об этом стандарте)

ALBUM ARTIST

Основы

  • тег используется для объявления и описания альбомов/разных-EP или синглов, которые содержат разных исполнителей в «ALBUM ARTIST» (разделение пробелами, не символами подчеркивания)
  • тег должен существовать только если в альбоме есть разные исполнители (в сборниках, компиляциях и др.). Тег не должен быть создан в любом другом случае.
  • этот тег содержит общее название всех исполнителей (как например, «the foo-bar collective»), различных исполнителей или если для сборника нет чистого списка и присутствуют компиляции — просто прописывайте «Various Artists». Проще говоря, вы свободны прописывать все что угодно если речь идет об указании информации про исполнителей в альбоме.
  • каждый трек сборника разных исполнителей должен содержать этот тег с прописанным значением (списком) всех исполнителей или значением V.A. (Various Artists — различные исполнители)
  • исполнитель конкретного трека должен быть прописан в соответсвующем теге ARTIST
  • тег TITLE должен содержать только название трека

Причины для применения такого стандарта

  • такой подход решает решает все проблемы с альбомами, в которых существуют разные исполнители только с одним тегом
  • стандарт уже широко используется
  • осуществлятся сортировка и поиск
  • сохранение тега ARTIST специфичным позволяет искать треки в V.A.-альбомах точно также, как и обычного исполнителя (только DB-friendly)
  • сохранение тега TITLE специфичным позволяет сортировать и искать треки в V.A.-альбомах по заголовку (DB-friendly)
  • позволяет определять и отобращать V.A.-альбомы при миниальном объеме кода
  • предотвращает большую загрузку ресурсов и небезопасного «угадывания» в V.A.-альбомах через путь файла
  • стандарт прост для запоминания и для использования
  • не нарушает существующую систему, когда теги ARTIST и TITLE уже специфичны для каждого трека (легко перевести)
  • может дополнительно использоваться вместе с сортировкой по каталогу и маркировкой
  • может быть использован для разделенных-EP и синглов
  • стандарт поддержан в подстановке полей foobar2000 0.9

Примеры кода

 // проверка, является ли альбом V.A.-альбомом
 $if($meta_test(album artist),$puts(album_is_va,1))
 // Для сортировки в контексте альбома, заменяем %artist% - %album% на:
 %album artist% - %album%
 // режим singlemode без поддержки %album artist%
 [%artist% - ][%album% - ][%title%]
 // режим singlemode с поддержкой %album artist%
 // примечание: если у вас поддерживается показ обоих режимов --- albummode и singlemode, 
 // то вы можете использовать код выше, оставляем на ваш вкус
 [%album artist% - ][%album% - ][%track artist% - ][%title%]
 // Как легко интегрировать %album artist% в режим albummode:
 // в колонке albummode-column замените %artist% на:
 [%album artist%]
 // В колонке заголовка, замените %title% на:
 [%track artist% - ][%title%]

FIRST_PLAYED и LAST_PLAYED

Основы

  • «FIRST_PLAYED» — тег используется для хранения информации о том, когда трек был впервые проигран
  • «LAST_PLAYED» — тег используется для хранения информации о том, когда трек был проигран в последний раз
  • теги содержат дату и время в вначале в следующем формате: «YYYY-MM-DD HH:MM:SS» (24-часовой формат)
  • дополнительная информация может быть добавлена в конец после вышеупомянутой информации

Причины для применения такого стандарта

  • стандарт может быть подвергнутым сортировке
  • стандарт легко читаемый и распознаваемый
  • формат может быть проверен в TAGZ
  • может быть включен в строки форматирования без их реформатирования (про для начинающих кодеров tagz)
  • choosing a new fieldname avoids confusion with the existing ambigious play_date tag
  • имя поля понятно, признано, легко запоминающееся и коротко для написания в коде

Примеры кода

 // verify tag-format (we check the pos. of the first dash and ":")
 // using $len for verification is strongly unrecommended!
 $if(
 $and($strcmp($strstr(%last_played%,-),5),$strcmp($strstr(%last_played%,:),14))
 ,$puts(last_played_is_valid,1)
 )
<code php>
 // disassemble the timestamp for later reformatting or calcuations
 $puts(last_played_year,$substr(%last_played%,1,4))
 $puts(last_played_month,$substr(%last_played%,6,7))
 $puts(last_played_day,$substr(%last_played%,9,10))
 $puts(last_played_hour,$substr(%last_played%,12,13))
 $puts(last_played_min,$substr(%last_played%,15,16))
 $puts(last_played_sec,$substr(%last_played%,18,19))
 // показ только даты last_played (без реформатирования)
 $left(%last_played%,10)
 // показ только времени last_played (без реформатирования)
 // использование $right строго не рекомендуется!
 $substr(%last_played%,12,19)

Приведенные выше примеры кода могут быть использованы также и для FIRST_PLAYED (достаточно заменить last_played на first_played).

Устаревшие и осуждаемые стандарты

PLAY_DATE и PLAY_TIME

Осуждаемые теги — это теги записанные старой версией foo_playcount. Принятые в той версии форматы даты и времени DDMMYY для PLAY_DATE и HHMMSS (24-часовой) для PLAY_TIME.

Смотрите: FIRST_PLAYED and LAST_PLAYED.

~~DISCUSSION~~

foobar2000/tags/encouraged_tag_standards.1149953325.txt.gz · Последние изменения: 2006/06/11 20:21 (внешнее изменение)