Don't like ads? PRO users don't see any ads ;-)
Guest

tweets_nuevos.py

By: juliozaco on Dec 4th, 2011  |  syntax: Python  |  size: 2.71 KB  |  hits: 5  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #-------------------------------------------------------------------------------
  2. # Name:        module1
  3. # Purpose:
  4. #
  5. # Author:      http://hispabyte.net/2011/07/python-script-para-recoger-los-tweets-de-hoy/
  6. #
  7. # Created:     25/11/2011
  8. # Copyright:   (c) JULIO 2011
  9. # Licence:     <your licence>
  10. #-------------------------------------------------------------------------------
  11. #!/usr/bin/env python
  12. # -*- coding: utf-8 -*-
  13. import urllib, ConfigParser
  14. import datetime as date
  15. import time, os, re
  16. import simplejson as json
  17. from envia_email import mandaemail
  18.  
  19. conf = 'tweets_nuevos_conf.txt'
  20. if not os.path.exists(conf):
  21.     print 'Falta fichero configuración'
  22.     exit()
  23. ficini = ConfigParser.ConfigParser()
  24. ficini.read(conf)
  25. if not ficini.has_section('principal'):
  26.     print 'Faltan datos principales'
  27.     exit()
  28. emailuser = ficini.get('principal', 'u')
  29. emailpassw = ficini.get('principal', 'p')
  30. emailpop3 = ficini.get('principal', 'pop3')
  31. emailssl = ficini.get('principal', 'ssl')
  32. emailsmtp = ficini.get('principal', 'smtp')
  33. emailaquien = ficini.get('principal','aquien')
  34. emailasunto = ficini.get('principal','asunto')
  35. emailtexto = ficini.get('principal','texto')
  36. separatuits = ficini.get('principal','separatuits')
  37. adjunto = ficini.get('principal','adjunto')
  38.  
  39. users = ficini.items('twitters')
  40.  
  41.  
  42. now = date.datetime.now()
  43. ayer = now - date.timedelta(days=1)
  44. now = now.strftime("%Y-%m-%d")
  45. ayer = ayer.strftime("%Y-%m-%d")
  46. texto = []
  47.  
  48. for u in users:
  49.         url = "http://search.twitter.com/search.json?q=+from:" + u[1] +"+since:"+ now   #+"+until:"+now
  50.         json_text = urllib.urlopen(url).read()
  51.         json_obj = json.loads(json_text)
  52.  
  53.         #print u[1] + ":"
  54.         for i in json_obj['results']:
  55.             if i['text']<>'':
  56.                 #print u[1]+': ',i['text']
  57.                 linea = u[1]+': '+i['text'] + ' :created_at:' + i['created_at']
  58.                 linea = linea.encode('utf8','ignore')
  59.                 texto.append(separatuits+linea)
  60.                 #print "\n"
  61.         time.sleep(0.5)
  62.  
  63. # leemos datos anteriores
  64. textoant = []
  65. fic = open('tweets_nuevos_ultimos.txt','a+')
  66. antes = fic.read()
  67. fic.close()
  68. antes = antes.split(separatuits)
  69. antes = antes[1:]
  70. for linea in antes:
  71.     textoant.append(separatuits+linea)
  72.  
  73. # si han cambiado enviamos email
  74. if texto and (texto<>textoant):
  75.     ficadj = open(adjunto,'w')
  76.     for linea in texto:
  77.         if linea not in textoant:
  78.             ficadj.write(linea+'\n')
  79.     ficadj.close()
  80.     mandaemail(emailuser, emailpassw, emailsmtp,[emailaquien],emailasunto,emailtexto,adjunto)
  81.  
  82. # guardamos ultima lectura
  83.     fic = open('tweets_nuevos_ultimos.txt','w')
  84.     for linea in texto:
  85.         fic.write(linea)
  86.     fic.close()
  87.  
  88.