вторник, 29 декабря 2009 г.

Кодировка в zip-архивах.

Оказалось, что Windows хранит имена файлов внутри zip-архива в странной кодировке. Точнее они получаются кодированные несколько раз, и соответственно при распаковке в *nix смотрятся примерно так:

tmp $ unzip -l Luk-F.zip
Archive: Luk-F.zip
Length Date Time Name
--------- ---------- ----- ----
0 2009-12-01 12:06 ??????????-??????????/
1014063 2009-11-30 12:00 ??????????-??????????/AlReader2.win32.ru.zip
1335515 2009-11-30 12:00 ??????????-??????????/AlReader2.zip
616504 2009-11-30 12:00 ??????????-??????????/AlReader_Help.zip
625572 2009-11-30 12:00 ??????????-??????????/QDictionary.zip
0 2007-09-28 02:57 ??????????-??????????/???????/
0 2009-11-30 11:58 ??????????-??????????/???????/?????? - ???????? ???????/
696811 2007-10-24 13:22 ??????????-??????????/???????/?????? - ???????? ???????/?????????? ?????? - ?????? - ???????? ???????.fb2

Для правильного отображения, после распаковки, следует использовать

convmv -r -f cp1252 -t cp850 * --notest && convmv -r -f cp866 -t utf-8 * --notest

Подсмотрено у TuxR

вторник, 3 ноября 2009 г.

Архиватор. Всё в одном.

Вообще конечно, не сложно запомнить пару опций к популярным архиваторам, типа
tar -xvjf file.tar.bz2
или
rar x file.rar
Но попадись какой-нибудь arj, ace, 7z, и начинаешь читать мануалы, искать опции просмотра, добавления, извлечения. Да и с "обычными" архивами легче работать одной командой, чем учить опции каждого. Ну и естественно, в мире свободного программного обеспечения, об этом уже кто-то позаботился и предоставил нам на блюдечке.
Программа atool, работает с множеством архивов, являясь единой оболочкой для архиваторов. Работает до безобразия просто:
просмотр архива
atool -l file
извлечение
atool -x file
причем извлекает в отдельную директорию, если у архива не было корневой.
Вот так просто и удобно.

суббота, 30 мая 2009 г.

музыкальные "разрезалки"

Задача, разделить один flac файл всего диска, на отдельные файлы трэков. Нужно мне это, опять же, для удобного отображения списка файлов, а также, для возможности переноса отдельных песен на плеер или кпк.
В общем-то Google сразу же дает ответ на этот вопрос, остается только оформить это в скрипт.
Для разделения, добавления тэгов и переименовывания, понадобятся пакеты:
sudo aptitude install cuetools shntool lltag
Утилита cuebreakpoints из пакета cuetools, берет из файла cue временные точки для "обрезки" на трэки, а shnsplit уже обрезает по этим точкам. Для добавления к файлам тэгов используется cuetag, и наконец lltag - переименовывает файлы по данным из тэгов.

#!/bin/bash
if [ "$1" != *.cue ]
then
echo Usage ./flacorez file.cue file.flac
exit
fi
if [ "$2" != *.flac ]
then
echo Usage ./flacorez file.cue file.flac
exit
fi
#разрезаем
cuebreakpoints "$1" | shnsplit -o flac "$2"
#добавляем тэги
cuetag "$1" split*.flac
#переименование в вид "номер трэка_артист - название трэка", параметр --yes "автоматом" отвечает "да" на вопросы о содержании тэга и переименовании
lltag --yes --no-tagging --rename '%n_%a - %t' split*.flac
echo Done.

Вторая задача, вырезать кусок mp3-файла, например для использования рингтоном на телефоне.
Для таких целей есть маленький и быстрый инструмент - cutmp3.
Для работы в интерактивном режиме, открываем файл:
cutmp3 -i music.mp3
Для движения по файлу вперед используются клавиши от 6 до 0, на 0.1 с- 1с - 10с - 1м - 10м соответственно, назад от 5 до 1. Клавишей "a" отмечается начальная точка, "b" - конечная, "s" - "вырезать" между отмеченными точками.
Для "вырезки" определенного места:
cutmp3 -i file.mp3 -a 0:20 -b 1:02
Программа работает без перекодирования и потому моментально.

среда, 27 мая 2009 г.

Маленькие полезняшки и не очень

Я довольно таки много читаю, в основном это делаю на КПК, а вот сама "коллекция" fb2-книг хранится на десктопе. Хотя книг не много, но в том виде в котором их отдают библиотеки, я имею ввиду имя файла, выбрать нужную да и вообще посмотреть "что есть", ну очень не удобно. Искать решение долго не пришлось. Товарищ или товарищи :) , разработчики fb2-читалки PyBookReader , также создали парочку маленьких полезняшек. Первая - ренеймер fb2 файлов (умеет работать с zip архивами) fb2desc . Читает discription книги и переименовывает файл, форматов переименования 6, но мне как-то не очень они понравились, а не понравилось то, что серия и номер книги в серии идут последним полем имени файла. Благо это просто скрипт на питоне,который даже мне удалось исправить под себя. Теперь формат имени файла таков:
Имя авторов - (Серия #Номер книги в серии) - Название.fb2
Что для сортировки и наглядности намного лучше, например сейчас правильная сортировка:
Гаррисон Гарри - (Крыса из нержавеющей стали #1) Рождение Стальной Крысы.fb2
Гаррисон Гарри - (Крыса из нержавеющей стали #2) Крыса из нержавеющей стали призвана в армию.fb2
Гаррисон Гарри - (Крыса из нержавеющей стали #3) Стальная Крыса.fb2
Гаррисон Гарри - (Крыса из нержавеющей стали #4) Месть крысы из нержавеющей стали.fb2
А было:
Гаррисон Гарри - Крыса из нержавеющей стали призвана в армию (Крыса из нержавеющей стали #2).fb2
Гаррисон Гарри - Месть крысы из нержавеющей стали (Крыса из нержавеющей стали #4).fb2
Гаррисон Гарри - Рождение Стальной Крысы (Крыса из нержавеющей стали #1).fb2
Гаррисон Гарри - Стальная Крыса (Крыса из нержавеющей стали #3).fb2
Вот такой я молодец :) , правда проблема с несколькими авторами книги осталась, но ее видимо без создания отдельной директории не решить.
Вторая полезняшка, это консольная читалка fbless от тех же товарищей. Для быстрого просмотра-поиска чего-то большего и не надо. Также умеет открывать файлы из архивов.
Третья, "не очень" полезняшка, чудная малютка screenie , из нескольких изображений делает одно но гламурное :) , очень красиво.
Четвертая и последняя, но от того не менее полезная :) , скроблер для mpd , mpdscribble, просто отправляет на last.fm информацию о проигрываемом треке и больше ничего, на просторах репозиториев Debian водится в виде пакета.
Ну раз сказал что, четвертая последняя, то всё.