Atualizar status do MSN via shell script
Publicado por Marcos Paulo Ferreira (última atualização em 03/02/2011)
[ Hits: 6.380 ]
Homepage: http://daemoniolabs.wordpress.com
Esse script só funciona se você estiver utilizando o pidgin. Antes de tudo verifique se o comando purple-remote existe. Numa instalação padrão no meu "Slacklindo", ele está em:
/usr/bin/purple-remote
Esse comando é uma interface em que podemos, por exemplo, alterar a mensagem de status do pidgin. Isso mesmo. É só executar esse comando com os parâmetros necessários para que sua mensagem de status mude.
Como o comando já faz tudo sozinho eu tinha que inventar algo para utilizá-lo. Daí tive a ideia de mostrar no MSN o quanto falta para se chegar no ano novo. Criei o script e de quebra trollei a galerinha que passa o ano novo no MSN. Ô vida!
Um problema que tive foi para executá-lo via cron. Tentei, pesquisei, compilei, dei saltos mortais e nada. Não funcionava por nada. Assim, resolvi colocar um loop infinito no script e a atualização é usando o sleep mesmo. Foi o que consegui. :|
Uso:
1) Abra o pidgin
2) Baixe, salve e chmode o script.
3) ./anonovo & # cuidado que tem um echo de debug
É só isso.
O script tá simples e pode ser de grande ajuda para quem quer iniciar o ano programando em Shell Script. :)
Feliz ano novo (Fábio diz: "atrasado por conta da moderação do VOL").
t+
#!/bin/bash
# Autor: Daemonio
# Contato: undefinido gmail com
#
# Fri Dec 31 18:40:51 BRST 2010
# Ter Jan  4 21:45:47 BRST 2011
#
# Script que atualiza a mensagem de status do pidgin
# com a quantidade de horas e minutos restantes
# para se chegar em uma determinada data/hora.
#
#
# Data final.
#
# 2011-1-1 => 1 de Janeiro de 2011
# 0:0:0    => Meia-noite
#
# Usei essa data para o ano novo de 2011.
# Voce tem que muda-la para uma data
# no futuro em relacao a agora. :|
my_date='2011-1-1 00:00:00'
# my_date em segundos desde 1970
s_my_date=$(date --date  "$my_date" '+%s')
# String para setar o status.
pidgin_set_status='setstatus?status=away&message='
while :
do
    # Tempo atual em segundos desde 1970
    s_now_date=$(date '+%s')
    # Diferenca
    s_diff=$(($s_my_date - $s_now_date))
    # Encerra o script se a diferenca eh negativa.
    (($s_diff < 0)) && break
    #
    # Aqui a transformacao para hora e minuto
    # eh na mao mesmo. Tentei descobrir um modo
    # de fazer isso via `date`, mas acabou
    # que nao achei o que queria :(
    #
    # Horas restantes
    _h=$(($s_diff / 3600))
    # Horas restantes em segundos
    s_h=$(($_h * 3600))
    # Minutos restantes
    _m=$(( ($s_diff-$s_h) / 60))
    #
    # Mensagem que eu usei pra trollar a
    # galera que passa o "reveion" no MSN. T_T
    #
    # MSG='Voces tem '$_h' horas e '$_m' minutos para'
    # MSG=$MSG'arrumarem algo para fazer, seus'
    # MSG=$MSG'trem a toa. :|'
    #
    # Mensagem de status
    MSG="Faltam $_h hora(s) e $_m minuto(s)."
    # Debugging
    echo "$MSG"
    # Atualiza o status e a mensagem
    CMD="${pidgin_set_status}${MSG}"
    /usr/bin/purple-remote "$CMD"
    # Dorme por 2 minutos.
    # Ou seja: Atualiza o status
    # a cada dois minutos.
    sleep 120
done
Gerenciar hosts virtuais do Apache
Instalador do plugin Flash 64 bits para Linux e UNIX/UNIX-like
Mantendo seus repositórios Git e SVN atualizados
Visualizar capas de álbuns de músicas no MPD/MPC/NCMPCPP
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)
Instalação dualboot Windows 11 e Debian 13 (7)









