Här finns tips och guider för Ubuntu.

Visar inlägg med etikett script. Visa alla inlägg
Visar inlägg med etikett script. Visa alla inlägg

fredag 29 juni 2007

Fantastiskt vackert sätt att visa upp sin musiksamling

Yuzem över på Ubuntuforums.org har skrivit ihop ett fantastiskt skript som visar upp musiken på din dator så här



Det finns en hel del funktioner för den som vill testa med olika sätt att presentera musiken på. Detta är en omarbetat översättning och presentation av den engelska tråden som finns här.

Du behöver installera imagemagick för att kunna använda skriptet. Du kan installera det antingen genom att skriva in sudo apt-get install imagemagick i en terminal eller via Synaptic, System --> Administration --> Pakethanteraren Synaptic.

Ladda sedan ner denna filen till ditt skrivbord. När den väl är nere högerklicka på filen och välj Packa upp här. En mapp som heter Avatar-Factory ska sedan finnas på ditt skrivbord. Skapa därefter en mapp någonstans på datorn där du vill ha bilderna. Jag väljer som exempel här att använda mig av en mapp jag döpt till Min musik och som befinner sig i monteringspunkten /400Gb. Kom ihåg denna sökväg för vi kommer att behöva den senare. I mitt fall är alltså sökvägen till mappen där jag vill ha bilderna /400Gb/Min\ musik/. Jag behöver också veta om sökvägen till min katalog med all musik. Denna katalog innehåller alltså musikalbumen som jag vill ha presenterade i min katalog Min musik. I mitt fall så ligger dessa musikalbum i /400Gb/Albums.

Öppna nu upp ett terminalfönster, Program --> Tillbehör --> Terminal och skriv in följande

cd Desktop/Avatar-Factory/

Skriv därefter in

sudo ./install

Nu är skriptet installerat och klart att användas, men innan vi gör detta så går vi igenom de olika alternativen som erbjuds och vad som behövs mer för att skriptet ska funka korrekt.
Skriptet söker igenom mapparna efter .png och .jpg bilder och använder sedan dessa som albumomslag.
Du behöver alltså ha en bild i din katalog av albumet. Så här ska det se ut för att fungera korrekt.



Saknar du skivomslagsbilder kan du ladda ner dem på Amazon, eller om ni använder Amarok följa instruktionerna i videon nedan.



Det finns olika funktioner att lägga till när man väl kör igång skriptet. Här är en genomgång av dessa.
Du kan ändra temat till att visa upp som vinyl istället för CD.



Detta görs med hjälp av flaggan -t vinyl.
Du kan ändra hur namnet presenteras med flaggan --name X där X är en siffra som motsvarar följande

0=Inget namn (som i Videon)
1=Indexeringsnummer
2=Titel
3=Alternativ 1+2


För att definiera vilken spelare som ska användas när du dubbelklickar på Albumet så skriver du in följande i en terminal

sudo gedit ~/.avatar-factory/avatar-launcher

I det tomma dokumentet som dyker upp skriver du nu in (exempel för spelaren xmms)

music=xmms

Vill du inte att det ska visas på ditt skrivbord albumomslaget när albumet spelas lägger du till raden

music_widget=no

Vill du att när du dubbelklickar på albumet så öppnas istället albumet upp så använder du flaggan --type 0

När du bestämt dig för hur du vill ha det så är det dags att köra igång skriptet. Följande rad som skrivs in i ett terminalfönster kommer nu att göra så att det blir precis som i videon.

avatar-factory -mg /400Gb/Albums/ /400Gb/Min\ musik/ --type 0 --name 0


Jag har använt flaggorna --type 0 som gör att när jag dubbelklickar på ett album så hamnar jag i albumkatalogen istället för att albumet börjar spelas och flaggan --name 0 som gör att inget namn visas under bilderna.

Yuzem som skrivit skriptet kommer att göra uppdateringar till det och lägga till funktioner som t.ex. ranking-stjärnor. Jag ska hålla koll på utvecklingen av skriptet och uppdatera så fort jag hinner.

Andra bloggar om: , ,

söndag 10 juni 2007

ATI drivrutiner med skript

Zinden som är medlem på Ubuntu-se har skrivit ihop ett skript för er som vill få igång era ATI-kort men stött på problem.

Börja med att ladda ner denna filen till skrivbordet.
Öppna sedan upp ett terminalfönster och skriv in

sudo chmod +x Desktop/fglrx.txt


För att få fram hjälp filen skriver ni därefter in först

cd Desktop/

följt av

./fglrx.txt --help

Vill du nu installera de nyaste drivrutinerna så skriver du in

./fglrx.txt -m

Efter att detta är klart fortsätter vi med

sudo gedit /etc/X11/xorg.conf


Leta upp:

Section "Device"
Identifier "ATI Technologies Inc RV350 AR [Radeon 9600]"
Driver "ati"
BusID "PCI:1:0:0"
EndSection

ändra om Driver "ati" till så här:

Section "Device"
Identifier "ATI Technologies Inc RV350 AR [Radeon 9600]"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSection

Ändra inget annat, då kan det gå åt pipan. Sen spara och starta om datorn. Sen ska allt vara klart.

Källa: Ubuntu Sverige

Andra bloggar om: ,

lördag 7 april 2007

Få reda på vilka paket du har installerat

Fann ett skript som tar reda på samtliga paket du installerat sedan ursprungsinstallationen. Kan vara hjälpsamt för er som har tänkt er göra en ominstallation och sedan snabbt komma igång igen. Kredits går till bruenig som skrivit skriptet. Jag har bara översatt det till er. Efter att skriptet är installerat så kommer det funka som i videon nedan.


Om du inte kan se filmen ovan så följ min flash 9 guide.

Börja med att högerklicka på ditt skrivbord och välj Skapa dokument --> Tom fil. Döp filen till Installerade paket.
Dubbelklicka sedan på filen och klistra in nedanstående.

#!/bin/bash

#Ask for version to set DESKTOP
while [ "$answer" != "ubuntu" ] && [ "$answer" != "kubuntu" ] && [ "$answer" != "xubuntu" ]; do
echo "Vilken version använder du? Skriv in ubuntu, kubuntu, eller xubuntu?"
read answer
done

#Get the installed packages
INSTALLED_PACKAGES=$(dpkg --get-selections | grep -v deinstall | awk '{print $1}')

#Get date of minimal and use that to find untouched packages
INSTALL_DATE=$(ls -l /var/lib/dpkg/info | grep ubuntu-minimal.list | awk '{print $6}')
BASE_PKG=$(ls -l /var/lib/dpkg/info | grep $INSTALL_DATE | awk '{print $8}' | sed 's/.list//g')

#Get the dependencies of the meta packages used during install
STANDARD=$(apt-cache show ubuntu-standard | grep -E ^Depends | sed 's/^Depends: //' | \
sed 's/, /\n/g' | sed 's/ | /\n/g')
MINIMAL=$(apt-cache show ubuntu-minimal | grep -E ^Depends | sed 's/^Depends: //' | \
sed 's/, /\n/g' | sed 's/ | /\n/g')
DESKTOP=$(apt-cache show $answer"-desktop" | grep -E ^Depends | sed 's/^Depends: //' | \
sed 's/, /\n/g' | sed 's/ | /\n/g')

#Set up the grep strings (what a stupid way to do this)
GREP_STRING=$(for x in $(echo $BASE_PKG) $(echo $STANDARD) $(echo $MINIMAL) \
$(echo $DESKTOP) ; do echo "$x|" ; done)
CLEAN_GREP=$(echo $GREP_STRING | sed 's/\ //g' | sed "s/|$/\'/" | sed "s/^/\'/")

# Find the new packages and setup nolib
NEW_PACKAGES=$(echo "$INSTALLED_PACKAGES" | grep -Evw $CLEAN_GREP)
NOLIB=$(echo "$NEW_PACKAGES" | grep -Ev ^lib)

# Ask for libraries or no libraries, kernel or no kernel, and output file or not
while [ "$choice" != "j" ] && [ "$choice" != "n" ]; do
echo "Ska jag ta med libraries i resultatet (j/n)?"
read choice
done

if [ "$choice" = "j" ] ; then
OUTPUT=$(echo "$NEW_PACKAGES")
else
OUTPUT=$(echo "$NOLIB")
fi

while [ "$response" != "j" ] && [ "$response" != "n" ]; do
echo "Ska jag inkludera varje version av kärnan och moduler som du installerat? (j/n)?"
read response
done

if [ "$response" = "n" ] ; then
OUTPUT=$(echo "$OUTPUT" | grep -Ev '^linux-headers-2|^linux-image-2|^linux-restricted-modules-2')
fi

while [ "$input" != "j" ] && [ "$input" != "n" ]; do
echo "Vill du att resultatet sparas som en textfil (j/n)?"
read input
done

if [ "$input" = "n" ] ; then
echo "$OUTPUT"
else
echo -e "Vilket namn ska filen ha?\n(Försäkra dig om att du har skrivrättigheter \
och att sökvägen är korrekt)"
read file
if [ "${file%%/*}" = "~" ] ; then
file="/home/$USER$(echo $file | sed 's/~//')"
fi
echo "$OUTPUT" > $file
fi
exit


Spara textdokumentet och stäng ner gedit.
Högerklicka på filen och välj egenskaper. Välj sedan fliken rättigheter och boka där i Tillåt körning av filen som program.
För att köra skriptet så öppna upp ett terminalfönster och skriv in.

