Este aqui é um bot bem simples para Twitter.
Diariamente, as nove da manhã ele posta qual vai ser o cardápio do RU (Restaurante Universitário) da UFC naquele dia.
Assim, quando vai batendo a hora da fome, os alunos podem entrar no perfil @rudaufc e olhar qual vai ser o prato do dia, ou quem está seguindo ele no Twitter pode ter a agradável surpresa de ver todo dia o que vai ser servido hoje.
Aqui está o código fonte do arquivo rudaufc.sh:
#!/bin/sh
# Twitter bot @rudaufc
login="rudaufc"
senha="suasenhaaqui"
segunda="Picadinho com legumes ou bife na chapa. Salada de macarrão com cenoura. Arroz. Feijão com abóbora e batata doce."
terca="Franco guisado ou coxas de frango ao forno . Salada de acelga, cenoura e passas. Arroz. Feijão com abóbora e batata doce."
quarta="# Feijoada à moda RU ou bisteca . Salada de repolho branco, cenoura e abacaxi. Arroz. Feijão com abóbora e batata doce"
quinta="Frango à passarinho ou frango chinês. Salada de Alface, Tomate e Cebola. Arroz. Feijão com abóbora e batata doce."
sexta="# Isca ao molho ou maravilha de carne. Salada de acelga com cenoura. Arroz. Feijão com abóbora e batata doce."
dia=`(date +%w)`
log=`(date +%Y-%m-%d-%s)`"-$$.log"
dir="/home/silveiraneto/rudaufc"
msg=""
case "$dia" in
# "0") msg=$domingo ;;
"1") msg=$segunda ;;
"2") msg=$terca ;;
"3") msg=$quarta ;;
"4") msg=$quinta ;;
"5") msg=$sexta ;;
# "6") msg=$sabado ;;
esac
curl -u $login:$senha -d status="$msg" http://twitter.com/statuses/update.xml > $dir/$log
A mágica toda está na capacidade do Curl de acessar facilmente a API do Twitter para enviar mensagens.
Para que o script execute diariamente as nove da manhã ele está alocado em um servidor com a crontab configurada da seguinte maneira:
0 5 * * * . /caminho_para_onde_ele_esta/rudaufc.sh
ps: leve em conta que o servidor está em um fuso horário diferente do Brasil.
Nessa versão o prato de cada dia está hardcoded no script, o que não é o ideal e faz com que semanalmente eu tenha que atualizar o script inserindo os pratos da semana manualmente. Eu espero que a próxima versão seja capaz de descobrir esses pratos e se atualizar sem nenhuma interferência.
fiz um semelhante em Python(usando appengine) para o @uece ele busca os dados que o povo da Nutrição coloca no site. 😉
Olá Silveira.
Não estou conseguindo fazer a linha “dia=`(date +%w)`” funcionar…
no Terminal, o comando ‘date +%w’ funciona e retorna o inteiro referente ao dia da semana. Sabe dizer qual pode ser o problema que estou tendo?
Quando coloco o script para rodar retorna essa mensagem:
/statuses/update.xml
Client must provide a ‘status’ parameter with a value.
Mas se eu coloco a mensagem diretamente na variável (msg=”Teste”) funciona.
Já descobri o problema! Eu tava usando aspas simples (‘) ao invés do backquote (`)…
Conheces algo assim em PHP ou JSP ?
como faço pra que ele envie um recado a cada 10 minutos por exemplo? 😡
rodrigo, é só usar a mesma lógica, mas tem que ver qual o limite de tweets que você pode fazer.
Thanks for sharing your thoughts here. I really value it.
@NichollasF quem sabe né? posta algum comentário lá http://t.co/REh8xJO ou http://t.co/totF1OV