Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

Конвертируем bin/flac/ape/wav+cue в flac, tracks.

nano /usr/bin/f2t

Код:

#!/bin/bash #By DsTr ;) #`kdialog --passivepopup "Добавление в коллекцию..." 1` if [ "$1" == '' ]; then shellDir="$PWD" else shellDir="$1" fi cd "$shellDir" find |while read dir; do if [ -f "$dir" ]; then dirName="`dirname "$dir"`" cd "`dirname "$dir"`" tsFile=`echo "$dir" | sed -ne 's!^.*\/!!p'` ext=`echo "$dir" | sed -ne 's!^.*\.!!p' | tr '[:upper:]' '[:lower:]'` &> /dev/null base=`echo "$tsFile" | sed -e 's!\.[^.]*$!!'` &> /dev/null if [ "$ext" = "ape" ]; then #`kdialog --passivepopup "$dir converting to $base.flac..." 2` mac "$tsFile" "$base.wav" -d flac "$base.wav" rm -f "$tsFile" "$base.wav" fi if [ "$ext" = "bin" ]; then #`kdialog --passivepopup "Converting $dir to $base.flac... " 2` `flac --force-raw-format --channels=2 --sample-rate=44100 --bps=16 --sign=signed --endian=little "$tsFile"` fi if [ "$ext" = "wav" ]; then #`kdialog --passivepopup "Converting $dir to $base.flac... " 2` `flac --force-raw-format --channels=2 --sample-rate=44100 --bps=16 --sign=signed --endian=little "$tsFile"` fi cd "$shellDir" fi done find |while read dir; do if [ -f "$dir" ]; then cd "`dirname "$dir"`" tsFile=`echo "$dir" | sed -ne 's!^.*\/!!p'` ext=`echo "$dir" | sed -ne 's!^.*\.!!p' | tr '[:upper:]' '[:lower:]'` &> /dev/null base=`echo "$dir" | sed -e 's!\.[^.]*$!!'` &> /dev/null if [ "$ext" = "cue" ]; then #`kdialog --passivepopup "Recoding $dir tags to unicode... " 2` pathtoflac=`ls | grep .flac` mv "$pathtoflac" "tmp.flac" mv "$tsFile" "tmp.cue" shnsplit -o wav "tmp.flac" -f "tmp.cue" -t '%n-%t' numTracks=`cueprint "tmp.cue" --disc-template %N` while (( numTracks > 0 )) do perfomer=`cueprint "tmp.cue" -n "$numTracks" --track-template %p` title=`cueprint "tmp.cue" -n "$numTracks" --track-template %t` album=`cueprint "tmp.cue" --disc-template %T` if (( ${#numTracks} == 2 )); then flac --replay-gain --force-raw-format --channels=2 --sample-rate=44100 --bps=16 --sign=signed --endian=little --best "$numTracks-$title.wav" splitname="$numTracks-$title.flac" rm -f "$numTracks-$title.wav" else flac --replay-gain --force-raw-format --channels=2 --sample-rate=44100 --bps=16 --sign=signed --endian=little --best "0$numTracks-$title.wav" splitname="0$numTracks-$title.flac" rm -f "0$numTracks-$title.wav" fi cueprint -n $numTracks -t 'ARRANGER=%A\nCOMPOSER=%C\nGENRE=%G\nMESSAGE=%M\nTRACKNUMBER=%n\nARTIST=%p\nTITLE=%t\nALBUM=%T\n' "tmp.cue" | egrep -v '=$' | metaflac "$splitname" --import-tags-from=- let "numTracks-=1" done rm -f "tmp.cue" "tmp.flac" fi cd "$shellDir" fi done #`kdialog --passivepopup "Завершено..." 1`


При желании добавляем в меню конкуерора:
nano ~/.kde/share/apps/konqueror/servicemenus/add2collection.desktop

Код: Выделить всё

[Desktop Entry]
Encoding=UTF-8
ServiceTypes=inode/directory
Actions=AddMusic2Collection

[Desktop Action AddMusic2Collection]
Name[ru]=Порезать на треки содержимое каталога
Exec=xterm -e /usr/bin/f2t %F
Icon=wizard

(будет открываться терминал и там выполняться мой скрипт с текущей диррикторией)

chmod 777 /usr/bin/f2t чтоб все могли выполнять

Для работы нужно:
mac;flac;shntools;cuetools


Нажатием одной кнопки в контекстном меню "все перегналось и разрезалось"
http://img529.imageshack.us.local/my.php?image=13ie0.jpg
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

гениально. спасибо.
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

St.MPA3b,
Спасибо =)

Или еще можно отредактировать его, заменив

Код: Выделить всё

if [ "$1" == '' ]; then
    cp -R "$PWD" "$pathToMusic"
    shellDir="$pathToMusic""`basename "$PWD"`"
else
    cp -R "$1" "$pathToMusic"
    shellDir="$pathToMusic""`basename "$1"`"
fi


На

Код: Выделить всё

if [ "$1" == '' ]; then
    shellDir="$PWD"
else
    shellDir="$1"
fi


И тогда он не будет копировать, будет делать п.2-6.
Если собираетесь использовать не в кде, следует убрать `kdialog --passivepopup "Завершено..." 1`

ЗЫ Модераторы - переименуйте плз тему на че-нить более подходящее,у меня в голову ниче не пришло =)
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