cd Desktop

följt av

./Installerade\ paket

torsdag 15 mars 2007

Nvidia igen

Jag har fått en del e-post om att Envy inte funkar så bra för Nvidiadrivrutinerna. Min manuella guide för Nvidia funkar däremot perfekt men är ganska omständig då man måste skriva ut/ner instruktionerna för att följa guiden.
Jag har skrivit ett skript som sköter installationen automatiskt och som förhoppningsvis kommer underlätta avsevärt.

När du följt denna guide så kommer det vara väldigt enkelt att installera eller ominstallera Nvidiadrivrutinerna.

Vad som krävs för att skriptet ska funka.
1. Ubuntu 7.10 (Ni som kör Kubuntu får ändra i skriptet och byta ut gdm mot kdm, gdm står på två ställen i skriptet)
2. Internetuppkopling
3. Ett GForce 4 kort eller bättre
Jag rekommenderar starkt att skapa ett alias för att köra igång skriptet eftersom när din dator har uppdaterat t.ex. kärnan så kommer du hamna i console när datorn startas om. Detta sker för att drivisarna måste installeras specifikt för en viss kärna. När din kärna uppdateras behöver drivrutinerna ominstalleras.
Med ett alias så räcker det med att skriva in fixanvidia i consolen så ordnar skriptet resten.
Skriptet kan med fördel även användas för att uppdatera drivrutinerna till nyaste versionen.

Börja med att öppna upp ett NYTT terminalfönster och skriv in "gedit .bashrc". Då kommer ett textdokument öppnas.
Leta upp området som ser ut som så här

#if [ -f ~/.bash_aliases ]; then
# . ~/.bash_aliases
#fi


och ändra det till

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi


Dvs. ta bort de tre # som står framför raderna. Spara dokumentet och stäng ner gedit.
Skriv nu in "gedit .bash_aliases" i terminalfönstret. Ett tomt textdokument kommer att öppnas (inte tomt om du redan använder aliases). Här skriver du in de alias du vill använda.

Skriv in följande i det tomma dokumentet

alias fixanvidia='sudo sh /home/DITTANVÄNDARNAMN/.Nvidia.txt'

Glöm inte att byta ut DITTANVÄNDARNAMN mot ditt användarnamn på datorn.
Du kan byta ut fixanvidia mot vad du vill så länge det är ett ord. Huvudsaken är att det ska vara något som du kommer ihåg.
Spara filen och avsluta gedit.
Högerklicka sedan på ditt skrivbord och välj "Skapa Dokument"-->"Tom fil" och döp filen till
"Nvidia.txt".
Dubbelklicka sedan på filen och klistra in nedanstående text in i dokumentet.

#!/bin/bash
if [ `id -u` != "0" ]; then
echo "Du maste vara root for att kora det har skriptet"
exit 1
fi
mkdir nvidia-temp
cd nvidia-temp
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup.nvidia
wget http://us.download.nvidia.com/XFree86/Linux-x86/169.12/NVIDIA-Linux-x86-169.12-pkg1.run
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 437D05B5
cp /etc/apt/sources.list /etc/apt/sources.list.backup.Nvidiaskript
echo "# Temporär source-list, din original source.list finns i/etc/apt/sources.list.backup.Nvidiaskript
deb http://se.archive.ubuntu.com/ubuntu gutsy main restricted
deb http://se.archive.ubuntu.com/ubuntu gutsy-updates main restricted
deb http://security.ubuntu.com/ubuntu gutsy-security main restricted

deb-src http://se.archive.ubuntu.com/ubuntu gutsy main restricted
deb-src http://se.archive.ubuntu.com/ubuntu gutsy-updates main restricted
deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted

deb http://se.archive.ubuntu.com/ubuntu gutsy universe multiverse
deb http://se.archive.ubuntu.com/ubuntu gutsy-updates universe multiverse
deb http://security.ubuntu.com/ubuntu gutsy-security universe multiverse

deb-src http://se.archive.ubuntu.com/ubuntu gutsy universe multiverse
deb-src http://se.archive.ubuntu.com/ubuntu gutsy-updates universe multiverse
deb-src http://security.ubuntu.com/ubuntu gutsy-security universe multiverse" | sudo tee -a /etc/apt/sources.list

gpg --export --armor 437D05B5 | sudo apt-key add -

apt-get update -y
apt-get install -y linux-headers-`uname -r` build-essential gcc gcc-3.4 xserver-xorg-dev
/etc/init.d/gdm stop
apt-get --purge remove nvidia-glx nvidia-settings nvidia-kernel-common
rm /etc/init.d/nvidia-*
sh NVIDIA-Linux-*
mv /etc/apt/sources.list.backup.Nvidiaskript /etc/apt/sources.list
apt-get update -y
cd ..
rm -Rdf nvidia-temp
nvidia-xconfig --add-argb-glx-visuals
/etc/init.d/gdm start


Spara dokumentet och stäng ner gedit.
När du är klar så ska vi flytta Nvidia.txt till din hemkatalog och samtidigt göra den dold så att den inte försvinner av misstag.

Skriv in följande i ett terminalfönster (se till att Nvidia.txt ligger på skrivbordet)

mv /home/DITTANVÄNDARNAMN/Desktop/Nvidia.txt /home/DITTANVÄNDARNAMN/.Nvidia.txt

då kommer filen flyttas till din hemkatalog och samtidigt döpas om till .Nvidia.txt (punkten gör att den blir dold). Du ska nu kunna se filen om du skriver in ls -al i ett terminalfönster i ditt home eller genom att trycka Ctrl + h om du befinner dig grafiskt i din hemkatalog. Kontrollera detta.

Efter att detta är gjort så är allt klart. Stäng ner terminalfönstrerna och spara allt arbete.
Nu om du trycker Ctrl + Alt + F3 så kommer du till icke grafiskt Ubuntu. Logga in och skriv sedan in fixanvidia (eller vad du valde som alias) och tryck enter. Om allt funkar ska du se hur en massa saker sker på skärmen och de senaste drivrutinerna laddas ner och startprogramet för drivisarna startas.

Så när din kärna uppdateras och du hamnar i console så skriver du bara in fixanvidia så fixar skriptet resten.

Om det inte skulle funka och du hamnar i console så kan du återställa din gamla xorg.conf fil genom att skriva in

sudo mv /etc/X11/xorg.conf.backup.nvidia1.0-9755 /etc/X11/xorg.conf


Andra bloggar om: , , ,

torsdag 15 februari 2007

Realtidsbild av Jorden som skrivbordsbakgrundsbild

Med hjälp av ett program som heter Xplanet kan man lätt fixa så att ens skrivbord får följande utseende och uppdateras automatiskt.



Börja med att skapa en mapp där bilden som skapas av Xplanet kan lagras. Jag har min bild i /400Gb/Bilder/Xplanet/

Kör därefter följande i terminalen

sudo apt-get install xplanet xplanet-images


När installationen är färdig så högerklicka på skrivbordet och välj "Skapa dokument" följt av "Tom fil", döp filen till .Xplanet-gnome (punkten före namnet betyder att filen kommer bli dold). Dubbelklicka på filen och skriv in nedanstående i filen.

#!/bin/bash
#xplanet-gnome.sh shell script v0.2
#shows Earth on your Gnome desktop with
#current lighting conditions,i.e. day and night

DELAY=30m

PREFIX=/400Gb/Bilder/Xplanet/
OUTPUT=xplanet.png
APPEND=2

GEOMETRY=1024x768
LONGITUDE=15
LATITUDE=30
#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular

#rename background image so Gnome realises image has changed - thx to dmbasso

if [ -e "$PREFIX$OUTPUT" ]; then
rm "$PREFIX$OUTPUT"
OUTPUT="$APPEND$OUTPUT"
else
rm "$PREFIX$APPEND$OUTPUT"
fi

if [ -z $PROJECTION ]; then
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE
else
xplanet -num_times 1 -output "$PREFIX$OUTPUT" -geometry $GEOMETRY -longitude $LONGITUDE -latitude $LATITUDE -projection $PROJECTION
fi

#update Gnome backgound
gconftool -t str -s /desktop/gnome/background/picture_filename "$PREFIX$OUTPUT"

sleep $DELAY
exec $0


Leta upp
PREFIX=/400Gb/Bilder/Xplanet/ och ändra sökvägen till mappen du skapade tidigare.
Spara och stäng ner ditt textredigerarprogram. Gör nu filen körbar genom att högerklicka på filen och välj egenskaper (eller kör sudo chmod 755 /Sökväg/till/filen). Klicka på fliken rättigheter och se till att "Tillåt körning av filen som ett program" är ibockad som i bilden nedan.



Flytta filen till din hemkatalog. Starta sedan upp ett terminalfönster och skriv in

sh .Xplanet-gnome

Om allt stämmer så ska du få ett felmeddelande ungefär som så här

rm: cannot remove /400Gb/Bilder/Xplanet/2xplanet.png

Detta är normalt och kommer inte att hända nästa gång scriptet körs. Högerklicka nu på skrivbordet och välj "Byt skrivbordsbakgrund". Klicka på "Lägg till bakgrundsbild". Bläddra till katalogen med den renderade bilden i. Dubbelklicka på bilden xplanet.png och avsluta med att klicka på "Färdig". Du bör nu ha en bakgrundsbild som visar jorden. Bilden kommer uppdateras var 30:e minut.

