Scripts para Nautilus

Iniciado por luiz_zwisch, 01 de Setembro de 2007, 13:24

tópico anterior - próximo tópico

luiz_zwisch

Olá!

Nos últimos dias integrei ao Nautilus diversos scripts que eu tinha. Decidi dividir com vocês os scripts que podem ser úteis. Outros não teriam tanta utilidade e mais alguns irei disponibilizar assim que estiverem prontos.

Quem tiver interesse pode copiar, repassar e usar da maneira que bem entender, só peço que carregue a autoria dos scripts. Qualquer sugestão, dúvida ou correção para os scripts será bem-vinda.

Até mais!

Scripts para Nautilus

A idéia de se usar esses scripts é facilitar diversas operações que executamos com freqüência. Esses scripts são executados clicando com o botão direito, indo em Scripts e selecionando o script desejado.

Para fazer o script funcionar, basta salvar o código em um arquivo dentro do diretório ~/.gnome2/nautilus-scripts e usar o comando:
chmod +x arquivo
para torná-lo executável. Colocarei cada script em uma mensagem, sugerindo em negrito um nome para salvar o arquivo, mas você pode colocar o nome que desejar. Vamos a eles!

luiz_zwisch

Compilar usando GCC

Esse script compila um arquivo .c e cria um executável com o mesmo nome do arquivo sem a extensão. Para executá-lo, clique com o botão direito do mouse no arquivo e selecione o script.


#!/bin/sh
####################################################
#Compila um arquivo usando GCC
#Autor: Luiz Jovelli
####################################################

file=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
out_file=`echo "$(basename ${file} .c)"`
echo $(gcc $file -o $out_file -lm 2>&1) 2>&1 > error.log
arcsize=$(du error.log --apparent-size| awk '{print $1}')
if [ $arcsize -gt 1 ]; then
zenity --title "Erro" --text-info --filename error.log
else
zenity --info --text "Arquivo compilado com sucesso. Arquivo "$out_file" criado"
fi
rm error.log

luiz_zwisch

TeX2PDF

Compila um arquivo .tex, já convertendo seu DVI para o formato PDF. Execute-o da mesma forma que o script anterior.


#!/bin/sh
####################################################
#Compila um arquivo TeX e exporta para PDF
#Autor: Luiz Jovelli
####################################################

file=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
out_file=`echo "$(basename ${file} .tex).dvi"`
log=`echo "$(basename ${file} .tex).log"`
pdf=`echo "$(basename ${file} .tex).pdf"`
latex -halt-on-error $file
if [ $? -eq 1 ]; then
zenity --error --text "Erro ao compilar arquivo. Para mais informações, veja o arquivo "$log
exit
fi
dvipdfm $out_file
if [ $? -eq 0 ]; then
zenity --info --text "Arquivo "$pdf" criado com sucesso."
else
zenity --error --text "Erro ao criar arquivo "$pdf"."
exit
fi

luiz_zwisch

TeX2PS

Script com a mesma função do anterior, mas exportando o DVI para o formato Postscript.


#!/bin/sh
####################################################
#Compila um arquivo TeX e exporta para PS
#Autor: Luiz Jovelli
####################################################
file=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
out_file=`echo "$(basename ${file} .tex).dvi"`
log=`echo "$(basename ${file} .tex).log"`
ps=`echo "$(basename ${file} .tex).ps"`
latex -halt-on-error $file
if [ $? -eq 1 ]; then
zenity --error --text "Erro ao compilar arquivo. Para mais informações, veja o arquivo "$log
exit
fi
dvips $out_file
if [ $? -eq 0 ]; then
zenity --info --text "Arquivo "$ps" criado com sucesso."
else
zenity --error --text "Erro ao criar arquivo "$ps"."
exit
fi

_Luks


luiz_zwisch

#5
Frame2DivX

Converte todas as imagens do formato definido para um filme. Esse script deve ser executado dentro da pasta em que todas as imagens do mesmo formato serão convertidas. Para a conversão ser correta, sugiro que todas as imagens tenham um nome base, seguido de um número e depois sua extensão.

Ex:
frame.000000.png
frame.000001.png
frame.000002.png
...

Obs: Para o script funcionar você deve ter o mencoder instalado.


#!/bin/sh
###################################################################
# Scrip para converter as imagens de um diretório em um filme, usando mencoder
# Autor: Luiz Jovelli 
###################################################################

format=`zenity   --title  "Selecionar formato da imagem" --entry --text "Digite o formato das imagens." --entry-text "png"`
if [ $? -eq 1 ]; then
exit 0
fi

fps=`zenity   --title  "FPS" --entry --text "Entre com a quantidade de quadros por segundo desejada." --entry-text=25`
if [ $? -eq 1 ]; then
exit 0
fi

codec=`zenity  --list  --text "Selecione o codec:" --radiolist  --column " " --column "Codec" TRUE msmpeg4v2 FALSE mpeg4`
if [ $? -eq 1 ]; then
exit 0
fi

movie_file=`zenity   --title  "Selecionar nome do filme" --entry --text "Digite o nome do filme a ser criado."`
if [ $? -eq 1 ]; then
exit 0
fi

if [ -z $movie_file ]
then
zenity --error --text "Nome do arquivo Está vazio."
exit 0
fi

rm -f divx2pass.log frameno.avi

if [ $codec = "mpeg4" ]
then
opt="vbitrate=2160000:mbd=2:keyint=132:v4mv:vqmin=3:vlelim=-4:vcelim=7:lumi_mask=0.07:dark_mask=0.10:naq:vqcomp=0.7:vqblur=0.2:mpeg_quant"
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:$opt -mf type=$format:fps=$fps -nosound -o /dev/null mf://\*.$format | zenity --title "Criando filme usando DivX 4/5" --text "Primeira passagem. Aguarde..." --progress --auto-close --pulsate
if [ $? -eq 1 ]; then
exit 0
fi
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:$opt -mf type=$format:fps=$fps -nosound -o $movie_file.avi mf://\*.$format | zenity --title "Criando filme usando DivX 4/5" --text "Segunda passagem. Aguarde..." --progress --auto-close --pulsate
if [ $? -eq 1 ]; then
exit 0
fi
else
opt="vbitrate=2160000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3"
mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=1:$opt -mf type=$format:fps=$fps -nosound -o /dev/null mf://\*.$format | zenity --title "Criando filme usando Microsoft MPEG4 V2" --text "Primeira passagem. Aguarde..." --progress --auto-close --pulsate
if [ $? -eq 1 ]; then
exit 0
fi
mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=2:$opt -mf type=$format:fps=$fps -nosound -o $movie_file.avi mf://\*.$format | zenity --title "Criando filme usando Microsoft MPEG4 V2" --text "Segunda passagem. Aguarde..." --progress --auto-close --pulsate
if [ $? -eq 1 ]; then
exit 0
fi
fi

zenity --info --text "Codificação completada."

luiz_zwisch

YouTubeDownloader

Script para baixar um vídeo do YouTube no diretório em que for executado e salvar no formato FLV.


#!/bin/sh
###################################################################
# Nautilus' script para baixar vídeos do YouTube através da URL do vídeo
# Autor: Luiz Jovelli
# Referências: http://www.vivaolinux.com.br/scripts/verScript.php?codigo=2928
#                     http://jetervaz.wordpress.com/2007/07/26/wget-zenity-progress/
###################################################################
function progress
{
file=$1
[ -f $file ] || { echo "Arquivo $file nao encontrado!";
exit
}
dwnld_file=`cat $file | grep '=>' | tail -n1 | cut -d '>' -f2`
info_file=`cat $file | grep 'Tamanho'`
while true;
do
    step=`tail -n2 $file | grep % | rev | sed 's/.*%//' | cut -c -2 | rev`
    echo $step;

cat $file | grep '100%' | sed 's/[^100]//g';
   
sleep 0.5;
   
done |zenity --title "Download" --text "Baixando arquivo$dwnld_file...\n`echo $(cat $file | grep 'Tamanho')`" --progress --auto-close

if [ $? -eq 1 ]; then
kill -9 $pid
rm $movie_file.flv wget-log
zenity --title "Informação" --text "Download cancelado." --info
exit
fi
}

url=`zenity   --title  "URL do vídeo" --entry --text "Cole a url do vídeo."`
if [ $? -eq 1 ]; then
exit
elif [ -z $url ]
then
zenity --error --text "Nome do arquivo Está vazio."
exit
fi

movie_file=`zenity   --title  "Selecionar nome do filme" --entry --text "Digite o nome do filme a ser criado sem extensão."`
if [ $? -eq 1 ]; then
exit
elif [ -z $movie_file ]
then
zenity --error --text "Nome do arquivo Está vazio."
exit
fi

rm wget-log
wget -O /tmp/tmp_yt "$url"

if [ $? -eq 1 ]; then
zenity --error --text "Erro ao baixar arquivo. Verifique sua conexão e o endereço do vídeo."
exit
fi

info=`cat /tmp/tmp_yt | grep -oE 'video_id=.*&t=[^\"&]*' | head -1`
rm /tmp/tmp_yt

pid=`wget -bO $movie_file.flv "http://www.youtube.com/get_video?$info" | grep -e 'background' -e 'pid'| awk '{print $5}'|rev|cut -c 2-|rev`

sleep 4
progress "wget-log"
zenity --info --title "Download completado!" --text "Arquivo $movie_file.flv baixado com sucesso!"

rm wget-log

luiz_zwisch

flv2avi

Converte o arquivo FLV (Flash Video) selecionado para DivX, usando o mencoder.


#!/bin/sh
####################################################
#Converte o arquivo .flv selecionado para DivX usando mencoder
#Autor: Luiz
####################################################

file=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
out_file=`echo "$(basename ${file} .flv).avi"`

if file $file | grep -q "Macromedia Flash Video"; then

rm -f divx2pass.log frameno.avi
opt="vbitrate=2000:mbd=2:keyint=132:v4mv:vqmin=3:lumi_mask=0.07:dark_mask=0.2:scplx_mask=0.1:tcplx_mask=0.1:naq"

mencoder -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:$opt -oac mp3lame -lameopts fast:preset=standard -o /dev/null $file | zenity --title "Convertendo..." --text "Primeira passagem. Aguarde..." --progress --auto-close --pulsate
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:$opt -oac mp3lame -lameopts fast:preset=standard -o $out_file $file | zenity --title "Convertendo..." --text "Segunda passagem. Aguarde..." --progress --auto-close --pulsate
rm -f divx2pass.log frameno.avi
else
zenity --error --text "Arquivo não é um vídeo em Flash."
fi


Até agora são esses. Quando tiver mais volto a postar e, quando tiver uma quantidade maior, coloco tudo em um pacote e passo o link.

Espero que gostem!

Até mais!

Mythus

Muito bons esses scripts já até usei esse do you tube :D só não entendi como eles são ativados pelo nautilus. Eu os rodei via terminal.
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

luiz_zwisch

Mythus,

Obrigado interesse nos scripts. Para ativar o uso no nautilus, basta você salvar na pasta .gnome2/nautilus-scripts, que fica na sua home. Depois dê a permissão de execução com chmod +x.

Para executá-los é só clicar com o botão direito do mouse no desktop ou no diretório de trabalho, ou então em cima do arquivo a ser compilado/convertido. Ao clicar com o botão direito aparecerá a opção Scripts e dentro estarão os scripts disponíveis para execução.

Abraço!

maudy

Citação de: luiz_zwisch online 01 de Setembro de 2007, 13:47
YouTubeDownloader

Script para baixar um vídeo do YouTube no diretório em que for executado e salvar no formato FLV.


#!/bin/sh
###################################################################
# Nautilus' script para baixar vídeos do YouTube através da URL do vídeo
# Autor: Luiz Jovelli
# Referências: http://www.vivaolinux.com.br/scripts/verScript.php?codigo=2928
#                     http://jetervaz.wordpress.com/2007/07/26/wget-zenity-progress/
###################################################################
function progress
{
file=$1
[ -f $file ] || { echo "Arquivo $file nao encontrado!";
exit
}
dwnld_file=`cat $file | grep '=>' | tail -n1 | cut -d '>' -f2`
info_file=`cat $file | grep 'Tamanho'`
while true;
do
    step=`tail -n2 $file | grep % | rev | sed 's/.*%//' | cut -c -2 | rev`
    echo $step;

cat $file | grep '100%' | sed 's/[^100]//g';
   
sleep 0.5;
   
done |zenity --title "Download" --text "Baixando arquivo$dwnld_file...\n`echo $(cat $file | grep 'Tamanho')`" --progress --auto-close

if [ $? -eq 1 ]; then
kill -9 $pid
rm $movie_file.flv wget-log
zenity --title "Informação" --text "Download cancelado." --info
exit
fi
}

url=`zenity   --title  "URL do vídeo" --entry --text "Cole a url do vídeo."`
if [ $? -eq 1 ]; then
exit
elif [ -z $url ]
then
zenity --error --text "Nome do arquivo Está vazio."
exit
fi

movie_file=`zenity   --title  "Selecionar nome do filme" --entry --text "Digite o nome do filme a ser criado sem extensão."`
if [ $? -eq 1 ]; then
exit
elif [ -z $movie_file ]
then
zenity --error --text "Nome do arquivo Está vazio."
exit
fi

rm wget-log
wget -O /tmp/tmp_yt "$url"

if [ $? -eq 1 ]; then
zenity --error --text "Erro ao baixar arquivo. Verifique sua conexão e o endereço do vídeo."
exit
fi

info=`cat /tmp/tmp_yt | grep -oE 'video_id=.*&t=[^\"&]*' | head -1`
rm /tmp/tmp_yt

pid=`wget -bO $movie_file.flv "http://www.youtube.com/get_video?$info" | grep -e 'background' -e 'pid'| awk '{print $5}'|rev|cut -c 2-|rev`

sleep 4
progress "wget-log"
zenity --info --title "Download completado!" --text "Arquivo $movie_file.flv baixado com sucesso!"

rm wget-log


Desculpe, mas não entendi o procedimento para baixar o video do Youtube.
Entro na página do vídeo e faço o que?
Abs!

luiz_zwisch

#11
Olá Maudy,

Após "instalar" o script, você executa o script e coloque a url do video do YouTube. Por exemplo, você entra no site, escolhe um vídeo e, ao começar a rodar o vídeo no site, o endereço estará da seguinte forma:

http://www.youtube.com/watch?v=bdUaKevwWs0

O que você deve fazer é copiar e colar esse link assim que o script pedir.

Abraço!

maudy

aaaaaaaaaaaaaaaaaaaahh ta!
hehehe
valeu ai!
Agora terei todos os videos do Tela Class! hauhaua

Mythus

Citação de: luiz_zwisch online 02 de Setembro de 2007, 13:37
Para executá-los é só clicar com o botão direito do mouse no desktop ou no diretório de trabalho, ou então em cima do arquivo a ser compilado/convertido. Ao clicar com o botão direito aparecerá a opção Scripts e dentro estarão os scripts disponíveis para execução.

É que o animal aqui nem se tocou que tinha que reiniciar o nautilus. Como só reiniciei o X hoje, o menu apareceu. :)

Valeu
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

maudy

O script do download do Youtube num rolou aqui. E nem sei onde errei, pois refiz todo o processo e o item apareceu no menu do Nautilus.
Dame it!