Monday, July 23, 2007

Массовая конвертация ID3v1 и ID3v2 тэгов

Вопрос возник после заинтересованности в Music Player Daemon. Большинство музыки у меня в кодировке koi8-r и тем самым при добавлению в базе выходили кракозябры вместо русских названий песен и исполнителей.
Для конвертации понадобилось Java приложение ID3iconv. Скачать его можно отсюда.
Использовать её нужно командой:
java -jar путь/до/jar_файла путь_к_фалйам

Но что делать если нужно это сделать массово? Предположим что у нас есть в районе 100 файлов раскинутых ну к примеру по 50 папкам. Нужно делать рекурсию. Сначала расскажу об несокльких неудачных попытках.
1. Идея состояла в том чтобы список файлов передавать как /*/*.mp3 - Т.е. заходя в любую папку и меняя там все файлы...Но по запросу можно понять что мы можем зайти только в 1 директорию, т.е. Music/a/ в случае же если попробовать зайти через рекурсию в /Music/a/b то java машина может выдать ошибку о том, что аргумент слишком длинный.
2. Связка ID3iconv и find - По своету vonderer'a решил попробовать промутить скрипт, который бы перекодировал бы все найденные файлы в результате поискового запроса.
java -jar /home/id3iconv-0.2.1.jar -e cp1251 `find /D/Music/Russian/Ария/ -name *mp3`
Идея была убита тем что в результате выполения скрипта каждый пробел означал переход на новый файл. Т.е. файл 01 - Track01.mp3 Расценивался как 3 файла. Есстественно не обработанными оказывались все файлы.
3. Идея. Выполение скрипта на найденные файлы. Казалось бы всё что сделано просто поменяли местами предыдщуий алгоритм.
find /D/Music/ -name '*.mp3' -exec java -jar /home/id3iconv-0.2.1.jar -e cp1251 {} \;
Такую идею я позаимствовал у сообщества любителей MacOS ( http://www.macfaq.ru/index.php/Русские_Теги_в_iTunes ) Как ни странно но данный способ сработал. Все файлы были
переконвертированы в нормальный вид:-) При моей библиотеке в 70 Гб, данная функция оказалась просто необходимой при добавлении в базу mpd

Tuesday, July 3, 2007

Slackware 12.0

Собственно 2 Июля вышла новая версия моего любимого Slacware.
That's right, the first 2.6(.21.5) based Slackware release is ready for download! We think you'll enjoy the latest kernel, KDE 3.5.7, XFce 4.4.1, HAL automounting for desktop users, an updated toolchain, and many other enhancements.
http://slackware.com
В данной версии произошел окончательный переход на ядро ветки 2.6.xx (в состав входит ядро по умолчанию версии 2.6.21.5), X.org 7.2.0. Gllbc 2.5, GCC 4.1.2, KDE 3.5.7, Xfce 4.4.1.
http://www.linux.ru/news/#10094

Changelog - http://www.slackware.com/changelog/current.php?cpu=i386

Сдаётся мне, что пора пробовать себя в умении переноса настроек и драйверов)

Sunday, July 1, 2007

Раньше я завидовал чёрной завистью владельцам пакетов Дебиан семейства...Что не говори, а ой как удобней поставить 1 пакет всего 1 командой, к тому же которой ещё найдутся все зависимости в интернете и сами же настроятся...Но и для пользователей Slackware есть вполне достойная альтернатива...slapt-get
1. Где берём?
Вообще установка сего продукта наверное самое простое в Slackware - вам необходимо скачать архив для своей версии slackware вот с этой странички - http://software.jaos.org/#slapt-get
2. Установка
Скачав и распаковав небольшйо архив мы увидим в нём 3 папки, install, usr, src Дальше всё банально просто - копируем все эти папки в корень нашей файловой системы(cd /) . Может возникнуть проблема при запуске о том что не хватает файла /etc/slapt-get/slapt-getrc - о заглянув в каталог /etc/slapt-get/ можно увидить там файл slapt-getrc.new - Просто переименуйте его (mv slapt-getrc.newslapt-getrc ).
3. Репозитарии Теперь необходимо бы обновить репозитарии (хранилища с программами и библиотеками в интернете). Заходим в уже знакомый /etc/slapt-get/slapt-getrc.
# See /usr/doc/slapt-get-0.9.11h/example.slapt-getrc
# for example source entries and configuration hints.
WORKINGDIR=/var/slapt-get
EXCLUDE=^kernel-.*,^alsa-.*,^glibc.*,.*-[0-9]+dl$,^devs$,^udev$,aaa_elflibs,x86_64
SOURCE=ftp://ftp.slackware.com/pub/slackware/slackware-11.0/
SOURCE=http://software.jaos.org/slackpacks/11.0/

Находим в нём строки начинающиеся с SOURCE=. По умолчанию их 2. Но для полнофункциональной работы этого маловато. Поискав немного в гугле нашёл ещё парочку
SOURCE=http://linuxpackages.telecoms.bg/Slackware-11.0/
SOURCE=http://www.slacky.eu/repository/slackware-11.0/
Вставляем их в файл slapt-getrc...Теперь у Вас есть место откуда брать софт и библиотеки
4. Команды Полный список команд можно получить просто набрав в консоли slapt-get...Перечислю основные,
  • slapt-get -update - Обновляет информацию с репозитариев о наличии того или инного ПО. После установки и прописки репоизтариев необходимо будет её выполнить!
  • slapt-get -search Имя_программы - Ищет совпадение в описании и названии пакетов
  • slapt-get -install Имя_программы - Скачивает и устанавливает все необходимые пакеты для программы

Вот в принципе и всё...теперь поиск львиной доли ПО и библиотек к нему упрощён до невозможности - не забывайте время от времени обновлять репозитарии!