Игорь Белый (bujhm) wrote,
Игорь Белый
bujhm

Category:

mp3-архив А.Карпова. Задача для профессионала

Надеюсь, что этим профессионалом окажется Рома Шеф, по крайней мере история его взаимоотношений с сайтами моего производства тому способствует.
Итак, что мы имеем на настоящий момент. Огромный массив архивных mp3-записей размером в полтора гигабайта - это около 6/7 всего существующего материала. Львиная часть работы по их сортировке, описанию и прописыванию тагов уже выполнена, теперь необходимо разработать онлайновую базу, в которой они будут жить. У этой базы, понятно, должно быть два лица - админское и юзерское; с админской стороны идёт наполнение и редакция, с юзерской - сортировка, скачивание и другие полезные сервисы. Я попытался представить себе, как всё это может выглядеть в деталях - в чём-то, возможно, по-профански, в чём-то, надеюсь, мысли мои окажутся полезными другим при решении подобных задач в будущем.

I. Хостинг
Мне ничего не остаётся, как надеяться на великого Морозовского - уж очень это непросто, приютить полтора гига барахла.

II. Но, представим, что это решено. Куча mp3-файлов уже где-то уютно улеглась.
Админская страница сразу предлагает наполнение базы. Основная структурная единица этого процесса - концерт или альбом. Чтобы было нагляднее, попробую оперировать иллюстрациями.

Иллюстрация 1
Это действительно не более, чем иллюстрация, никаких скриптов там нет.

Название записи - вещь важная. Запись может быть концертом, альбомом, а может быть и просто результатом рассеянного включения диктофона на посиделках.

Название стороны кассеты/части альбома - иногда бывает так, что альбом состоит из двух комплектов, вот как старая кассета "Балкон над парком - Дорога в Дублин".

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

Кто вёл запись - ещё одна обязательная информация. Не стоит ей пренебрегать - если будет нужда, именно тот, кто записывал, сможет найти потерянную запись или рассказать что-нибудь важное.

Количество треков - в общем-то, это поле должно считаться само автоматически, при набивании следующей записи уже по конкретному альбому-концерту. Но лучше его оставить для контроля. Если вдруг пропустишь при наполнении песнями какой-то трек - пусть оно завопит и затопает ногами. И это поле, и следующее - общее время - не составляет труда заполнить, закинув папку с файлами в плей-лист плеера.

В дополнительную информацию, естественно, входит всё, что может относиться к предмету. Ниже, в примерах данных, отображается под заголовком P.S.

Юзерский вариант отличается отсутствием полей и управляющих ссылок после каждой записи.

Данные по общему времени звучания записи генерятся автоматически, в соответствии с наполнением треками.

После нажатия кнопки "отправить в базу" информация записывается, куда должно, и открывается следующая админская страница - наполнения конкретной записи песнями.

Иллюстрация 2

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

Очень важный момент для этой базы данных - связь первой строки и названия. Она должна устанавливаться автоматически по умолчанию, с возможностью её отмены. Для этого присутствует админская ссылочка [ разорвать связь "первая строка - название" ], ведущая на Иллюстрацию 2а, где можно исправить неверную связь.

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

В пункте 4 - название истории - должна быть предусмотрена возможность, когда одна история соотносится к нескольким произведением. Нажатие на админскую ссылочку [ ещё к песне (стихотворению) ] должно вывести дополнительные повторные поля для этого момента.

Пункты 8 и 9 принципиально отличаются между собой: Карпов может играть и петь в качестве ведущего, а может и просто подпевать или подыгрывать кому-то. Здесь я полагаюсь только на своё знание предмета.

Кнопка "отправить как последний трек в записи" должна закрывать запись и выводить к общей странице альбомов (концертов). При этом если заявленное количество треков не соответствует действительности, должна оставаться предупреждающая красная запись.

В разделе отображения уже наполненных данных по трекам должны присутствовать адимнские ссылочки [ вверх ] [ вниз ] - на тот случай, если последовательность наполнения была спутана.

Суть комментария может быть раскрыта в поле дополнительная информация.

Вес mp3-файла должен автоматически рассчитываться на серверной стороне и выводиться в режиме подробной записи.

Админская запись типа [ http://karpov.hole.ru/mp3/уникальная_ссылка ], которая создаётся автоматически только для песен и стихов, нужна для того, чтобы вставлять её в качестве ссылки к mp3-файлу на текстовых страницах. Например, на странице http://karpov.hole.ru/songs/balkon.htm в самом низу есть ссылка "mp3". После кликанья на неё юзер должен получить комплект ВСЕХ записей песни "БАЛКОН НАД ПАРКОМ" в обратной хронологической последовательности, в полном режиме.

Иллюстрация 3

По-моему, всё довольно прозрачно. Если у юзера происходит переизбыток информации, он волен перевести данные в краткий режим:

Иллюстрация 3а

Юзерская ссылочка [ сформировать пакет для скачивания ] достойна отдельного упоминания. Она видна, как в полном, так и в кратком режиме. Для чего она нужна, становится понятно из следующей иллюстрации:

Иллюстрация 3b

Видимо для её работы необходимо разработать дополнительный программный модуль. Функция сформировать пакет для скачивания должна быть доступна при ЛЮБОМ выводе результатов. Независимо от того, что запросил юзер - будь то:
вывести все песни
вывести все стихотворения
вывести все истории
вывести все треки с комментариями

вывести все произведения чужого авторства
вывести все произведения чужого исполнения
вывести все произведения, исполняемые только А.Карповым
вывести все произведения, исполняемые А.Карповым совместно с кем-то

- всё это дополнительные управляющие юзерские ссылочки, которые становятся видны сверху, если юзер ткнул на [ вывод по заданным критериям ] (см. иллюстрация 1). Их состав пока неустойчив и станет окончательно известен лишь в процессе тестирования и отладки всей системы в целом.

Чтобы юзер не путался при разных фильтрациях данных, что он уже скачал, а что - ещё нет, в результатах вывода (иллюстрация 3) скачанные файлы отмечаются другим цветом, а при формировании пакета для скачивания (иллюстрация 3b) соответствующие окошки с галочками должны быть затемнены и деактивированы. Видимо, не без кукисов.

III. О будущем
Можно попробовать представить себе следующий шаг в этом неохватном труде. А именно, когда система архива уже сложится и устаканится - можно попробовать сделать надскрипт. То есть генерацию комплекта php-скриптов mp3-архива АП для стороннего пользования; с определением некоторых характерных моментов для выпадающих меню. Возможно, такой готовый сетевой механизм смог бы оказаться полезным не только упёртым архивистам, но и обычным любителям авторской песни, выкладывающим свои архивы в Сеть.

Tags: о'карпов, придумал
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments