Guest User

Untitled

a guest
Apr 10th, 2013
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. import tornado.httpserver
  2. import tornado.ioloop
  3. import tornado.options
  4. import tornado.web
  5. import tornado.httpclient
  6.  
  7. import urllib
  8. import json
  9. import datetime
  10. import time
  11.  
  12. from tornado.options import define, options
  13. define("port", default=8000, help="run on the given port", type=int)
  14.  
  15. class IndexHandler(tornado.web.RequestHandler):
  16.     def get(self):
  17.         query = self.get_argument('q')
  18.         client = tornado.httpclient.HTTPClient()
  19.         response = client.fetch("http://search.twitter.com/search.json?" + \
  20.                 urllib.urlencode({"q": query, "result_type": "recent", "rpp": 100}))
  21.         body = json.loads(response.body)
  22.         result_count = len(body['results'])
  23.         now = datetime.datetime.utcnow()
  24.         raw_oldest_tweet_at = body['results'][-1]['created_at']
  25.         oldest_tweet_at = datetime.datetime.strptime(raw_oldest_tweet_at,
  26.                 "%a, %d %b %Y %H:%M:%S +0000")
  27.         seconds_diff = time.mktime(now.timetuple()) - \
  28.                 time.mktime(oldest_tweet_at.timetuple())
  29.         tweets_per_second = float(result_count) / seconds_diff
  30.         self.write("""
  31. <div style="text-align: center">
  32.     <div style="font-size: 72px">%s</div>
  33.     <div style="font-size: 144px">%.02f</div>
  34.     <div style="font-size: 24px">tweets per second</div>
  35. </div>""" % (query, tweets_per_second))
  36.  
  37. if __name__ == "__main__":
  38.     tornado.options.parse_command_line()
  39.     app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
  40.     http_server = tornado.httpserver.HTTPServer(app)
  41.     http_server.listen(options.port)
  42.     tornado.ioloop.IOLoop.instance().start()
Advertisement
Add Comment
Please, Sign In to add comment