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
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
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