#-------------------------------------------------------------------------------
# Name: module1
# Purpose:
#
# Author: http://hispabyte.net/2011/07/python-script-para-recoger-los-tweets-de-hoy/
#
# Created: 25/11/2011
# Copyright: (c) JULIO 2011
# Licence: <your licence>
#-------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib, ConfigParser
import datetime as date
import time, os, re
import simplejson as json
from envia_email import mandaemail
conf = 'tweets_nuevos_conf.txt'
if not os.path.exists(conf):
print 'Falta fichero configuración'
exit()
ficini = ConfigParser.ConfigParser()
ficini.read(conf)
if not ficini.has_section('principal'):
print 'Faltan datos principales'
exit()
emailuser = ficini.get('principal', 'u')
emailpassw = ficini.get('principal', 'p')
emailpop3 = ficini.get('principal', 'pop3')
emailssl = ficini.get('principal', 'ssl')
emailsmtp = ficini.get('principal', 'smtp')
emailaquien = ficini.get('principal','aquien')
emailasunto = ficini.get('principal','asunto')
emailtexto = ficini.get('principal','texto')
separatuits = ficini.get('principal','separatuits')
adjunto = ficini.get('principal','adjunto')
users = ficini.items('twitters')
now = date.datetime.now()
ayer = now - date.timedelta(days=1)
now = now.strftime("%Y-%m-%d")
ayer = ayer.strftime("%Y-%m-%d")
texto = []
for u in users:
url = "http://search.twitter.com/search.json?q=+from:" + u[1] +"+since:"+ now #+"+until:"+now
json_text = urllib.urlopen(url).read()
json_obj = json.loads(json_text)
#print u[1] + ":"
for i in json_obj['results']:
if i['text']<>'':
#print u[1]+': ',i['text']
linea = u[1]+': '+i['text'] + ' :created_at:' + i['created_at']
linea = linea.encode('utf8','ignore')
texto.append(separatuits+linea)
#print "\n"
time.sleep(0.5)
# leemos datos anteriores
textoant = []
fic = open('tweets_nuevos_ultimos.txt','a+')
antes = fic.read()
fic.close()
antes = antes.split(separatuits)
antes = antes[1:]
for linea in antes:
textoant.append(separatuits+linea)
# si han cambiado enviamos email
if texto and (texto<>textoant):
ficadj = open(adjunto,'w')
for linea in texto:
if linea not in textoant:
ficadj.write(linea+'\n')
ficadj.close()
mandaemail(emailuser, emailpassw, emailsmtp,[emailaquien],emailasunto,emailtexto,adjunto)
# guardamos ultima lectura
fic = open('tweets_nuevos_ultimos.txt','w')
for linea in texto:
fic.write(linea)
fic.close()