Gå nu via System--Inställningar till Sessioner och klicka på fliken Startprogram. Klicka på "Lägg till" och skriv in följande "/home/DITTANVÄNDARNAMN/.Xplanet-gnome". Tryck sedan "Ok" och sedan stäng. Nu kommer scriptet att starta automatiskt när du loggar in i Gnome.

Om man ändrar i scriptet så kan man få olika typer av bilder.
Leta upp följande del av scriptet

#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
#PROJECTION=rectangular


Ändra det till

#default is no projection,i.e. render a globe
#rectangular is the flat world map. also try ancient, azimuthal, mercator,..
PROJECTION=rectangular


Spara och logga ut och logga in igen och bilden blir så här istället



Vill ni ha Sverige i mitten av skärmen så använd nedanstående värden i scriptet

LONGITUDE=15
LATITUDE=60


Andra bloggar om: , ,

onsdag 31 januari 2007

Packa upp och ner filer i Ubuntu m.h.a. ett Nautilus-script.

Med hjälp av följande script kan man göra som i videon nedan.


Om du inte kan se filmen ovan så följ min flash 9 guide.

Vi börjar med att skriva in följande i ett terminalfönster.

sudo apt-get install tar bzip2 gzip zip unzip unrar

Högerklicka sedan på skrivbordet, välj Skapa dokument och därefter tom fil. Döp filen till "Packa upp eller ner filer".
Dubbelklicka på filen och ett tomt dokument öppnas. Klistra in nedanstående (fet text) text och spara dokumentet.

