Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
foobar2000:tags:encouraged_tag_standards [2006/06/10 19:28] 127.0.0.1 (старая ревизия восстановлена) |
foobar2000:tags:encouraged_tag_standards [2006/06/16 13:57] Mishail |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Рекомендуемые стандарты тегов ====== | ||
- | ===== Предупреждение ===== | ||
- | Рекомендации, описанные в этом документе, были выработаны и согласованы группой пользователей foobar2000 и авторами скриптов titleformatting. Применение этих рекомендаций не обязательно для использования в foobar2000, хотя некоторые компоненты или готовые скрипты могут потребовать для своей работы различные специфические теги. | ||
- | |||
- | ===== Примеры кода и версии foobar2000 ===== | ||
- | Примеры кода приведены для версии Foobar2000 v0.9., потому что обновленная [[foobar2000:tagz:tutorial:tagz_intro#podstanovki_polej|подстановка полей]] начиная с версии 0.9 не совместима со старыми версиями foobar2000. | ||
- | |||
- | ===== Общая конструкция тега ===== | ||
- | |||
- | * Используйте легко понятое название поля в английском написании. | ||
- | * Префикс альбомозависимой информации должен быть "ALBUM ", например. "ALBUM ARTIST", "ALBUM SUBTITLE". | ||
- | * Избегайте использовать в названиях символы вне английского алфавита. Для последовательных полей (не самый удачный пример: FIELD1, FIELD2, и т.д.), вводите их в такои порядке, в каком он должны читаться. | ||
- | * Постарайтесь избегать использование символов подчеркивания. Пробелы легче в написании, более понятны и их легче использовать в [[foobar2000:tagz|TAGZ]]. Пробелы предпочтительней других символов. | ||
- | |||
- | ===== Краткий обзор текущих рекомендаций ===== | ||
- | |||
- | ИМЯ ПОЛЯ [формат] (компонент) | ||
- | |||
- | * ALBUM ARTIST [например, Various Artists, The Foobar Collective] | ||
- | //Примечание//: имя поля ALBUM ARTIST без ''символов подчеркивания''. Тег должен существовать если и только если альбом является V.A.-альбомом (V.A. Various Artists --- различные исполнители), т.е. сборником, где присутствуют разные исполнителм, и в таком случае этот тег должен быть прописан в каждом треке. Исполнители должны быть прописаны в теге ARTIST, но не в коем случае не в теге TITLE. | ||
- | |||
- | [[Encouraged_Tag_Standards#ALBUM_ARTIST|(узнать больше об этом стандарте)]] | ||
- | |||
- | * FIRST_PLAYED и LAST_PLAYED [2005-03-22 19:00:00...] (компонент foo_playcount) | ||
- | //Примечание//: эти два тега **используют** символы подчеркивания --- причиной для этого послужила своместимость с уже существующими тегом PLAY_COUNTER. После времени можно прописать любой тип данных и другую информацию. Скрипты TAGZ при извлечении строк из этого поля должны использовать ''$substr()'' вместо ''$right()''. | ||
- | |||
- | ''Смотрите также'': [[ha>Foobar2000:Tips_%26_Tricks#Standardize_my_PLAY_DATE_and_PLAY_TIME_fields|Standardize my PLAY_DATE and PLAY_TIME fields]] | ||
- | |||
- | |||
- | [[ha>Foobar2000:Encouraged_Tag_Standards#FIRST_PLAYED_and_LAST_PLAYED|(узнать больше об этом стандарте)]] | ||
- | |||
- | |||
- | ==== 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:tagz:tutorial:tagz_intro#podstanovki_polej|подстановке полей]] foobar2000 0.9 | ||
- | |||
- | === Примеры кода === | ||
- | <code php> | ||
- | // проверка, является ли альбом V.A.-альбомом | ||
- | $if($meta_test(album artist),$puts(album_is_va,1)) | ||
- | </code> | ||
- | <code php> | ||
- | // Для сортировки в контексте альбома, заменяем %artist% - %album% на: | ||
- | %album artist% - %album% | ||
- | </code> | ||
- | <code php> | ||
- | // режим singlemode без поддержки %album artist% | ||
- | [%artist% - ][%album% - ][%title%] | ||
- | </code> | ||
- | <code php> | ||
- | // режим singlemode с поддержкой %album artist% | ||
- | // примечание: если у вас поддерживается показ обоих режимов --- albummode и singlemode, | ||
- | // то вы можете использовать код выше, оставляем на ваш вкус | ||
- | [%album artist% - ][%album% - ][%track artist% - ][%title%] | ||
- | </code> | ||
- | <code php> | ||
- | // Как легко интегрировать %album artist% в режим albummode: | ||
- | // в колонке albummode-column замените %artist% на: | ||
- | [%album artist%] | ||
- | // В колонке заголовка, замените %title% на: | ||
- | [%track artist% - ][%title%] | ||
- | </code> | ||
- | |||
- | ==== FIRST_PLAYED и LAST_PLAYED === | ||
- | === Основы === | ||
- | * "FIRST_PLAYED" --- тег используется для хранения информации о том, когда трек был впервые проигран | ||
- | * "LAST_PLAYED" --- тег используется для хранения информации о том, когда трек был проигран в последний раз | ||
- | * теги содержат дату и время в вначале в следующем формате: "YYYY-MM-DD HH:MM:SS" (24-часовой формат) | ||
- | * дополнительная информация может быть добавлена в конец после вышеупомянутой информации | ||
- | |||
- | === Причины для применения такого стандарта === | ||
- | * [[http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/sv8/time.html APE-формат даты и времени]] (взят из ISO) является интернациональным | ||
- | * стандарт может быть подвергнутым сортировке | ||
- | * стандарт легко читаемый и распознаваемый | ||
- | * формат может быть проверен в TAGZ | ||
- | * может быть включен в строки форматирования без их реформатирования (про для начинающих кодеров tagz) | ||
- | * choosing a new fieldname avoids confusion with the existing ambigious play_date tag | ||
- | * имя поля понятно, признано, легко запоминающееся и коротко для написания в коде | ||
- | |||
- | === Примеры кода === | ||
- | <code php> | ||
- | // 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)) | ||
- | </code> | ||
- | <code php> | ||
- | // показ только даты last_played (без реформатирования) | ||
- | $left(%last_played%,10) | ||
- | </code> | ||
- | <code php> | ||
- | // показ только времени last_played (без реформатирования) | ||
- | // использование $right строго не рекомендуется! | ||
- | $substr(%last_played%,12,19) | ||
- | </code> | ||
- | Приведенные выше примеры кода могут быть использованы также и для FIRST_PLAYED (достаточно заменить last_played на first_played). | ||
- | |||
- | === Устаревшие и осуждаемые стандарты ==== | ||
- | |||
- | == PLAY_DATE и PLAY_TIME == | ||
- | |||
- | Осуждаемые теги --- это теги записанные старой версией foo_playcount. Принятые в той версии форматы даты и времени DDMMYY для PLAY_DATE и HHMMSS (24-часовой) для PLAY_TIME. | ||
- | |||
- | ''Смотрите'': [[ha>Foobar2000:Encouraged_Tag_Standards#FIRST_PLAYED_and_LAST_PLAYED|FIRST_PLAYED and LAST_PLAYED]]. | ||
- | |||
- | ~~DISCUSSION~~ |