Sempre tive curiosidade de fazer um agregador para o Twitter, ou seja, criar um usuário que fizesse o retwitt de todos os termos que aparecem sobre determinada palavra. Para fazer um teste resolvi criar um usuário 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 número de identificação (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 código-fonte (lembre-se de mudar o usuário e senha e a palavra da busca)
$ touch .hashunifei
$ wget http://github.com/maluta/junk/raw/master/hashunifei.py
Limitações: A mensagem é truncada em 140 caracteres (limite do twitter).
Eu sinceramente não sei se é assim que o pessoal faz, foi a primeira idéia que tive…, se o pessoal que entende de web quiser colaborar seria ótimo.