#!/bin/bash -x
#
#
# Nautilus script -> Ultimate Archive Tool for Nautilus
# Compress and decompress dynamic
# Multilang
#
# Owner : Largey Patrick Switzerland
# patrick.largey@nazeman.org
# www.nazeman.org
# Co-Owner : David Westlund
# daw@wlug.westbo.se
#
# Licence : GNU GPL
#
# Copyright (C) Nazeman
#
# Dependency : zenity
# : tar, bzip2, gzip, zip
# : gunzip, bunzip2, unzip, unrar
# : Nautilus
# : unace -> http://www.winace.com/
# : and Gnu tools -> grep, sed, which, etc...
#
# Encoding UTF-8
#
# Ver: 1.40 Date 24.03.2004
# Remove gdialog and add support for zenity
#
# Ver: 1.30 Date: 04.04.2003
# Add compatibilty with Nautilus 2.x
#
# Ver: 1.21 Date 06.01.2002
# Add compatibility with Xdialog + some improvemenz in code thanks to shellscript-fr(at)debianworld.org
#
# Ver: 1.20 Date 04.01.2002
# Add decompress file witout extension or with a false extension !!yeah!!
# + some small fixes + better scripting
#
# Ver: 1.15 Date 20.10.2002
# Add check and recover action for parchive (http://parchive.sourceforge.net)
# + make a .par
#
# Ver: 1.13 Date 13.06.2002
# Add Italian from Gianluca Romito
#
# Ver: 1.12 Date 10.5.2002
# Fix Bug with "ace" format from Boris de Laage de Meux (emak(at)free.fr)
#
# Ver: 1.11 Date 22.03.2002
# Add please wait dialog in decompress mode
#
# Ver: 1.10 Date 11.03.2002
# Add possibilty default config (archiver-config script)
# Add Estonian from Tõivo Leedjärv (toivo(at)linux.ee)
#
# Ver: 1.01 Date 28.02.2002
# Bug fix (thanks Shane) Add Portuguese from Rafael Rigues (rigues(at)conectiva.com.br)
#
# Ver: 1.00 Date 27.02.2002
# Yeah ! version 1.00 (I hope is no BUG)
# Add translation in "Esperanto" from Eric (eclesh(at)pacbell.net)
# Bugfix with Unzip (space file) + German update
#
# Ver : 0.9.9-6 Date 7.2.2002
# Add idea from David (check if programm is available)
# Add rar format
#
# Ver : 0.9.9-5 Date 31.01.2002
# Bugfix with : zip a directory , is recursive yet
# Add no case sensitiv (tgz, TGZ, TgZ,...)
#
# Ver : 0.9.9-4 Date 22.01.2002
# me: Add dialog for unarchive "yes or no"
# Please test all possibility to find bug to ver 1.00
#
# Ver: 0.9.9-2 Date 21.01.2002
# me: Add .Z Format compress and uncompress
# Add .ace format to decompress
# Add Dialog for decompress to overwrite file by David
# Some correction in force to decompress
# better recognise file if archive or not
#
# Ver: 0.9.9-1 Date 20.01.2002
# me: Add script uncompress_all, please wait ....
# Add some correction by David Westlund
# make a check to find what is for file
# if file is an archive -> decompress else compress
#
# Ver: 0.9.8 Date 12.01.2002
# me: Add Dialog with compressor choice
# tar.gz, tar.bz2, zip, gz, bz2
# Please update with rar and unrar (I don't have)
#
# Ver: 0.9.4 Date: 11.05.2001
# Support for swedish
# Don't create files with names like archive.tar.gz.tar.gz or archive.tgz.tar.gz
# If the input is just one file, the archive will be called .tar.gz as default
# Added by David Westlund
#
# Ver: 0.9.3 Date: 10.09.2001
# me: added file mit space !!!
#
# Ver: 0.9.2 Date: Sept 9, 2001
# me: added confirm windows + German Support
#
# Ver: 0.9.1 Date: Sept 5, 2001
# Shane Mueller added patch from Manuel Clos to add Spanish support
#
# Ver : 0.9 Date : 11.08.2001
#
curpath=`echo $NAUTILUS_SCRIPT_CURRENT_URI | sed 's/file\:\/\///'`
if [ ! -z $curpath ]
then
cd $curpath
else
cd `pwd`
fi
#
# Default language
#
filename="File name?"
fileexist="File exists. Overwrite?"
title="Archiver-Unarchiver"
archive="archive"
compressor="extension: archive: "
decompressor="Do you want to uncompress: "
valid="available"
notvalid="not available"
pleasewait="Please wait...."
warning="Warning!"
beuh="Unknown format."
ncompr="could not be uncompressed."
compr="has been uncompressed."
rec="was created successfully."
overwrite="The following files will be overwritten: "
proceed="Do you want to proceed?"
parchive="Parchive : "
parmiss="Cannot recover, too many file missing"
parok="parity archive valid"
parnotok=" lacking, recover ?"
format="format"
info="information"
choix="choice"
case $LANG in
fr* )
filename="Nom du Fichier ?"
fileexist="Fichier existant, écraser ?"
title="Archiveur-Desarchiveur"
archive="archive"
decompressor="Voulez vous désarchiver : "
compressor="Extension de l'archive : "
valid="disponible"
notvalid="non disponible"
pleasewait="Veuillez patientez ....."
warning="! Attention !"
beuh="format inconnu."
ncompr="ne peut être décompressé."
compr="est décompressé."
rec="est enregistré."
overwrite="les fichiers suivant seront écrasé: "
proceed="Voulez-vous poursuirvre ?"
parchive="Parchive : "
parmiss="Impossible de reconstruire, trop de fichier manquant."
parok="archive de parité valide."
parnotok=" manquant, reparez ?"
format="extension"
info="information"
choix="choice";;
es* )
filename="¿Nombre del archivo?"
fileexist="El archivo ya existe, ¿sobreescribir?"
title="Archivar"
archive="archivo"
compressor="¿extensión del archivo?"
decompressor="¿ Quiere descomprimir "
valid="disponible"
notvalid="no disponible"
pleasewait="Por favor, espere..."
warning="¡ Cuidado !"
beuh="Formato desconocido"
ncompr="no se puede descomprimir"
compr="se descomprimió correctamente."
rec="se creó correctamente"
overwrite="los archivos suiguientes serán sobreescritos: "
proceed="¿ Quiere continuar ?" ;;
de* )
filename="Dateiname ?"
fileexist="Datei existiert bereits, überschreiben ?"
title="Archiver-Desarchiver"
archive="archiv"
compressor="Extension von Archiv : "
decompressor="wollen Sie dekomprimieren : "
valid="Gültig"
notvalid="Nicht gültig"
pleasewait="Bitte warten ...."
warning="! Warnung !"
beuh="unbekanntes Format"
ncompr="kann nicht dekomprimieren"
compr="ist komprimiert"
rec="ist gespeichert"
overwrite="soll(en) diese Datei(en) überschriebenerden: "
proceed="Wollen Sie weitermachen ?" ;;
eo* )
filename="Dosiera nomo?"
fileexist="Dosiero ekzistas. Æu superskribu?"
title="Ar¶igilo-Malar¶ivigilo"
archive="ar¶ivo"
compressor="Fina¼o de la ar¶ivo?"
decompressor="Æu vi volas malar¶ivigi: "
valid="havebla"
notvalid="nehavebla"
pleasewait="Bonvolu atendi..."
warning="Avertu!"
beuh="Nekonata formato"
ncompr="Ne povis kompresigi"
compr="estas kompresigita"
rec="øuste kreita"
overwrite="La sekvantaj dosieroj superskribiøos: "
proceed="Æu vi volas procedi?";;
pt* )
filename="Nome do arquivo?"
fileexist="O arquivo já existe. Sobrescrever?"
title="Compactador-Descompactador"
archive="arquivo"
compressor="extensão: arquivo: "
decompressor="Você quer descompactar: "
valid="disponível"
notvalid="não disponível"
pleasewait="Aguarde...."
warning="Aviso!"
beuh="Formato desconhecido."
ncompr="não pôde ser descompactado."
compr="foi descompactado."
rec="foi criado com sucesso."
overwrite="Os seguintes arquivos serão sobrescritos: "
proceed="Deseja continuar?" ;;
sv* )
filename="Filnamn?"
fileexist="Filen existerar, vill du skriva över?"
title="tar.gz-arkiverare"
compressor="Filändelse arkiv :"
decompressor="Vill du packa upp : "
archive="arkiv"
#valid="????"
#notvalid="????"
pleasewait="Var god vänta..."
warning="! Varning !"
beuh="Okänt format"
ncompr="kunde inte packas upp korrekt"
compr="är uppackad"
rec="är sparad"
overwrite="Följande filer kommer skrivas över: "
proceed="Vill du fortsätta?" ;;
et* )
filename="Faili nimi?"
fileexist="Fail on juba olemas. Kas kirjutada üle?"
title="Arhivaator"
archive="arhiiv"
compressor="laiend: arhiiv: "
decompressor="Kas sa tahad lahti pakkida: "
valid="võimalik"
notvalid="ei ole võimalik"
pleasewait="Palun oota...."
warning="Hoiatus!"
beuh="Tundmatu vorming."
ncompr=": ei saa lahti pakkida."
compr="lahti pakitud."
rec="edukalt loodud."
overwrite="Järgnevad failid kirjutatakse üle: "
proceed="Kas tahad jätkata?" ;;
it* )
filename="Nome File?"
fileexist="Il file esiste. Sovrascriverlo?"
title="Compressore Decompressore"
archive="archivio"
compressor="estensione: archivio: "
decompressor="Vuoi decomprimere: "
valid="disponibile"
notvalid="non disponivile"
pleasewait="Attendere per favore...."
warning="Attenzione!"
beuh="Formato sconosciuto."
ncompr="non puo' essere decompresso."
compr="e' stato decompresso."
rec="e' stato creato con successo."
overwrite="I seguenti files saranno sovrascritti: "
proceed="Vuoi procedere?" ;;
esac
#
# check the config file
#
if [ ! -f ~/.archiver.conf ]
then echo "" > ~/.archiver.conf
fi
#
# Fonction
#
pleasewait() {
zenity --title "$title" --info --text "$pleasewait" --width 200 --height 25&
dialogpid=$!
}
#
# Fonction decompress
#
tardec() {
fto=`ls -d --color=never \`tar -tf "$1" | sed 's/ /\?/g'\` 2>&1 | grep -v "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
tar -xf "$1" || error=1
else
exit 0
fi
else
pleasewait
tar -xf "$1" || error=1
fi
}
targzdec() {
fto=`ls -d --color=never \`tar -ztf "$1" | sed 's/ /\?/g'\` 2>&1 | grep -v "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
tar -xzf "$1" || error=1
else
exit 0
fi
else
pleasewait
tar -xzf "$1" || error=1
fi
}
tarbzip2dec() {
fto=`ls -d --color=never \`tar -jtf "$1" | sed 's/ /\?/g'\` 2>&1 | grep -v "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
tar -jxf "$1" || error=1
else
exit 0
fi
else
pleasewait
tar -jxf "$1" || error=1
fi
}
gzdec() {
fto=`ls -d --color=never \`echo "$1" | sed 's/.gz//'\` 2>&1 | grep -v -e "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
gunzip -fN "$1" || error=1
else
exit 0
fi
else
pleasewait
gunzip -N "$1" || error=1
fi
}
bzip2dec() {
fto=`ls -d --color=never \`echo "$1" | sed 's/.bz2//'\` 2>&1 | grep -v -e "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text"$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
bunzip2 -fk "$1" || error=1
else
exit 0
fi
else
pleasewait
bunzip2 -k "$1" || error=1
fi
}
zipdec() {
fto=`ls -d --color=never \`zipinfo -1 "$1" | sed 's/ /\?/g'\` 2>&1 | grep -v -e "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
unzip -o "$1" || error=1
else
exit 0
fi
else
pleasewait
unzip -o "$1" || error=1
fi
}
rardec() {
fto=`ls -d --color=never \`rar l "$1" | gawk '/2.0$/{ print $1 }'\` 2>&1 | grep -v -e "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
unrar x -kb -o+ "$1" || error=1
else
exit 0
fi
else
pleasewait
unrar x -kb -o+ "$1" || error=1
fi
}
zdec() {
fto=`ls -d --color=never \`zcat -l "$1" | gawk '/%/{ print $4 }'\` 2>&1 | grep -v -e "^ls"`
if [ ! -z "$fto" ]
then
if zenity --title "$title" --question --text "$overwrite \n$fto\n$proceed" --width 200 --height 25
then
pleasewait
uncompress -f "$1" || error=1
else
exit 0
fi
else
pleasewait
uncompress "$1" || error=1
fi
}
acedec() {
pleasewait
unace x "$1" || error=1
}
#
# test archive or not
#
test_parity=`echo "$1" | grep [.][pP][aA][rR]$`
test_arch1=`file -b "$1" | grep -v 'PARity' | grep 'archive'`
test_arch2=`file -b "$1" | grep 'compress'`
test_arch3=`echo "$1" | grep [.][aA][cC][eE]$`
test_arch="$test_arch1$test_arch2$test_arch3"
if [ ! -z "$test_arch" ]
then
#
# is one archive -> decompress
#
allfiles=`echo $@ | sed 's/\ /\\n/g'`
decompressed=""
error=0
if zenity --title "$title" --question --text "$decompressor \n\n$allfiles ?\n" --width 200 --height 25
then
while [ $# -gt 0 ]
do
if
echo "$1" | grep -i '\.tar\.gz$' 2>&1
then
targzdec "$1"
elif
echo "$1" | grep -i '\.tgz$' 2>&1
then
targzdec "$1"
elif
echo "$1" | grep -i '\.tar$' 2>&1
then
tardec "$1"
elif
echo "$1" | grep -i '\.gz$' 2>&1
then
gzdec "$1"
elif
echo "$1" | grep -i '\.tar\.bz2$' 2>&1
then
tarbzip2dec "$1"
elif
echo "$1" | grep -i '\.bz2$' 2>&1
then
bzip2dec "$1"
elif
echo "$1" | grep -i '\.zip$' 2>&1
then
zipdec "$1"
elif
echo "$1" | grep -i '\.rar$' 2>&1
then
rardec "$1"
elif
echo "$1" | grep -i '\.z$' 2>&1
then
zdec "$1"
elif
echo "$1" | grep -i '\.ace$' 2>&1
then
acedec "$1"
#
# Decompress if file is an archive with no extension and test what is for archive type
#
else
ifnoextension=`file -b "$1" | gawk '/compress/{ print $1 }'`
ifnoextensiona=`file -b "$1" | gawk '/archive/{ print $1 }'`
if [ "$ifnoextension" = "bzip2" ]
then
if tar -tjf "$1" 2>/dev/null
then tarbzip2dec "$1"
else bzip2dec "$1"
fi
elif [ "$ifnoextension" = "gzip" ]
then
if tar -tzf "$1" 2>/dev/null
then targzdec "$1"
else gzdec "$1"
fi
elif [ "$ifnoextension" = 'compress'\''d' ]
then
zdec "$1"
elif [ "$ifnoextensiona" = "GNU" ]
then
tardec "$1"
elif [ "$ifnoextensiona" = "Zip" ]
then
zipdec "$1"
elif [ "$ifnoextensiona" = "RAR" ]
then
rardec "$1"
else
zenity --title "$title" --warning --text "$1 $beuh $noextension" --width 200 --height 25
fi
fi
#
# End script for decompression
#
if [ $error = 0 ]
then
decompressed="$decompressed $1\n"
fi
if [ $error = 1 ]
then
zenity --title "$title" --warning --text "$1 $beuh $noextension" --width 200 --height 25
fi
kill $dialogpid
shift
done
else
exit 0
fi
if [ ! -z "$decompressed" ]
then
zenity --title "$title" --info --text "$decompressed $compr" --width 200 --height 25
fi
#
# parity test or recovery
#
elif [ ! -z "$test_parity" ]
then
parbinary=`which par || which parchive`
testpar=`$parbinary c "$1" 2>&1 | gawk '/NOT FOUND/{ print $1 }'`
testrecover=`$parbinary c "$1" 2>&1 | grep "Too many missing files:"`
if [ -z "$testpar" ]
then zenity --title "$title" --info --text "$parchive$parok" --width 200 --height 25
else
if zenity --title "$title" --question --text "$parchive$testpar$parnotok" --width 200 --height 25
then
if [ -z "$testrecover" ]
then
pleasewait
$parbinary r "$1"
kill $dialogpid
else
zenity --title "$title" --warning --text "$parmiss" --width 200 --height 25
fi
else
exit 0
fi
fi
else
#
# test if programm are availlable
#
listcompprg="tar zip gzip bzip2 rar compress"
for u in $listcompprg
do
if which $u 2>/dev/null
then
eval a$u="$valid"
else
eval a$u="$notvalid"
fi
done
if which par 2> /dev/null || which parchive 2> /dev/null
then
apar="$valid"
else
apar="$notvalid"
fi
#
# is not one archive -> compress
#
if [ $# = 1 ]
then
archive="$1"
fi
if
nom=`zenity --title "$title" --entry --text "$filename" --entry-text "$archive" --width 200 --height 25 2>&1`
then
if [ ! -d "$1" -a $# = 1 ]
then
configsingle=`cat ~/.archiver.conf | gawk '/single/{ print $2 }'`
if [ -z "$configsingle" ]
then
compres=`zenity --title "$title" --list --radiolist --column "$choix" --column "$format" --column "$info" --text "$compressor" FALSE ".zip" "$azip" TRUE ".gz" "$agzip" FALSE ".bz2" "$abzip2" FALSE ".Z" "$acompress" FALSE ".rar" "$arar" FALSE ".par" "$apar" --width 200 --height 220 2>&1`
else
compres="$configsingle"
fi
else
configmulti=`cat ~/.archiver.conf | gawk '/multi/{ print $2}'`
if [ -z "$configmulti" ]
then
compres=`zenity --title "$title" --list --radiolist --column "$choix" --column "$format" --column "$info" TRUE ".tar.gz" "$agzip" FALSE ".tar.bz2" "$abzip2" FALSE ".zip" "$azip" FALSE ".tar" "$atar" FALSE ".rar" "$arar" FALSE ".par" "$apar" --width 200 --height 220 2>&1`
else
compres="$configmulti"
fi

fi
compres=`echo $compres | sed 's/\"//g'`
nom="${nom%$compres}"
if [ ! -z "$compres" ]
then
while [ -f ./"$nom"$compres ]
do
if zenity --title "$title" --question --text "$fileexist" --width 200 --height 25
then
rm -f ./"$nom"$compres
else
if zenity --title "$title" --entry --text "$filename" --entry-text "$archive" --width 200 --height 25
then
continue
else
exit 0
fi
fi
done
else
exit 0
fi
pleasewait
case $compres
in
.tar.gz )
while [ $# -gt 0 ]
do
if [ -f ./"$nom".tar ]
then
tar -rf ./"$nom".tar "$1"
else
tar -cf ./"$nom".tar "$1"
fi
shift
done
gzip -f -9 ./"$nom".tar ;;
.tar.bz2 )
while [ $# -gt 0 ]
do
if [ -f ./"$nom".tar ]
then
tar -rf ./"$nom".tar "$1"
else
tar -cf ./"$nom".tar "$1"
fi
shift
done
bzip2 -f -9 ./"$nom".tar ;;
.zip )
while [ $# -gt 0 ]
do
if [ -f ./"$nom".zip ]
then
zip -r -9 ./"$nom".zip "$1"
else
zip -r -u -9 ./"$nom".zip "$1"
fi
shift
done ;;
.tar )
while [ $# -gt 0 ]
do
if [ -f ./"$nom".tar ]
then
tar -rf ./"$nom".tar "$1"
else
tar -cf ./"$nom".tar "$1"
fi
shift
done ;;
.gz )
while [ $# -gt 0 ]
do
gzip -cN -9 "$1" >> ./"$nom".gz
shift
done ;;
.rar )
while [ $# -gt 0 ]
do
rar a -r0 "$nom".rar "$1"
shift
done ;;
.bz2 )
bzip2 -c -9 "$1" >> ./"$nom".bz2 ;;
.Z )
compress -c "$1" >> ./"$nom".Z ;;
.par )
parbinary=`which par || which parchive`
rm "$nom".p[0-9][0-9]
$parbinary a "$nom".par "$@";;
* )
echo "error" ;;
esac
kill $dialogpid
sleep 1
zenity --title "$title" --info --text "$PWD/$nom$compres $rec" --width 200 --height 25
else
exit 0
fi
fi


