Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
foobar2000:tags:encouraged_tag_standards [2006/06/11 21:21] Spike улучшил восприятие и исправил ошибки |
— (текущий) | ||
---|---|---|---|
Строка 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()''. | ||
- | |||
- | ''Смотрите также'': [[foobar2000:секреты_и_трюки|Стандартизация поля PLAY_DATE и PLAY_TIME]] | ||
- | |||
- | ==== ALBUM ARTIST === | ||
- | === Главное === | ||
- | * Тег используется для объявления и описания альбомов (разных EP, разных синглов, сборников), которые содержат разных исполнителей (разделять пробелами, не символами подчеркивания). | ||
- | * Тег должен существовать только если в альбоме есть разные исполнители (в сборниках, компиляциях и др.). Тег **не должен** быть создан в любом другом случае. | ||
- | * Этот тег содержит общее название всех исполнителей (как например, "the foo-bar collective"), различных исполнителей (или если для сборника нет чистого списка и присутствуют компиляции --- просто прописывайте значение "Various Artists"). Проще говоря, вы свободны прописывать все что угодно, если речь идет об указании информации про исполнителей в альбоме. | ||
- | * Каждый трек сборника разных исполнителей должен содержать этот тег с прописанным значением (списком) всех исполнителей или значением V.A. (Various Artists --- различные исполнители). | ||
- | * Исполнитель конкретного трека должен быть прописан в соответсвующем теге ARTIST. | ||
- | * Тег TITLE должен содержать только название трека. | ||
- | |||
- | === Причины для применения такого стандарта === | ||
- | * Такой подход решает все проблемы с альбомами, в которых существуют разные исполнители, только при помощи одного тега ALBUM ARTIST. | ||
- | * Cтандарт уже широко используется. | ||
- | * Осуществлятся сортировка и поиск. | ||
- | * Сохранение тега ARTIST специфичным позволяет делать поиск треков в V.A.-альбомах точно также, как и обычного исполнителя (и более гуманней по отношению к базе данных). | ||
- | * Сохранение тега TITLE специфичным позволяет сортировать и искать треки в V.A.-альбомах по заголовку (и более гуманней по отношению к базе данных). | ||
- | * Стандарт позволяет определять и отображать V.A.-альбомы при миниальном объеме кода. | ||
- | * Стандарт предотвращает большую загрузку ресурсов процессора и памяти, небезопасного "угадывания" в V.A.-альбомах через путь файла | ||
- | * Стандарт прост для запоминания и легок для использования. | ||
- | * Стандарт не нарушает существующую систему, когда теги ARTIST и TITLE уже специфичны для каждого трека (информацию легко перевести в новый стандарт). | ||
- | * Стандарт может дополнительно использоваться вместе с сортировкой по каталогу, маркировкой. | ||
- | * Стандарт может быть использован для разделенных EP/синглов. | ||
- | * Стандарт имеет поддержку в [[foobar2000:tagz:tutorial:tagz_intro#podstanovki_polej|подстановке полей]] foobar2000 0.9. | ||
- | |||
- | === Примеры кода === | ||
- | <code tagz> | ||
- | // проверка, является ли альбом V.A.-альбомом | ||
- | $if($meta_test(album artist),$puts(album_is_va,1)) | ||
- | </code> | ||
- | <code tagz> | ||
- | // Для сортировки в контексте альбома, заменяем %artist% - %album% на: | ||
- | %album artist% - %album% | ||
- | </code> | ||
- | <code tagz> | ||
- | // режим singlemode без поддержки %album artist% | ||
- | [%artist% - ][%album% - ][%title%] | ||
- | </code> | ||
- | <code tagz> | ||
- | // режим singlemode с поддержкой %album artist% | ||
- | // примечание: если у вас поддерживается показ обоих режимов --- albummode и singlemode, | ||
- | // то вы можете использовать код выше, оставляем право выбора на ваш вкус | ||
- | [%album artist% - ][%album% - ][%track artist% - ][%title%] | ||
- | </code> | ||
- | <code tagz> | ||
- | // Как легко интегрировать %album artist% в режим albummode: | ||
- | // в колонке albummode-column замените %artist% на: | ||
- | [%album artist%] | ||
- | // В колонке title, замените %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 | ||
- | * Стандарт может быть включен в строки форматирования без их реформатирования. | ||
- | * Выбор нового имени поля исключает конфликт с уже существующим двусмысленным тегом play_date. | ||
- | * Имя поля понятно, признано, легко запоминается, быстро пишется в коде. | ||
- | |||
- | === Примеры кода === | ||
- | <code tagz> | ||
- | // проверка формата тега (проверяем позицию первой черточки и двоеточия) | ||
- | // использование $len для проверки строго не рекомендуется! | ||
- | $if( | ||
- | $and($strcmp($strstr(%last_played%,-),5),$strcmp($strstr(%last_played%,:),14)) | ||
- | ,$puts(last_played_is_valid,1) | ||
- | ) | ||
- | <code tagz> | ||
- | // разбираем метку даты/времени для дальнейшего форматирования или расчета | ||
- | $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 tagz> | ||
- | // показ только даты last_played (без форматирования) | ||
- | $left(%last_played%,10) | ||
- | </code> | ||
- | <code tagz> | ||
- | // показ только времени 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. | ||
- | |||
- | ~~DISCUSSION~~ |