The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Работа для программиста (FreeBSD), скрипт работы с mp3"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Поиск и предложение работы, доска объявлений. (Public)
Изначальное сообщение [Проследить за развитием треда]

"Работа для программиста (FreeBSD), скрипт работы с mp3"
Сообщение от Евгений email(??) on 18-Фев-06, 21:14 
Программа должна работать в FreeBSD. На вход подается путь к папке, внутри которой находятся папки с музыкальными файлами. Пример:

/mp3_sorted_by_date/2006-02-18/DJ_Devious-Powermix_on_Radio_538-CABLE-02-17-2006-TWCLIVE/

00-dj_devious-powermix_on_radio_538-cable-02-17-2006.nfo
00-dj_devious-powermix_on_radio_538-cable-02-17-2006.m3u
00-dj_devious-powermix_on_radio_538-cable-02-17-2006.sfv
01-dj_devious-powermix_(must_be_the_music_edition_part_1)-02-17-2006.mp3
02-dj_devious-powermix_(must_be_the_music_edition_part_2)-02-17-2006.mp3

В каждой папке обязательно есть 3 основных файла: .nfo, .m3u, .sfv.

Ограничений на количество папок не должно быть, их может и 1000 и 10000 быть. На первом этапе, программа должна отобрать те папки где есть все 3 основных файла, если в какой-то папке нет то она автоматически переносит ее в определенное место на сервере, к примеру нет .nfo, значит эта папка переносится в /mp3_no_nfo/, если нет .m3u - /mp3_no_m3u/, если нет .sfv - /mp3_no_sfv/. Названия папок куда переносить возможно будут меняться, предусмотреть возможность изменения путей. После того, как остались папки в которых все сопутствующие файлы есть, необходимо профильтровать их на совпадение контрольной суммы, в каждой папке как я уже говорил есть файл .sfv, по нему сверяется контрольная сумма всей папки. Если что-то не так, то переносим папку в /mp3_bad_sfv/. Если все тесты пройдены, то папку переносим в /060218/ - такого рода папки будут генерироваться каждый день, автоматически, первые два символа это год, вторые месяц, и третьи – число. При этом, необходимо, чтобы программа обрабатывала mp3 тэги, которые должны быть в каждом .mp3 файле, от туда необходимо взять всю информацию, id3v1.title, id3v1.artist, id3v1.album, id3v1.year, id3v1.genre, id3v1.comment (это первый вид тегов, есть еще второй), id3v2.title, id3v2.artist, id3v2.album, id3v2.year, id3v2.genre, id3v2.comment, id3v2.composer, id3v2.orig.artist, id3v2.copyright, id3v2.url, id3v2.encoded.by, а так же текст из названия директории, который находится справа до символа «-« (Приведу пример: Innervisions_Presents_Ame-Rej_Ep-DIRFIX-Vinyl-2006-USF это название папки, USF это то, что надо сохранять в базе, все папки имеют одинаковую структуру, поэтому задача предельно проста, взять имя папки, взять самые правые символы, посимвольно сохраняя, доходя до символа «-«, тогда стоп, идем дальше). Все эти теги можно увидеть, если обычным Winamp’om открыть file info любого .mp3 файла. Где не знаю, но для каждого .mp3 файла есть информация о типе .mp3 файла, его сжатие, частота, тип записи, время звучания и размер (пример: (MPEG 1 Layer 3, 198 Кбит/с VBR, 44100 Гц, Стерео (joint), 05:43, 8,10 Мб)). Информацию, которую удалось вытащить из этих тегов и из названия папки нужно занести в базу данных (MySQL), структуру я пришлю. Необходимо учесть, что все теги, кроме .genre, это просто текст, а тэг .genre это цифра от 1 до 255, таким образом кодируется стиль. Таблицу соответствий я так же вышлю. В базу так же необходимо заносить информацию о всех перемещениях той или иной папки, будь то в папку /mp3_bad_sfv/, /mp3_no_sfv/ и т.д., кроме папок нужно вести логи и для файлов, которые перемещаются вместе с папками. В некоторых папках есть помимо всех вышеперечисленных файлов, файлы картинок, обычно .jpg, путь и название каждого такого файла нужно сопоставлять с папкой, то есть в базе данных предусмотреть столбец pict, где находится название файла картинки для каждой папки, где конечно он есть. После того, как вся информация занесена в базу, все папки обработаны (перенесены или в папку сегодняшней даты, или в папки «ошибок»), нужно на сервере создать автоматически линки, то есть, при сортировки музыки, за основную папку, где будет храниться физически музыка берется папка /mp3_sorted_by_date/, создаются еще 3 папки, виртуальных, mp3_sorted_by_artist, mp3_sorted_by_genre, mp3_sorted_by_group. В них будут находится линки на физический путь к соответствующей папки. Рассмотрим более подробно каждую папку:

mp3_sorted_by_artist – структура ее такова, что в ней будет находится подпапки 0, 1, 2, .. 9, A, B, C, … Z, А, Б, … Я, в каждой из них будет находится линк на папку, у которой тег «id3v1.artist» имеет значение, первая буква которого совпадает с названием подпапки (пример: /mp3_sorted_by_artist/0/ 00-Violence-Gridlok_And_Echo-VIO012-2004-sour, данная ссылка ссылается на то место, где физически размещена эта папка, к примеру пускай эта папка лежит в /mp3_sorted_by_date/050223/ 00-Violence-Gridlok_And_Echo-VIO012-2004-sour), аналогично и с остальными папками, /mp3_sorted_by_genre/ формируется 255 подпапок по умолчанию, в них помещаются линки на те папки, у которых тег id3v1.genre совпадает по значению с одной из 255 подпапок. /mp3_sorted_by_group/ здесь создаются подпапки совпадающие со значениями, которые есть в базе, взятые из названия папки (текст из названия директории, который находится справа до символа «-«).

Может быть я что-то путано тут написал, но визуально можно все это посмотреть на сервере ftp://ftp.recordings.ru.

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

У меня есть исходники (на си) программы, которая делает уже что-то похожее, но она работает с ошибками, много недочетов, если нужно могу прислать ее. И еще, наверно удобней всего, будет, если информация о том откуда брать папки на обработку, куда кидать хорошие, а куда плохие – хранить в базе данных.

Мне хотелось бы знать сроки и цену.

Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Работа для программиста (FreeBSD), скрипт работы с mp3"
Сообщение от Евгений email(??) on 19-Фев-06, 00:02 
Да, забыл совсем почту оставить:

pii@psyone.ru

Cообщить модератору | Наверх

2. "Работа для программиста (FreeBSD), скрипт работы с mp3"
Сообщение от Евгений email(??) on 20-Мрт-06, 11:34 
Тема еще актуальна. Сроки очень сжаты.
Cообщить модератору | Наверх

Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру