h1

Enqueue in audacious volume 2! anche i file in “system:/media/*”

febbraio 12, 2009

Grazie 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

Annunci

9 commenti

  1. Ottimo script!! Grazie mille!!!


  2. 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??


  3. ho scoperto perchè! ahuahuahua manca il sed nel blog ahuahuahua..ma chissà perchè 😐 lo aggiusto


  4. ok adesso puoi ricopiare lo script e scusami..ma erano circa le 4 di notte quando l’ho postato 😀


  5. 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


  6. ascolta prova a copiare lo script direttamente da qui direttamente da quì.

    http://subrikk.altervista.org/audcoda


  7. 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 😀


  8. 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


  9. funziona!!!!!!!!!!!!!!!!!!!!!!!!!!!
    veramente complimenti grazie mille…

    scusami x la risposta in ritardo 🙂

    TaTo



Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: