A Vida em Preto e Branco I - Pebrot, MSN em modo texto
Esse é o primeiro artigo de uma série que irei escrever sobre o modo texto. A série tem como objetivo principal explorar a possibilidade de usar um computador com Linux sem o uso de um servidor X. Neste artigo será tratado um excelente cliente MSN em modo texto - o Pebrot.
Parte 6: Integrando shell scripts e o Pebrot
OBS: Não irei entrar em detalhes menores sobre shell script, considero que quem está lendo essa parte do artigo já possua conhecimento básico sobre o assunto. Todavia, deixo o seguinte link para quem deseje estudar sobre o assunto:
Essa é uma funcionalidade simples, mas extraordinária do Pebrot, ele pode executar comandos!!! Sim o Pebrot, orientado a eventos, pode executar comandos. A idéia é simples: há uma série de eventos possíveis (quando alguém conecta, quando alguém manda uma mensagem, quando alguém desconecta, etc), que, quando acontecem, acionam comandos previamente configurados!
Ainda não entendeu? Observe esse exemplo simples:
Quero saber se minha namorada tem conectado no MSN e quanto tempo ela fica conectada. Como fazer isso? Normalmente a única opção é pedir a um amigo que fique vigiando o MSN. Mas basta que ele se distraia um minuto, ou saia por algum motivo, que a vigília fica comprometida. Mas e se eu puder deixar meu cliente MSN de vigia no lugar de meu amigo?
Para implementar isso é necessário saber algumas coisas antes:
A sintaxe da definição dos eventos é muitos simples: <evento>= <comando>. Assim, se eu quiser criar um arquivo de log chamado 'conectaram' para registrar quem conectou no MSN posso, por exemplo, criar a seguinte linha no arquivo de configuração do Pebrot:
Essa é uma funcionalidade simples, mas extraordinária do Pebrot, ele pode executar comandos!!! Sim o Pebrot, orientado a eventos, pode executar comandos. A idéia é simples: há uma série de eventos possíveis (quando alguém conecta, quando alguém manda uma mensagem, quando alguém desconecta, etc), que, quando acontecem, acionam comandos previamente configurados!
Ainda não entendeu? Observe esse exemplo simples:
Quero saber se minha namorada tem conectado no MSN e quanto tempo ela fica conectada. Como fazer isso? Normalmente a única opção é pedir a um amigo que fique vigiando o MSN. Mas basta que ele se distraia um minuto, ou saia por algum motivo, que a vigília fica comprometida. Mas e se eu puder deixar meu cliente MSN de vigia no lugar de meu amigo?
Para implementar isso é necessário saber algumas coisas antes:
- Os eventos devem ser estabelecidos no arquivo de configuração do Pebrot (~/.pebrot/pebrotrc);
- Os eventos possíveis são:
exec_on_msg: quando uma nova mensagem for recebida
exec_on_new_chat: quando uma nova janela de chat for criada
exec_on_file_recv_begin: quando uma transferência de arquivo for iniciada
exec_on_file_recv_end: quando uma transferência de arquivo for terminada
exec_on_pal_state_nln: quando um contato mudar de estado para 'online'
exec_on_pal_state_change: Contato mudar de estado (para qualquer um, mas conectado)
exec_on_pal_connected: quando um contato conectar
exec_on_pal_disconnected: quando um contato desconectar
- É possível usar variáveis diferentes em cada evento. São elas:
exec_on_msg: $passport, $user, $msg
exec_on_new_chat: $passport, $user, $msg
exec_on_file_recv_begin: $passport, $user, $file, $size
exec_on_file_recv_end: $passport, $user, $file, $size
exec_on_pal_state_nln: $passport, $user
exec_on_pal_state_change: $passport, $user, $state
exec_on_pal_connected: $passport, $user, $state
exec_on_pal_disconnected: $passport, $user
A sintaxe da definição dos eventos é muitos simples: <evento>= <comando>. Assim, se eu quiser criar um arquivo de log chamado 'conectaram' para registrar quem conectou no MSN posso, por exemplo, criar a seguinte linha no arquivo de configuração do Pebrot:
exec_on_pal_connected= echo "`date` $user $passport CONECTOU" >> /home/<minhapasta>/conectaram
Para complementar posso criar um outro evento que registre as desconexões e registre no mesmo arquivo:
exec_on_pal_disconnected= echo "`date` $user $passport DESCONECTOU >> /home/<minha pasta>/conectaram
Mas claro, que para deixar os resultados mais refinados - afinal eu só quero saber das movimentações da minha namorada - eu posso criar um shell script que faça o registro para mim. Então, posso criar um script assim:
#!/bin/bash
if [ $1 = "minha_namorada@hotmail.com" ]; then
if [ $2 = "conectou" ]; then
echo "ela CONECTOU em `date`" >> /home/<minhapasta>/namorada
else
echo "ela DESCONECTOU em `date`" >> /home/<minhapasta>/namorada
fi
fi
if [ $1 = "minha_namorada@hotmail.com" ]; then
if [ $2 = "conectou" ]; then
echo "ela CONECTOU em `date`" >> /home/<minhapasta>/namorada
else
echo "ela DESCONECTOU em `date`" >> /home/<minhapasta>/namorada
fi
fi
Salvo o arquivo como "controledenamorada", dou permissão de execução e salvo em /usr/bin. Então registro os seguintes eventos no arquivo de configuração do Pebrot:
exec_on_pal_connect= controledenamorada $passport conectou
exec_on_pal_disconnect= controledenamorada $passport desconectou
exec_on_pal_disconnect= controledenamorada $passport desconectou
Pronto, agora no arquivo /home/<minhapasta>/namorada, só serão registradas as ações daquele passport específico.
Talvez seja interessante também que eu entre sempre como 'Aparecer Offline', afinal, não quero que ela saiba que eu estou fazendo isso. Para isso no arquivo de configuração do Pebrot deixe a seguinte opção assim:
state= HDN
Esse foi um exemplo simples do que se pode fazer usando os eventos do Pebrot, imagine-se agendando tarefas no seu computador através do MSN, mandando e-mails, ou qualquer outra tarefa, simples ou complexa. Todavia, essa função deve ser usada com muita cautela, pois pode ser muito perigosa se mal configurada.
Infelizmente o Pebrot, pelo menos na versão citada (0.8.8), ainda não tem a possibilidade de executar tarefas comandos, como por exemplo, mandar uma mensagem para um contato, ou mesmo um arquivo, através de linha de comando.
nunca tinha ouvido falar!! gostei do artigo esta de parabens!!!!!
e viva o linux!