Slutligen flytta filen till /home/dittanvändarnamn/.gnome2/nautilus-scripts/
Glöm inte att göra filen körbar, du kan göra detta genom att högerklicka och välja egenskaper.

Andra bloggar om: , , , , , , , , ,

Lyssna på radio i terminalen

Har skrivit ett script som när det körs fungerar som på videon här.

Om du inte kan se filmen ovan så följ min flash 9 guide.

För att fixa att lyssna på radio i terminalen så gör följande. Högerklicka på skrivbordet.
Välj Skapa Dokument - Ny fil.
Döp filen till .radio (punkten gör att filen blir gömd)

Öppna filen genom att dubbelklicka på den och klistra in nedanstående text.


#!/bin/bash
echo ""
echo""
echo " 1 -> NRJ"
echo " 2 -> Studio 107.5"
echo " 3 -> 107.1 Vinyl"
echo " 4 -> The Voice"
echo " 5 -> Mix Megapol Radio City Göteborg"
echo " 6 -> Flashback Radio"
echo " 7 -> Mix MegaPol"
echo " 8 -> Rix FM"
echo " 9 -> P1"
echo " 10 -> P2 Musik"
echo " 11 -> P3"
echo " 12 -> P4 Göteborg"
echo ""
echo "Välj en station"
read radio
if [ "$radio" = "1" ]; then
mplayer http://83.241.238.21/nrj/?MSWMExt=.asf
elif [ "$radio" = "2" ]; then
amarok mms://live.alleredge.com/AE_StudioSE_Mid
elif [ "$radio" = "3" ]; then
mplayer mms://live.alleredge.com/AE_Vinyl_Mid
elif [ "$radio" = "4" ]; then
mplayer mms://live.alleredge.com/AE_TheVoiceSE_Mid
elif [ "$radio" = "5" ]; then
mplayer mms://live.alleredge.com/AE_MixGbg_Mid
elif [ "$radio" = "6" ]; then
mplayer http://theflowmachine.dyndns.org:8000/listen.pls
elif [ "$radio" = "7" ]; then
mplayer mms://live.alleredge.com/AE_MixMegapol_Mid
elif [ "$radio" = "8" ]; then
mplayer http://83.241.238.21/rixfm/?MSWMExt=.asf
elif [ "$radio" = "9" ]; then
mplayer rtsp://sr-rm.qbrick.com/broadcast/cluster/encoder/02038_p1.rm
elif [ "$radio" = "10" ]; then
mplayer rtsp://sr-rm.qbrick.com/broadcast/cluster/encoder/02038_p2musik.rm
elif [ "$radio" = "11" ]; then
mplayer rtsp://sr-rm.qbrick.com/broadcast/cluster/encoder/02038_p3.rm
elif [ "$radio" = "12" ]; then
mplayer http://194.14.241.150/02038_sr-goteborg-high?MSWMExt=.asf
exit
fi


Spara filen och flytta den till din hemmamap. Se till att
du har kör-rättigheter på filen.
För att starta den så öppna ett terminalfönster och skriv in

./.radio

och det ska fungera. Som det syntes i videon så skrev jag
in radio och det fungerade. Det beror på att jag skapat ett
alias för kommandot /home/mittanvändarnamn/.radio
Det innebär att jag ersatt kommandot /home/mittanvändarnamn/.radio med
kommandot radio.
För att ställa in så att du kan skriva alias så gör följande.

sudo gedit .bashrc

Leta upp stycket som visar följande:

#if [ -f ~/.bash_aliases ]; then
# . ~/.bash_aliases
#fi

Ändra detta till följande:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

När detta är gjort spara dokumentet och stäng fönstret.
Skriv nu in följande i kommandofönstret

gedit .bash_aliases

Ett tomt dokument kommer att öppnas och här ska vi nu
skriva in aliaset vi vill använda. Skriv in nedanstående men byt ut
dittanvändarnamn mot ditt namn på datorn.

alias radio='/home/dittanvändarnamn/.radio'

Spara filen och stäng ner terminalfönstret. Starta upp
terminalfönstret igen och skriv in radio.

Andra bloggar om: , , ,

tisdag 30 januari 2007

Konvertera ljudfiler i Ubuntu 6.10

Att konvertera ljudfiler mellan olika format är enkelt att ordna i Ubuntu. Det finns olika metoder för att ordna detta. Jag kommer här visa en metod som bygger på att man använder scripts. Resultatet är väldigt smidigt, bara att högerklicka på en eller flera ljudfiler och välja från högerklicksmenyn: scripts och därefter så väljer du konvertera ljud. Ett popup fönster dyker upp och frågar vilket format du vill konvertera till. Observera att det krävs att du kör Ubuntu och inte Kubuntu elelr Xubuntu för att detta ska fungera.



Om du inte kan se filmen ovan så följ min flash 9 guide.

För att ordna denna funktion så skriv in följande i ett terminalfönster.

sudo apt-get install bash zenity original-awk lame vorbis-tools flac faac faad


När detta är klart så kopiera in nedanstående text till ett tomt dokument och döp filen till Konvertera Ljud. högerklicka sedan på filen, välj egenskaper, välj fliken rättigheter och klicka i "Tillåt körning av filen som program". Slutligen flytta filen till /.gnome2/nautilus-scripts/ foldern i din hemmakatalog. (.gnome2 är en dold katalog, tryck ctrl+h för att se dolda filer när du befinner dig i din hemkatalog).


#!/bin/bash
#
#
# audio convert 0.3.1
#
# a program to convert wav, ogg, mp3, mpc, flac, ape, aac or wma files into
# wav, ogg, mp3, mpc, flac, ape or aac files. with an easy to use interface
# it's actually possible to fill in the tags for a few formats, pass them on
# from format to format, and choose the quality of compression.
#
# copyright (C) 2005 linfasoft
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA
#
# dependencies
# bash
# zenity
# awk
# file >= 4.16
# mplayer -- if you want to decode wma files
# lame
# vorbis tools
# id3tag
# musepack-tools
# flac
# mac
# faac,faad
#
# based on
# wom_audioconverter, by yekcim , http://yeknan.free.fr.
#

set -x

version="0.3.1"
#################################################
# TRADUCTIONS
###### Default = English #####
title="audio convert "$version""
pleasesel="please select at least one file."
noselec=""$title" converts audio files. "$pleasesel""
choix="extension of output file:"
warning="warning"
proceed="already exists. overwrite?"
recur=""$title" can't convert a directory. "$pleasesel""
conversion="converting file:"
ask_artist="enter the artist name:"
ask_album="enter the album name:"
ask_song="enter the song name:"
ask_track="enter the track number:"
ask_quality="select the desired quality:"
ask_compression="select the desired compression level:"
confirmation="do you want to convert"
decoding="decoding file:"
ask_fields="manually enter file metatags"
ask_confirmation_question="get prompted a confirmation question before convertin' each file"
no_codec="you don't have the right codec to decode the selected file. missin' codec:"
not_supported="format not supported"
completed="conversion completed. goodbye!"
ask_to_pass="pass the metatags on to the new files"
options="choose from the followin' options:"
options_conflict="options one and two conflict. please unselect one of them"
case $LANG in
######## Français ########
fr* )
title="audio convert "$version""
pleasesel="Merci de selectionner au moins un fichier."
noselec=""$title" permet de convertir des fichiers audio. "$pleasesel""
choix="Format du fichier de sortie :"
warning="Attention"
proceed="existe deja. Ecraser ?"
recur=""$title" ne permet pas la conversion de dossiers. "$pleasesel""
conversion="Conversion du fichier :"
ask_artist="Nom de l'artiste:"
ask_album="Nom de l'album:"
ask_song="Nom de la chanson:"
ask_track="Numero de la piste:"
ask_quality="Choisir la qualite voulue:"
confirmation="voulez-vous convertir"
decoding="decodage du fichier:"
ask_fields="voulez-vous completer les metatags du fichier?"
ask_confirmation_question="voulez-vous confirmer avant de convertir chaque
fichier?";;
######## italiano #########
it* )
title="audio convert "$version""
pleasesel="per favore, scegli almeno un file."
noselec=""$title" converte i file audio. "$pleasesel""
choix="formato di conversione:"
warning="attenzione"
proceed="esiste! sovrascrivo?"
recur=""$title" non può convertire directory. "$pleasesel""
conversion="sto convertendo il file:"
ask_artist="immetti il nome dell'artista:"
ask_album="immetti il nome dell'album:"
ask_song="immetti il nome della canzone:"
ask_track="immetti il numero della traccia:"
ask_quality="scegli la qualità del file:"
ask_compression="scegli il livello di compressione:"
confirmation="vuoi convertire"
decoding="sto decodificando il file:"
ask_fields="completare manualmente le metatags"
ask_confirmation_question="chiedi una conferma per ogni file da convertire"
no_codec="non hai il codec corretto per decodificare il file selezionato. codec mancante:"
not_supported="formato non supportato"
completed="conversione completata. arrivederci!"
ask_to_pass="copiare le metatags nel nuovo file"
options="scegli fra le seguenti opzioni:"
options_conflict="le opzioni uno e due sono in conflitto. per favore deselezionane una";;
###### Brazilian Portuguese ######
pt-br* )
title="audio convert "$version""
pleasesel="por favor, selecione pelo menos um arquivo."
noselec=""$title" converter arquivos de audio. "$pleasesel""
choix="extensão do arquivo de saída:"
warning="atenção"
proceed="já existe! sobrescrever?"
recur=""$title" não e possível converter pasta. "$pleasesel""
conversion="convertendo arquivo:"
ask_artist="digite o nome do artista:"
ask_album="digite o nome do album:"
ask_song="digite o nome da música:"
ask_track="digite o número da faixa:"
ask_quality="selecione a qualidade desejada:"
confirmation="você quer converter"
decoding="decodificando arquivo:";;
######## dutch ########
nl* )
title="audio convert "$version""
pleasesel="selecteer minimaal 1 bestand."
noselec=""$title" converteer audio bestanden. "$pleasesel""
choix="extensie van uitvoerbestanden:"
warning="waarschuwing"
proceed="bestaat al. overschrijven?"
recur=""$title" kan geen directory converteren. "$pleasesel""
conversion="converteren van bestand:"
ask_artist="voer naam van artiest in:"
ask_album="voer naam van album in:"
ask_song="voer naam van nummer in:"
ask_track="voer volgnummer in:"
ask_quality="selecteer de gewenste kwaliteit:"
confirmation="wil je converteren"
decoding="decoderen bestand:"
ask_fields="Wil je metatags aan de bestanden toevoegen?"
ask_confirmation_question="Wil je bevestiging voor het converteren van elk bestand?"
no_codec="Je hebt niet de juiste codec voor het converteren van dit bestand. Missende codec:"
not_supported="Formaat niet ondersteund"
completed="Conversie compleet."
ask_to_pass="Wil je de metatags toevoegen aan de nieuwe bestanden?";;
######## german ########
de* )
title="Audio konvertier Skript "$version""
pleasesel="Bitte wählen Sie mindestens eine Datei."
noselec=""$title" verarbeitet Dateien. "$pleasesel""
choix="Erweiterung der Ausgabedatei:"
warning="Warnung"
proceed="existiert bereits. Überschreiben?"
recur=""$title" kann kein Verzeichnis konvertieren. "$pleasesel""
conversion="Konvertierung der Datei:"
ask_artist="Künstlername:"
ask_album="Albumname:"
ask_song="Songname:"
ask_track="Titelnummer:"
ask_quality="Wählen Sie die gewuenschte Qualitaet:"
confirmation="Wollen Sie jetzt konvertieren?"
decoding="dekodiere Datei:"
ask_compression="gib die gewünschte Komprimierungsstaerke an:"
ask_confirmation_question="willst Du für jede Datei vor der Konvertierung eine Bestätigungsfrage?"
ask_fields="Du willst keine metatags angeben?"
completed="Konvertierung abgeschlossen. Tschüss"
no_codec="Du hast keinen passenden codec um die Datei zu dekodieren"
not_supported="Format wird nicht unterstützt";;
######## Spanish(Español - Castellano) ########
es* )
title="audio convert "$version""
pleasesel="Seleccione al menos un archivo."
noselec=""$title" - Convierte archivos de audio."$pleasesel""
choix="Formato del archivo resultante:"
warning="Atención"
proceed="Ya existe, sobreescribir?"
recur=""$title" No se puede convertir el directorio. "$pleasesel""
conversion="Convirtiendo archivo:"
ask_artist="Nombre del artista:"
ask_album="Nombre del álbum:"
ask_song="Nombre de la canción:"
ask_track="Número de la pista:"
ask_quality="Seleccione la calidad deseada:"
confirmation="Convertir?"
decoding="Decodificando archivo:"
ask_fields="Editar las \"metatags\" del archivo?"
ask_confirmation_question="Desea una pregunta de confirmación antes de convertir cada archivo?"
ask_compression="seleccione el nivel de compresión deseable:"
completed="conversión completo. Adiós!"
no_codec="No tenrs el codec correcto para descodificar el elijido archivo. Falta:"
not_supported="Format no es soportado";;
######## polish ########
pl* )
title="konwersja audio "$version""
pleasesel="wybierz co najmniej jeden plik."
noselec="konwersja pliku "$title". "$pleasesel""
choix="rozszerzenie pliku wynikowego:"
warning="ostrzeżenie"
proceed="już istnieje. zastÄ~EpiÄ~G ?"
recur=""$title" nie można konwertowaÄ~G katalogów. "$pleasesel""
conversion="konwersja pliku:"
ask_artist="podaj nazwÄ~Y wykonawcy:"
ask_album="podaj nazwÄ~Y albumu:"
ask_song="podaj nazwÄ~Y utworu:"
ask_track="podaj numer Å~[cieżki:"
ask_quality="wybierz wymagany poziom jakoÅ~[ci:"
ask_compression="wybierz wymagany poziom kompresji:"
confirmation="chcesz użyÄ~G konwersji"
decoding="dekodowany plik:"
ask_fields="chcesz umieÅ~[ciÄ~G tagi ?"
ask_confirmation_question="chcesz używaÄ~G potwierdzenia przed każdÄ~E konwersjÄ~E ?"
no_codec="nie posiadasz odpowiedniego kodeka dla wykonania wymaganej operacji. missin' codec:"
not_supported="brak obsÅ~Bugi wskazanego formatu"
completed="konwersjÄ~Y zakoÅ~Dczono. Pa, pa!"
ask_to_pass="chcesz eksportowaÄ~G metatagi do innych plików?"
esac

#################################################
# FONCTIONS
get_field_names ()
{
artist_name=`zenity --entry --title="$title" --text="$ask_artist" --entry-text="$artist_name"`
album_name=`zenity --entry --title="$title" --text="$ask_album" --entry-text="$album_name"`
song_name=`zenity --entry --title="$title" --text="$ask_song"`
track_number=`zenity --entry --title="$title" --text="$ask_track"`
}

get_ogg_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_quality" -- "-1" FALSE "0" FALSE "1" FALSE "2" FALSE "3" FALSE "4" FALSE "5" FALSE "6" TRUE "7" FALSE "8" FALSE "9" FALSE "10"
}

get_mp3_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_quality" FALSE "medium" FALSE "standard" TRUE "extreme" FALSE "insane"
}

get_mpc_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_quality" FALSE "thumb" FALSE "radio" TRUE "standard" FALSE "xtreme"
}

get_flac_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_compression" FALSE "0" FALSE "1" FALSE "2" FALSE "3" FALSE "4" FALSE "5" FALSE "6" FALSE "7" TRUE "8"
}

get_mac_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_compression" FALSE "1000" FALSE "2000" TRUE "3000" FALSE "4000" FALSE "5000"
}

get_aac_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_compression" FALSE "100" FALSE "200" TRUE "300" FALSE "400" FALSE "500"
}

get_quality ()
{
if [ "$1" == "mp3" ]
then
quality="$(get_mp3_quality)"
fi
if [ "$1" == "ogg" ]
then
quality="$(get_ogg_quality)"
fi
if [ "$1" == "mpc" ]
then
quality="$(get_mpc_quality)"
fi
if [ "$1" == "flac" ]
then
quality="$(get_flac_quality)"
fi
if [ "$1" == "ape" ]
then
quality="$(get_mac_quality)"
fi
if [ "$1" == "aac" ]
then
quality="$(get_aac_quality)"
fi
}

get_metatags ()
{
if (is_mp3 "$1")
then
artist_name=`id3info "$1" | awk '/TPE1/ { print substr($0, match($0, /:/) + 2 ) }'`
album_name=`id3info "$1" | awk '/TALB/ { print substr($0, match($0, /:/) + 2 ) }'`
song_name=`id3info "$1" | awk '/TIT2/ { print substr($0, match($0, /:/) + 2 ) }'`
track_number=`id3info "$1" | awk '/TRCK/ { print substr($0, match($0, /:/) + 2 ) }'`
fi
if (is_ogg "$1")
then
artist_name=`ogginfo "$1" | grep artist | cut -d \= -f 2`
album_name=`ogginfo "$1" | grep album | cut -d \= -f 2`
song_name=`ogginfo "$1" | grep title | cut -d \= -f 2`
track_number=`ogginfo "$1" | grep tracknumber | cut -d \= -f 2`
fi
if (is_flac "$1")
then
artist_name=`metaflac --show-tag=artist "$1" | cut -d \= -f 2`
album_name=`metaflac --show-tag=album "$1" | cut -d \= -f 2`
song_name=`metaflac --show-tag=title "$1" | cut -d \= -f 2`
track_number=`metaflac --show-tag=tracknumber "$1" | cut -d \= -f 2`
fi
if (is_aac "$1")
then
artist_name=`faad -i "$1" 2>&1 | awk '/artist/ { print substr($0, match($0, /:/) + 2 ) }'`
album_name=`faad -i "$1" 2>&1 | awk '/album/ { print substr($0, match($0, /:/) + 2 ) }'`
song_name=`faad -i "$1" 2>&1 | awk '/title/ { print substr($0, match($0, /:/) + 2 ) }'`
track_number=`faad -i "$1" 2>&1 | awk '/track/ { print substr($0, match($0, /:/) + 2 ) }'`
fi
}

mp3_parse_fields ()
{
if [ "$artist_name" ]
then
mp3_fields=(-a"$artist_name")
fi
if [ "$album_name" ]
then
mp3_fields=("${mp3_fields[@]}" -A"$album_name")
fi
if [ "$song_name" ]
then
mp3_fields=("${mp3_fields[@]}" -s"$song_name")
fi
if [ "$track_number" ]
then
mp3_fields=("${mp3_fields[@]}" -t"$track_number")
fi
}

ogg_parse_fields ()
{
if [ "$artist_name" ]
then
ogg_fields=(-a "$artist_name")
fi
if [ "$album_name" ]
then
ogg_fields=("${ogg_fields[@]}" -l "$album_name")
fi
if [ "$song_name" ]
then
ogg_fields=("${ogg_fields[@]}" -t "$song_name")
fi
if [ "$track_number" ]
then
ogg_fields=("${ogg_fields[@]}" -N "$track_number")
fi
}

flac_set_tags ()
{
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
if [ "$artist_name" ]
then
metaflac --set-tag=ARTIST="$artist_name" "$1"
fi
if [ "$album_name" ]
then
metaflac --set-tag=ALBUM="$album_name" "$1"
fi
if [ "$song_name" ]
then
metaflac --set-tag=TITLE="$song_name" "$1"
fi
if [ "$track_number" ]
then
metaflac --set-tag=TRACKNUMBER="$track_number" "$1"
fi
fi
}

aac_parse_fields ()
{
if [ "$artist_name" ]
then
aac_fields=(--artist "$artist_name")
fi
if [ "$album_name" ]
then
aac_fields=("${aac_fields[@]}" --album "$album_name")
fi
if [ "$song_name" ]
then
aac_fields=("${aac_fields[@]}" --title "$song_name")
fi
if [ "$track_number" ]
then
aac_fields=("${aac_fields[@]}" --track "$track_number")
fi
}

is_mp3 ()
{
file -b "$1" | grep 'MP3' || echo $1 | grep -i '\.mp3$'
}

is_ogg()
{
file -b "$1" | grep 'Vorbis' || echo $1 | grep -i '\.ogg$'
}

is_mpc()
{
file -b "$1" | grep 'Musepack' || echo $1 | grep -i '\.mpc$'
}

is_flac()
{
file -b "$1" | grep 'FLAC' || echo $1 | grep -i '\.flac$'
}

is_mac()
{
file -b "$1" | grep 'data' && echo $1 | grep -i '\.ape$'
}

is_aac()
{
file -b "$1" | grep 'AAC' || echo $1 | grep -i '\.aac$'
}

is_wav()
{
file -b "$1" | grep 'WAVE' || echo $1 | grep -i '\.wav$'
}

is_wma()
{
file -b "$1" | grep 'Microsoft' || echo $1 | grep -i '\.wma$'
}

mp3_encode ()
{
lame -m auto --preset $quality "$2" "$3" 2>&1 | awk -vRS='\r' '(NR>3){gsub(/[()%|]/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

ogg_encode ()
{
if [ $fields -eq 0 ] || [ $pass_metatags -eq 0 ]
then
ogg_parse_fields
oggenc "$2" "${ogg_fields[@]}" -q $quality -o "$3" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
else
oggenc "$2" -q $quality -o "$3" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
fi
}

mpc_encode ()
{
mppenc --$quality "$2" "$3" 2>&1 | awk -vRS='\r' '!/^$/{if (NR>5) print $1; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

flac_encode ()
{
flac --compression-level-$quality "$2" -o "$3" 2>&1 | awk -vRS='\r' -F':' '!/wrote/{gsub(/ /,"");if(NR>1)print $2; fflush();}' | awk -F'%' '{print $1; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

mac_encode ()
{
mac "$2" "$3" -c$quality 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

aac_encode ()
{
if [ $fields -eq 0 ] || [ $pass_metatags -eq 0 ]
then
aac_parse_fields
faac -w "${aac_fields[@]}" -q $quality -o "$3" "$2" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
else
faac -q $quality -o "$3" "$2" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
fi
}

mp3_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
lame --decode "$1" "$temp_file" 2>&1 | awk -vRS='\r' -F'[ /]+' '(NR>2){if((100*$2/$3)<=100)print 100*$2/$3; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

ogg_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
oggdec "$1" -o "$temp_file" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

mpc_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
mppdec "$1" "$temp_file" 2>&1 | awk -vRS='\r' -F'[ (]+' '!/s/{gsub(/(%)/," ");if(NR>5)print $5; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

flac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
flac -d "$1" -o "$temp_file" 2>&1 | awk -vRS='\r' -F':' '!/done/{gsub(/ /,"");gsub(/% complete/,"");if(NR>1)print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

mac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
mac "$1" "$temp_file" -d 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

aac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
faad -o "$temp_file" "$1" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $1; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

wma_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
mplayer -ao pcm:file="$temp_file" "$1" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print 100-$5; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

ask_for_fields ()
{
#zenity --question --text="$ask_fields"
#fields=$?
questions=("${questions[@]}" FALSE "$ask_fields")
}

ask_for_confirmation ()
{
#zenity --question --text="$ask_confirmation_question"
#confirmation_question=$?
questions=("${questions[@]}" FALSE "$ask_confirmation_question")
}

ask_to_pass_metatags ()
{
#zenity --question --text="$ask_to_pass"
#pass_metatags=$?
questions=(FALSE "$ask_to_pass")
}

question_list ()
{
if [ "$formatout" == "mp3" ] || [ "$formatout" == "ogg" ] || [ "$formatout" == "flac" ] || \
[ "$formatout" == "aac" ]
then
#pass_metatags=1

if (is_mp3 "$1") || (is_ogg "$1") || (is_flac "$1") || (is_aac "$1")
then
ask_to_pass_metatags # ask if user wants metatags to be passed on
fi

ask_for_fields # ask if user wants to edit metatags
fi
if [ "$2" -gt 1 ]
then
ask_for_confirmation # ask if user wants a confirmation question for each file
#else
# confirmation_question=1
fi
}

ask_questions ()
{
repeat=1

while [ $repeat -eq 1 ]
do
answers=`zenity --list --checklist --column "" --column "$options" "${questions[@]}"`

if (echo "$answers" | grep -i "$ask_to_pass") && \
(echo "$answers" | grep -i "$ask_fields")
then
zenity --error --title="$warning" --text="$options_conflict"
repeat=1
continue
fi

repeat=0
done
}

parse_questions ()
{
if (echo "$answers" | grep -i "$ask_to_pass")
then
pass_metatags=0
else
pass_metatags=1
fi

if (echo "$answers" | grep -i "$ask_fields")
then
fields=0
else
fields=1
fi

if (echo "$answers" | grep -i "$ask_confirmation_question")
then
confirmation_question=0
else
confirmation_question=1
fi
}

completed_message ()
{
zenity --info --title "$title" --text="$completed"
}

caf () # fonction "convert audio file"
{
### Format in_file = mp3 ###
if (is_mp3 "$1")
then
if [ "$3" = "ogg" ]
then # mp3-2-ogg
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mp3_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # mp3-2-mpc
mp3_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # mp3-2-flac
mp3_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # mp3-2-ape
mp3_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # mp3-2-aac
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mp3_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # mp3-2-wav
mp3_decode "$1" "$conversion"
fi
break
fi
### Format in_file = ogg ###
if (is_ogg "$1")
then
if [ "$3" = "mp3" ]
then # ogg-2-mp3
ogg_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
fi
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # ogg-2-mpc
ogg_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # ogg-2-flac
ogg_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # ogg-2-ape
ogg_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # ogg-2-aac
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
ogg_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # ogg-2-wav
ogg_decode "$1" "$conversion"
fi
break
fi
### Format in_file = mpc ###
if (is_mpc "$1")
then
if [ "$3" = "mp3" ]
then # mpc-2-mp3
mpc_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
mpc_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # mpc-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mpc_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # mpc-2-flac
mpc_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # mpc-2-ape
mpc_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # mpc-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mpc_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # mpc-2-wav
mpc_decode "$1" "$conversion"
fi
break
fi
### Format in_file = flac ###
if (is_flac "$1")
then
if [ "$3" = "mp3" ]
then # flac-2-mp3
flac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
fi
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # flac-2-ogg
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # flac-2-mpc
flac_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # flac-2-ape
flac_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # flac-2-aac
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # flac-2-wav
flac_decode "$1" "$conversion"
fi
break
fi
### Format in_file = ape ###
if (is_mac "$1")
then
if [ "$3" = "mp3" ]
then # ape-2-mp3
mac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
mac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # ape-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mac_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # ape-2-mpc
mac_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then #ape-2-flac
mac_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # ape-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mac_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then #ape-2-wav
mac_decode "$1" "$conversion"
fi
break
fi
### Format in_file = aac ###
if (is_aac "$1")
then
if [ "$3" = "mp3" ]
then # aac-2-mp3
aac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
fi
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # aac-2-ogg
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
aac_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # aac-2-mpc
aac_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # aac-2-flac
aac_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # aac-2-ape
aac_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # aac-2-wav
aac_decode "$1" "$conversion"
fi
break
fi
### Format in_file = wav ###
if (is_wav "$1")
then
if [ "$3" = "mp3" ]
then # wav-2-mp3
mp3_encode "$1" "$1" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
break
fi
if [ "$3" = "ogg" ]
then # wav-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
ogg_encode "$1" "$1" "$2"
break
fi
if [ "$3" = "mpc" ]
then # wav-2-mpc
mpc_encode "$1" "$1" "$2"
fi
if [ "$3" = "flac" ]
then # wav-2-flac
flac_encode "$1" "$1" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
fi
if [ "$3" = "aac" ]
then # wav-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
aac_encode "$1" "$1" "$2"
break
fi
if [ "$3" = "ape" ]
then # wav-2-ape
mac_encode "$1" "$1" "$2"
fi
break
fi
### Format in_file = wma ###
if (is_wma "$1")
then
if [ "$3" = "mp3" ]
then # wma-2-mp3
wma_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
rm -f "$temp_file"
break
fi

if [ "$3" = "wav" ]
then # wma-2-wav
wma_decode "$1" "$conversion"
fi

if [ "$3" = "ogg" ]
then # wma-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
wma_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # wma-2-mpc
wma_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # wma-2-flac
wma_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # wma-2-ape
wma_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # wma-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
wma_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
break
fi
}

#################################################
# PROGRAMME
#### Pas de fichiers sélectionné ###
if [ $# -eq 0 ]; then
zenity --error --title="$warning" --text="$noselec"
exit 1
fi
######## make a list of available formats, and check if we can decode the file #######
if !(is_mp3 "$1") && !(is_ogg "$1") && !(is_mpc "$1") && !(is_flac "$1") && !(is_mac "$1") && \
!(is_aac "$1") && !(is_wav "$1") && !(is_wma "$1")
then
zenity --error --title="$warning" --text="$not_supported"
exit 1
fi
depformat=""
if which lame 2>/dev/null
then
if !(is_mp3 "$1") # if we have lame, and the file to convert is not an mp3,
then # add mp3 to the list of formats to convert to
depformat="mp3"
fi
else # if we don't have lame, check if the file to convert is an mp3
if (is_mp3 "$1")
then
zenity --error --title="$warning" --text="$no_codec lame"
exit 1
fi
fi
if which oggenc 2>/dev/null
then
if !(is_ogg "$1") # if we have vorbis-tools, and the file to convert is not an
then # ogg, add ogg to the list of formats to convert to
depformat="$depformat ogg"
fi
else # if we don't have vorbis-tools, check if the file to convert is an ogg
if (is_ogg "$1")
then
zenity --error --title="$warning" --text="$no_codec vorbis-tools"
exit 1
fi
fi
if which mppenc 2>/dev/null
then
if !(is_mpc "$1") # if we have musepack-tools, and the file to convert is not
then # an mpc, add mpc to the list of formats to convert to
depformat="$depformat mpc"
fi
fi
if !(which mppdec 2>/dev/null)
then # if we don't have musepack-tools, check if the file to convert is an mpc
if (is_mpc "$1")
then
zenity --error --title="$warning" --text="$no_codec musepack-tools"
exit 1
fi
fi
if which flac 2>/dev/null
then
if !(is_flac "$1") # if we have flac, and the file to convert is not a
then # flac, add flac to the list of formats to convert to
depformat="$depformat flac"
fi
else # if we don't have flac, check if the file to convert is a flac
if (is_flac "$1")
then
zenity --error --title="$warning" --text="$no_codec flac"
exit 1
fi
fi
if which mac 2>/dev/null
then
if !(is_mac "$1") # if we have mac, and the file to convert is not an ape,
then # add ape to the list of formats to convert to
depformat="$depformat ape"
fi
else # if we don't have mac, check if the file to convert is an ape
if (is_mac "$1")
then
zenity --error --title="$warning" --text="$no_codec mac"
exit 1
fi
fi
if which faac 2>/dev/null
then
if !(is_aac "$1") # if we have faac, and the file to convert to is not an aac,
then # add aac to the list of formats to convert to
depformat="$depformat aac"
fi
fi
if !(which faad 2>/dev/null) # if we don't have faad, check if the file to convert to is an aac
then
if (is_aac "$1")
then
zenity --error --title="$warning" --text="$no_codec faad"
exit 1
fi
fi
if !(which mplayer 2>/dev/null) # if we don't have mplayer, check if the file to convert is a wma
then
if (is_wma "$1")
then
zenity --error --title="$warning" --text="$no_codec mplayer"
exit 1
fi
fi
if !(is_wav "$1") # if the file to convert is not a wav, add wav to the list of
then # formats to convert to
depformat="$depformat wav"
fi
######## Fenêtre principale ########
while [ ! "$formatout" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix
do


formatout=`zenity --title "$title" --list --column="Format" $depformat --text "$choix"`
###### Choix -> Sortie boucle ######
if [ $? != 0 ]; then
exit 1
fi
[ $? -ne 0 ] && exit 2 # Annulation
done
########## Conversion ############
#let "nbfiles = $#"
#compteur=0;
question_list "$1" "$#" # prepare all of the various conversion questions
ask_questions # ask all of the various conversion questions
parse_questions # parse all of the various conversion questions
if [ "$formatout" != "wav" ]
then
get_quality "$formatout" # ask for quality of compression
fi
file_number=$#
(while [ $# -gt 0 ]; do
for i in $formatout; do
in_file=$1
out_file=`echo "$in_file" | sed 's/\.\w*$/'.$formatout'/'`
#echo "# $conversion $in_file"
i=`echo $i | sed 's/"//g'`
while `true`; do
########## Le fichier de sortie existe déjÃ| , l'écraser ? ##########
if ls "$out_file" | grep -v "^ls"
then
if !(`gdialog --title "$warning" --yesno "$out_file $proceed" 200 100`)
then
break
fi
fi
if [ "$file_number" -gt 1 ] && [ "$confirmation_question" -eq 0 ]
then
zenity --question --text="$confirmation $in_file in $out_file?"
if [ $? -eq 1 ]
then
break
fi
fi
caf "$in_file" "$out_file" "$formatout" # Lancer la conversion
break
shift
done
######### Progression ########
# let "compteur += 1"
# let "progress = compteur*100/nbfiles"
# echo $progress
done
shift
done
)

completed_message








/home/dittanvändarnamn/.gnome2/nautilus-scripts/

När detta är klart så är det bara att köra.



Andra bloggar om: , , , , , , , , , , ,