
Enqueue in audacious volume 2! anche i file in “system:/media/*”
Febbraio 12, 2009Grazie a TaTo sono riuscito a capire un bug ( chiamarlo bug è una parola grossa ) che affliggeva il primo metodo da me implementato in Kde, il “bug” consisteva :
Se mettevo in coda qualsiasi file che era nell mio hd con un path così:
/home/asd/musica/canzone.mp3
Allora audacious lo encodava ma questo non andava a buon fine se il file era encodato da una partizione montata come un hardisk esterno, una pendrive o qualsiasi altra cosa. dato che kde monta automaticamente tramite HAL il dispositivo, lo associa a un path del genere system:/media/<periferica/ quindi se noi encodavamo un file da quella cartella con quel path, audacious non lo riconosceva e lo “snobbava” infatti se andavamo a dare un mount vedevamo il mount-point d’origine e se accedevamo a quella cartella nonchè il mount-point da li riuscivamo a encodare, quindi era solo un problema di path.
Per ovviare a questa “falla” (stò usando termini catastrofici) ho creato questo scriptino:
#!/bin/bash
stringa=$1
echo $stringa > confr.txt
string="system:/"
confronto=`sed -n 's/media\/*.*//p' confr.txt`
#kdialog --msgbox $stringa
if [ $string == $confronto ];
then
#kdialog --msgbox ok!
echo $stringa > .1.txt #arriva la stringa con system
#kdialog --msgbox $stringa
sed -n 's/system:\/media\/*\///p' .1.txt > .2.txt #tolgo system:/media
file=`cat .2.txt`
#kdialog --msgbox $file #debug
brano=`sed -n 's/system:\/media\/[a-z A-Z 0-9]*//p' .1.txt` #nome canzone
#kdialog --msgbox $brano #debug
disp=`sed -n 's/\/[A-Za-z0-9]*.*//p' .2.txt` #variabile dispositivo
#kdialog --msgbox $disp #debug
mount |grep $disp > .4.txt
media=`cat .4.txt |awk '{ print $3 }'`
#kdialog --msgbox $media #debug
echo $media $brano > .5.txt
path=`sed -n 's/ /\//p' .5.txt`
#kdialog --msgbox $path #debug
audacious -e "$path" #ecco il mio path per audacious
rm .1.txt .2.txt .3.txt .4.txt .5.txt confr.txt
else
audacious -e "$stringa"
fi
#Version 0.2
SCARICATELO DA QUI–> audcoda <–
Copiatelo in /usr/bin/
In questo script non faccio altro che con qualche sed di prendermi tutti i path che mi servono e fixare il tutto e crearmi il path originale da andare a dare ad audacious.
Avevo pensato di farlo subito con un locate, ma alcune distribuzione non l’hanno come gentoo e bisognava scaricarlo,ma pensandoci bene “SI PUÒ FARE!” viene più veloce e non devo aggiornare il db periodicamente se non sempre quando monto una pendrive e sono sicuro che funziona senza nessuno sbattimento.
Tornando a noi, adesso ci andiamo a creare nella solita cartella
~/.kde3.5/share/apps/konqueror/servicemenus
Vi create o modificate se lo avete già creato il nostro file coda.desktop
[Desktop Entry]
Icon=cd
ServiceTypes=audio/x-mp3,audio/x-mod,audio/x-oggflac,audio/x-scpls,audio/x-vorbis,audio/x-waw
all/all
Actions=addAud
X-KDE-Priority=TopLevel
X-KDE-Submenu=&Aggiungi a Audacious
[Desktop Action addAud]
Name=Aggiungi in coda
Icon=audacious
Exec=audcoda %U
Come avete notato in grassetto c’è “per chi già l’avevo fatto” la stringhetta da cambiare.
E’ tutto se avete qualche consiglio su come migliorare lo script o su come implementarlo con altri programmi ecc fatemi sapere, per tutti le problematiche sono a vostra disposizione.
subrikk
Ottimo script!! Grazie mille!!!
ho parlato troppo presto.. :’( a me non funziona… provando ad eseguire lo script da terminale mi restituisce questi errori
/usr/bin/coda-audacious: line 6: -n: command not found
/usr/bin/coda-audacious: line 7: [: ”system:/”: unary operator expected
suggerimenti??
ho scoperto perchè! ahuahuahua manca il sed nel blog ahuahuahua..ma chissà perchè
lo aggiusto
ok adesso puoi ricopiare lo script e scusami..ma erano circa le 4 di notte quando l’ho postato
altro errore… mi sto documentando un pò sullo scripting ma ancora sono all’inizio…
sed: espressione -e #1, carattere 1: comando sconosciuto: `�’
/usr/bin/coda-audacious: line 6: [: ”system:/”: unary operator expected
ascolta prova a copiare lo script direttamente da qui direttamente da quì.
http://subrikk.altervista.org/audcoda
ancora niente… errori su errori :’( ti incollo l’output del comando eseguito da terminale…
tato@localhost ~ $ coda-audacious system:/media/sdc1/TaTo69_Mp3/a.mp3
amidi-plug(amidi-plug.c:amidiplug_init:97): init, read configuration
amidi-plug(i_backend.c:i_backend_load:107): loading backend ‘/usr/lib/audacious/Input/amidi-plug/ap-alsa.so’
amidi-plug(i_backend.c:i_backend_load:145): backend /usr/lib/audacious/Input/amidi-plug/ap-alsa.so (name ‘alsa’) successfully loaded
Unable to read from file:////media/LaCie/a.mp3, giving up.
Unable to read from file:////media/LaCie/a.mp3, giving up.
Unable to read from file:////media/LaCie/a.mp3, giving up.
Unable to read from file:////media/LaCie/a.mp3, giving up.
Unable to read from file:////media/LaCie/a.mp3, giving up.
Unable to read from file:////media/LaCie/a.mp3, giving up.
grazie dell’aiuto
Ok adesso deve andare per forza, sai cosa era? Ma nulla una svista..praticamente se tu aggiungevi la canzone dalla cartella principale della periferica andava, invece se creavi una cartella e lo facevi da li non andava, adesso risolto..fammi sapere..re incolla questo file nel tuo coda-audacious
http://subrikk.altervista.org/audcoda
funziona!!!!!!!!!!!!!!!!!!!!!!!!!!!
veramente complimenti grazie mille…
scusami x la risposta in ritardo
TaTo