Twitter @hashunifei
[Warning: This post is a backup recovery from my previous Wordpress blog. All content was automatically converted accessing a MySQL database using a Python script (details). Mostly are in Portuguese but if you are interest I can translate to English. If you found any problem dont’t hesitate to contact me in comments.]
Sempre tive curiosidade de fazer um agregador para o Twitter, ou seja, criar um usurio que fizesse o retwitt de todos os termos que aparecem sobre determinada palavra. Parafazer um teste resolvi criar um usurio chamado @hashunifei que ir agregar o que pessoal escrever sobre a UNIFEI (Universidade Federal de Itajub) incluindo o nome antigo ;-) Seguindo a filosofia code less, create more decidi fazer um script em Python que acessa a API do Twitter. Depois s configurar algum agendador de tarefas (ex.: cron) para executar o programa de tempos em tempos. Para evitar que a cada busca os mesmos twitts sejam publicados h um arquivo chamado .hashunifei que grava o nmero de identificao (id) das mensagens publicadas.
# -*- coding: utf-8 -*-
# Tiago Maluta <maluta@unifei.edu.br>
import simplejson, urllib
import twitter
list_id = []
api = twitter.Api(username='USUARIO', password='SENHA')
SEARCH_BASE = 'http://search.twitter.com/'
url = SEARCH_BASE + "search.json?q=UNIFEI+OR+efei"
def publish(user,text):
twitt = "RT @"+user+" "+text
if len(twitt) > 140:
twitt = twitt[:140]
api.PostUpdates(twitt)
result = simplejson.load(urllib.urlopen(url))['results']
with open(".hashunifei","r+") as f:
data = f.read()
list_id = data.split(",")
f = open(".hashunifei","a")
for twitt in result:
text = twitt['text']
user = twitt['from_user']
if user != "hashunifei":
id = str(twitt['id'])
if id not in list_id:
list_id.append(id)
f.write(id+',')
publish(user,text)
f.close()
Se quiser testar o cdigo-fonte (lembre-se de mudar o usurio e senha e a palavra da busca)
$ touch .hashunifei $ wget http://github.com/maluta/junk/raw/master/hashunifei.py
Limitaes: A mensagem truncada em 140 caracteres (limite do twitter).
Eu sinceramente no sei se assim que o pessoal faz, foi a primeira idia que tive…, se o pessoal que entende de web quiser colaborar seria timo.