def on_status(self, tweet): try: twitter_user_id = str(tweet.user.id) splitted = tweet.text.split(' ') if len(splitted) <= 3: emoji_status = splitted[1] is_valid_emoji = emoji.demojize(emoji_status) != emoji_status if not is_valid_emoji: app_api.update_status(status=u'@' + tweet.user.screen_name + u' try again with a single emoji: ".YoApp 😂"') return yo_access_token = redis_store.get('yo.token.for.twitter.user.id:' + twitter_user_id) if not yo_access_token: app_api.update_status(status=u'@' + tweet.user.screen_name + u' let\'s link your twitter to your Yo Status here: https://yostat.us/twitter/authorize') return response = requests.post('https://api.justyo.co/status/', json={ 'status': emoji_status, 'access_token': yo_access_token }) if response.status_code == 200: app_api.update_status(status=u'@' + tweet.user.screen_name + u' your status is now: ' + emoji) else: app_api.update_status(status=u'@' + tweet.user.screen_name + u' let\'s link your twitter to your Yo Status here: https://yostat.us/twitter/authorize') except Exception as e: print e.message
def wrapper(*args, **kwargs): token = request.headers.get("token") if not token: return jsonify(response_code.user_not_exist) user_id = redis_store.get('token:%s' % token) if not user_id or token != redis_store.hget("user:%s" % user_id, 'token'): return jsonify(response_code.login_check_error) return func(*args, **kwargs)
def set_status(): slack_user_id = request.form.get('user_id') text = request.form.get('text') yo_access_token = redis_store.get(slack_user_id) response = requests.post('https://api.justyo.co/status/', json={ 'status': text, 'access_token': yo_access_token }) if response.status_code == 200: response = requests.get('https://api.justyo.co/me/?access_token=' + yo_access_token) json_response = response.json() return 'Your Yo Status is now: ' + text + ' (yostat.us/' + json_response.get('username') + ')' else: return 'Couldn\'t set your Yo Status :('
def assess_timeout(task): """Retry current task after a timeout if the Redis Twitter-Lock is set. Args: task (object): Celery task running this plugin. """ twitter_lock = redis_store.get('Twitter-Lock') if not twitter_lock: return delta = datetime.fromtimestamp(int(twitter_lock)) - datetime.now() if delta.days: return timeout = delta.seconds + 1 exception = CeleryRetry( TwitterSearchException(429, 'Twitter rate limit reached.'), 'Twitter rate limit reached') raise task.retry(exc=exception, countdown=timeout)