Кажется, он тупит, если в названиях файлов есть пробелы (или скобочки... хз... но с папкой "Manowar - Gods of War [FLAC]" он работать отказался.)
И ещё - он, кажется, жмёт не максимально сильно... используй --best во flac
И вот ещё что... файлы он называет примерно так: "04-Army of the Dead, Part 1.flac". Лучше смотрелось бы вот что - "04 - Army of the Dead, Part 1.flac". И совсем хорошо, если бы он ещё клал их в директорию вида $ARTIST/"$YEAR - $ALBUM" в директории с коллекцией. При этом стоит добавлть проверку на существование соответствующих тегов.
И ещё - если в папке лежит ОДНА картинка, хорошо бы было, чтобы он помещал её в сover.jpg (не забыв переконвертить в jpg). А если две и ОДНА из них содержит слово "back", то переделывать в cover.jpg и back.jpg.
У скрипта большое будущее ;).

upd: а ещё он берет не всю информацию из cue.
Вот пример:

Код: Выделить всё

REM GENRE "Heavy Metal"
REM DATE 2007
REM DISCID ED114D10
REM COMMENT "ExactAudioCopy v0.95b4"
CATALOG 6937238560256
PERFORMER "Manowar"
TITLE "Gods of War"
FILE "Manowar - Gods of War.ape" WAVE
  TRACK 01 AUDIO
    TITLE "Overture to the Hymn of the Immortal Warriors"
    PERFORMER "Manowar"
    ISRC USMC70700586
    INDEX 01 00:00:00

Он берёт только номера, названия, исполнителя и альбом. Хорошо бы было брать ещё ход и стиль (REM DATE, REM GENRE)
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

Посмотри на скрин:с пробелами работает нормально,возможно скобочки не понравились.С бест попробую поже - посмотрю на скоко больше он жмет...

ЗЫ качал и перегонял немеряно музыки уже.
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

хм... что бы это могло значить? Просто любопытно.

Код: Выделить всё

02 - Beauty And The Beast.wav: WARNING: skipping unknown sub-chunk 'PAD ' (use --keep-foreign-metadata to keep)
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

А хз.Ну дак как - заработал у тебя скрипт, нормльно?
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

Отлично заработал, всё им переконвертил. Один баг нашёл только - если имя APE'а (или CUE, точно не могу сказать) больше 14 (кажется) символов, то он не режется (особенность нарезалки). Надо проверялку-переименовывалку добавить
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

Ок, я хотел подправить его давно уже, руки не доходят...Твой баг учту...На неделе, наверно займусь...
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

лады, жду :)
Кстати, сравнивал flac с нормальным и максимальным сжатием?
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

Когда поправленная версия будет, не уточнишь?
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

Да, если не сложно, можешь сделать скрипт (или модификацию этого), который делал бы только это: в выбранной директории (и глубже) перекодировал бы (принудительно) весь flac во flac с --replay-gain --force-raw-format --channels=2 --sample-rate=44100 --bps=16 --sign=signed --endian=little --best (ну как он кодировал бы, если бы это не был flac)?

PS: баг, если это можно считать багом. Когда ему даётся flac, он его не пережимает и соответственно не прикручивает replay-gain...
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

Теперь перед тем как резать - переименовывает треки в tmp.*.
А флак кодирует с помощью flac с --replay-gain --force-raw-format --channels=2 --sample-rate=44100 --bps=16 --sign=signed --endian=little --best
JID:dstr@jabbus.org
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

Спасибо! Вечером проверю.
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

Опечатка в первой строке, поправь на
#!/bin/bash
Спасибо сказали:
Аватара пользователя
St.MPA3b
Сообщения: 24
ОС: Gentoo Linux

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение St.MPA3b »

кажется, если дан flac+cue, он их не разбивает...
Спасибо сказали:
Аватара пользователя
rain_99
Сообщения: 972
ОС: Debian

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение rain_99 »

DsTr писал(а):
07.09.2007 16:15
Для работы нужно:
mac;flac;shntools;cuetools


Нажатием одной кнопки в контекстном меню "все перегналось и разрезалось"
http://img529.imageshack.us.local/my.php?image=13ie0.jpg

flac, cuetools есть , остальные пакеты - не найдены. Куда копать? Мандрива 2008,1
...Все в наших руках...
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение DsTr »

У вас нет необходимых прав для просмотра вложений в этом сообщении.
JID:dstr@jabbus.org
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение KernelPanic »

DsTr писал(а):
07.09.2007 16:15
chmod 777 /usr/bin/f2t
А не многовато прав выделили? Чтоб все выполнять могли (но не редактировать скрипт) хватит 755.
Спасибо сказали:
Аватара пользователя
hatiffnatt
Сообщения: 11
ОС: Fedora Core 8

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение hatiffnatt »

Работает с FLAC(image)+cue , спасибо. Но файл
08. Act 1 Tableau 1- The Nutcracker battles against the Army of the Mouse King - ...wav
не перекодирует во FLAC.
Спасибо сказали:
connstance
Сообщения: 2
ОС: Debian

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение connstance »

Спасибо
Спасибо сказали:
Аватара пользователя
ffldove
Сообщения: 480
Статус: Keep It Simple, Stupid
ОС: RFRemix 14

Re: Добавляем в konqueror пункт в контекстное меню(экшнс),который добавляет музыку в коллекцию

Сообщение ffldove »

Спасибо
I learned something today
Спасибо сказали: