Exemplo n.º 1
0
 def func_bind(self, args, oauth_token=None):
     if len(args) == 1 and args[0].isalnum():
         jid = self._google_user.jid
         if oauth_token is None:
             twitter_user = TwitterUser.get_by_twitter_name(None, jid)
             if twitter_user is None:
                 return _('INVALID_PIN_CODE') % ''
             oauth_token = twitter_user.access_token_key
         token = oauth.Token(oauth_token)
         token.set_verifier(args[0].encode('UTF8'))
         consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY,
                                   config.OAUTH_CONSUMER_SECRET)
         client = oauth.Client(consumer, token)
         resp = client.request(twitter.ACCESS_TOKEN_URL, "POST")
         if not resp:
             return _('NETWORK_ERROR')
         access_token = dict(cgi.parse_qsl(resp))
         if 'oauth_token' not in access_token:
             return _('INVALID_PIN_CODE') % args[0]
         if oauth_token is None:
             twitter_user.delete()
         TwitterUser.add(jid, access_token['oauth_token'],
                         access_token['oauth_token_secret'],
                         access_token['screen_name'])
         if self._google_user.enabled_user == '':
             self._google_user.enabled_user = access_token['screen_name']
         if IdList.get_by_jid(jid, self._google_user.shard) is None:
             IdList.add(jid, self._google_user.shard)
         return _('SUCCESSFULLY_BIND') % access_token['screen_name']
     else:
         raise NotImplementedError
Exemplo n.º 2
0
    def func_oauth(self, args):
        length = len(args)
        if not length or length == 2:
            consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY,
                                      config.OAUTH_CONSUMER_SECRET)
            client = oauth.Client(consumer)
            resp = client.request(twitter.REQUEST_TOKEN_URL, "GET")
            if not resp:
                return _('NETWORK_ERROR')
            self._request_token = dict(cgi.parse_qsl(resp))
            oauth_token = self._request_token['oauth_token']
            redirect_url = "%s?oauth_token=%s" % (twitter.AUTHORIZATION_URL,
                                                  oauth_token)
            if not length:
                TwitterUser.add(self._google_user.jid, oauth_token)
                return _('OAUTH_URL') % redirect_url
            import oauth_proxy

            pin = oauth_proxy.login_oauth(redirect_url, args[0], args[1])
            if pin == '':
                return _('NETWORK_ERROR')
            elif pin is None:
                return _('WRONG_USER_OR_PASSWORD')
            return self.func_bind([pin], oauth_token)
        else:
            raise NotImplementedError
Exemplo n.º 3
0
 def func_bind(self, args, oauth_token=None):
     if len(args) == 1 and args[0].isalnum():
         jid = self._google_user.jid
         if oauth_token is None:
             twitter_user = TwitterUser.get_by_twitter_name(None, jid)
             if twitter_user is None:
                 return _("INVALID_PIN_CODE") % ""
             oauth_token = twitter_user.access_token_key
         token = oauth.Token(oauth_token)
         token.set_verifier(args[0].encode("UTF8"))
         consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET)
         client = oauth.Client(consumer, token)
         resp = client.request(twitter.ACCESS_TOKEN_URL, "POST")
         if not resp:
             return _("NETWORK_ERROR")
         access_token = dict(cgi.parse_qsl(resp))
         if "oauth_token" not in access_token:
             return _("INVALID_PIN_CODE") % args[0]
         if oauth_token is None:
             twitter_user.delete()
         TwitterUser.add(
             jid, access_token["oauth_token"], access_token["oauth_token_secret"], access_token["screen_name"]
         )
         if self._google_user.enabled_user == "":
             self._google_user.enabled_user = access_token["screen_name"]
         if IdList.get_by_jid(jid, self._google_user.shard) is None:
             IdList.add(jid, self._google_user.shard)
         return _("SUCCESSFULLY_BIND") % access_token["screen_name"]
     else:
         raise NotImplementedError
Exemplo n.º 4
0
 def func_bind(self, args, oauth_token=None):
   if len(args) == 1 and args[0].isdigit():
     twitter_user = None
     if oauth_token is None:
       twitter_user = TwitterUser.get_by_twitter_name(None, self._google_user.jid)
       if twitter_user is None:
         return _('INVALID_PIN_CODE') % ''
       oauth_token = twitter_user.access_token_key
     token = oauth.Token(oauth_token)
     if type(args[0]) != unicode:
       args[0] = args[0].encode('UTF8')
     token.set_verifier(args[0])
     consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET)
     client = oauth.Client(consumer, token)
     resp = client.request(twitter.ACCESS_TOKEN_URL, "POST")
     if not resp:
       return _('NETWORK_ERROR')
     access_token = dict(cgi.parse_qsl(resp))
     if 'oauth_token' not in access_token:
       return _('INVALID_PIN_CODE') % args[0]
     if twitter_user is not None:
       twitter_user.delete()
     TwitterUser.add(self._google_user.jid, access_token['oauth_token'], access_token['oauth_token_secret'],
                     access_token['screen_name'])
     if self._google_user.enabled_user == '':
       self._google_user.enabled_user = access_token['screen_name']
     if IdList.get_by_jid(self._google_user.jid, self._google_user.shard) is None:
       IdList.add(self._google_user.jid, self._google_user.shard)
     return _('SUCCESSFULLY_BIND') % access_token['screen_name']
   else:
     raise NotImplementedError
Exemplo n.º 5
0
 def func_oauth(self, args):
   length = len(args)
   if not length or length == 2:
     consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET)
     client = oauth.Client(consumer)
     resp = client.request(twitter.REQUEST_TOKEN_URL)
     if not resp:
       return _('NETWORK_ERROR')
     self._request_token = dict(cgi.parse_qsl(resp))
     oauth_token = self._request_token['oauth_token']
     redirect_url = "%s?oauth_token=%s" % (twitter.AUTHORIZATION_URL, oauth_token)
     if not length:
       TwitterUser.add(self._google_user.jid, oauth_token)
       return _('OAUTH_URL') % redirect_url
     import oauth_proxy
     from google.appengine.api import urlfetch_errors
     try:
       pin = oauth_proxy.login_oauth(redirect_url, args[0], args[1])
     except urlfetch_errors.Error:
       return _('NETWORK_ERROR')
     except twitter.TwitterAuthenticationError:
       return _('WRONG_USER_OR_PASSWORD')
     else:
       return self.func_bind([pin], oauth_token)
   else:
     raise NotImplementedError
Exemplo n.º 6
0
    def func_oauth(self, args):
        length = len(args)
        if not length or length == 2:
            consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET)
            client = oauth.Client(consumer)
            resp = client.request(twitter.REQUEST_TOKEN_URL, "GET")
            if not resp:
                return _("NETWORK_ERROR")
            self._request_token = dict(cgi.parse_qsl(resp))
            oauth_token = self._request_token["oauth_token"]
            redirect_url = "%s?oauth_token=%s" % (twitter.AUTHORIZATION_URL, oauth_token)
            if not length:
                TwitterUser.add(self._google_user.jid, oauth_token)
                return _("OAUTH_URL") % redirect_url
            import oauth_proxy

            pin = oauth_proxy.login_oauth(redirect_url, args[0], args[1])
            if pin == "":
                return _("NETWORK_ERROR")
            elif pin is None:
                return _("WRONG_USER_OR_PASSWORD")
            return self.func_bind([pin], oauth_token)
        else:
            raise NotImplementedError