Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
30 lines (23 sloc) 3.84 KB

Подреждане на музикална колекция

Да се имплементира библиотека, която работи с аудио файлове (за целите на условието: аудио=mp3) и предоставя следните възможности:

  1. Инициализира се по път във файловата система, който служи за "корен" на музикалната колекция (напр. C:\Music).
  2. Дава статистики за музикалната колекция: общ брой аудио фалове, среден размер на аудио файл, среден брой на аудио файловете в директория.
  3. За всеки mp3 файл предоставя информация за таговете му (тагове=ID3 тагове).
  4. За всеки mp3 файл предоставя информация за релативният път в колекцията за него (напр. за C:\Music\John Coltrane\Giant Steps\Naima.mp3, релативният път е John Coltrane\Giant Steps\Naima.mp3).
  5. Дава възможност да се обходи колекцията и да се открият всички файлове в нея, които не са именувани "добре".
    • Под "добре" именувани разбираме: файлът да удовлетворява предварително зададени условия за съответствие между релативния път и таговете на файла.
    • Критериите за съответствие трябва да бъдат конфигурируеми за колекцията.

Демонстрирайте работата на библиотеката чрез примерно конзолно приложение.

Изберете и имплементирайте поне ДВЕ от следните допълнителни задания:

  • допълнителни статистики: средна дължина на аудио файл, най-често срещани артисти, най-често срещани стилове
  • възможност за работа с допълнителни аудио формати: flac, ogg (и респективните формати за тагове)
  • при несъответствие между тагове и релативен път - даване на предложения за поправяне на таговете и/или пътя на файла
  • GUI приложение (в допълнение на конзолното)
  • нещо по ваш избор (след като го съгласувате с нас)

Забележки:

  • Препоръчваме ви да ползвате някоя от тези библиотеки за работа с ID3 тагове.
  • Идеи за конфигуриране на съответствие между тагове и релативен път:
    • Форматиращ низ, който форматира таговете до низ, съдържащ релативен път. (напр. "%artist%/%year% - %album%/%track_number%. %track_name%.%extension%")
    • Регулярен израз, който parse-ва съдържанието на релативен път до таговете. (напр. "(?P.)/(?P\d+) - (?P.)/(?P<track_name>.mp3)")
    • Функция написана на Питон би могла да послужи за описване на съответствието между тагове и релативен път
    • нещо XML-базирано (само за хора с много свободно време и липса на по-добри идеи)
You can’t perform that action at this time.