Changeset - 089786179d41
[Not reviewed]
default
0 1 0
Dennis Fink - 9 years ago 2016-03-14 21:14:04
dennis.fink@c3l.lu
Added twitter integration
1 file changed with 34 insertions and 0 deletions:
0 comments (0 inline, 0 general)
spaceapi/state.py
Show inline comments
 
import json
 

	
 
from time import time
 

	
 
from flask import Blueprint, jsonify, request, current_app, abort
 

	
 
import twitter
 

	
 
import twitter
 

	
 
from .utils import ActiveStatus
 
from .auth import httpauth
 

	
 
state_views = Blueprint('state', __name__)
 

	
 
ALLOWED_STATE_KEYS = frozenset(('open', 'lastchange',
 
                                'trigger_person', 'message'))
 

	
 
twitter_api = twitter.Api()
 

	
 
twitter_api = twitter.Api()
 

	
 

	
 
@state_views.route('/set/<key>', methods=['POST'])
 
@httpauth.login_required
 
def set_state(key):
 

	
 
    active = ActiveStatus()
 
    value = json.loads(request.data.decode('utf-8'))['value']
 
    current_app.logger.info(value)
 
    current_app.logger.info(type(value))
 

	
 
    if key in ALLOWED_STATE_KEYS:
 
        active['state'][key] = value
 

	
 
        if key == 'open':
 
            active['state']['lastchange'] = int(time())
 

	
 
            if 'twitter_consumer_key' in current_app.config:
 
                twitter_api.SetCredentials(
 
                    consumer_key=current_app.config['twitter_consumer_key'],
 
                    consumer_secret=current_app.config['twitter_consumer_secret'],
 
                    access_token_key=current_app.config['twitter_access_token_key'],
 
                    access_token_secret=current_app.config['twitter_access_token_secret']
 
                )
 

	
 
                if value:
 
                    twitter_api.PostUpdate('The space is now open!')
 
                else:
 
                    twitter_api.PostUpdate('The space is now closed!')
 

	
 
            if 'twitter_consumer_key' in current_app.config:
 
                twitter_api.SetCredentials(
 
                    consumer_key=current_app.config['twitter_consumer_key'],
 
                    consumer_secret=current_app.config['twitter_consumer_secret'],
 
                    access_token_key=current_app.config['twitter_access_token_key'],
 
                    access_token_secret=current_app.config['twitter_access_token_secret']
 
                )
 

	
 
                if value:
 
                    twitter_api.PostUpdate('The space is now open!')
 
                else:
 
                    twitter_api.PostUpdate('The space is now closed!')
 

	
 
        active.save_last_state()
 
        return jsonify(active)
 
    else:
 
        return abort(400)
0 comments (0 inline, 0 general)