PageRenderTime 67ms CodeModel.GetById 45ms RepoModel.GetById 1ms app.codeStats 0ms

/twittface/controller/login.py

https://github.com/marcelnicolay/twitter-face-rank
Python | 60 lines | 41 code | 17 blank | 2 comment | 2 complexity | 624706fcf455354ffadea589e042df28 MD5 | raw file
  1. # coding: utf-8
  2. #!/usr/bin/env python
  3. from torneira.controller import BaseController, render_to_extension
  4. from twittface.models.usuario import Usuario
  5. from torneira.core.meta import TorneiraSession
  6. from sqlalchemy.orm.exc import NoResultFound
  7. from tornado.web import HTTPError
  8. import tweepy
  9. import math
  10. import settings
  11. import logging
  12. class LoginController(BaseController):
  13. def index(self, request_handler):
  14. return self.render_to_template("login.html")
  15. def oauth(self, request_handler):
  16. auth = tweepy.OAuthHandler("5dMcC3yYelEVwQykbsitcA","63g7kzmNdJX25qVuz51RMUFXCwiJ7DKaeoMn3fLmlQ", "http://twittface.local:8080/login/oauth_callback")
  17. redirect_url = auth.get_authorization_url()
  18. request_handler.set_secure_cookie(name="OAUTH_TOKEN", value=str("%s|%s" % (auth.request_token.key, auth.request_token.secret)), path="/", expires_days=1)
  19. request_handler.redirect(redirect_url)
  20. return
  21. def oauth_callback(self, request_handler, **kw):
  22. auth = tweepy.OAuthHandler("5dMcC3yYelEVwQykbsitcA","63g7kzmNdJX25qVuz51RMUFXCwiJ7DKaeoMn3fLmlQ")
  23. request_token = request_handler.get_secure_cookie("OAUTH_TOKEN").split("|")
  24. auth.set_request_token(request_token[0], request_token[1])
  25. auth.get_access_token(kw.get('oauth_verifier'))
  26. api = tweepy.API(auth)
  27. user_twitter = api.me()
  28. session = TorneiraSession()
  29. try:
  30. usuario = session.query(Usuario).filter(Usuario.id_twitter==int(user_twitter.id)).one()
  31. except NoResultFound:
  32. usuario = Usuario()
  33. usuario.id_twitter = user_twitter.id
  34. usuario.image_url = user_twitter.profile_image_url
  35. usuario.login = user_twitter.screen_name
  36. usuario.save()
  37. request_handler.set_secure_cookie(name="TWITTFACE_ID", value=str(usuario.id), path="/", expires_days=None)
  38. request_handler.redirect("/")
  39. return
  40. def logout(self, request_handler):
  41. request_handler.clear_all_cookies()
  42. request_handler.redirect("/")
  43. return