2017-07-25 09:52:24 +02:00
|
|
|
from app import app
|
2017-07-27 00:35:53 +02:00
|
|
|
from flask import render_template, session, url_for, redirect, request
|
2017-07-25 23:05:46 +02:00
|
|
|
from datetime import datetime
|
2017-07-27 00:35:53 +02:00
|
|
|
import lib.twitter
|
|
|
|
from model import Account
|
|
|
|
from app import db
|
2017-07-25 09:52:24 +02:00
|
|
|
|
|
|
|
@app.route('/')
|
2017-07-25 23:05:46 +02:00
|
|
|
def index():
|
2017-07-27 00:35:53 +02:00
|
|
|
viewer = None
|
|
|
|
if 'remote_id' in session:
|
|
|
|
viewer = Account.query.get(session['remote_id'])
|
|
|
|
viewer.touch()
|
|
|
|
db.session.commit()
|
|
|
|
return render_template('index.html', viewer = viewer)
|
2017-07-25 09:52:24 +02:00
|
|
|
|
2017-07-25 23:05:46 +02:00
|
|
|
@app.route('/login/twitter')
|
2017-07-27 00:35:53 +02:00
|
|
|
def twitter_login_step1():
|
|
|
|
return redirect(lib.twitter.get_login_url(
|
|
|
|
callback = url_for('twitter_login_step2', _external=True),
|
|
|
|
**app.config.get_namespace("TWITTER_")
|
|
|
|
))
|
|
|
|
|
|
|
|
@app.route('/login/twitter/callback')
|
|
|
|
def twitter_login_step2():
|
|
|
|
oauth_token = request.args['oauth_token']
|
|
|
|
oauth_verifier = request.args['oauth_verifier']
|
|
|
|
token = lib.twitter.receive_verifier(oauth_token, oauth_verifier, **app.config.get_namespace("TWITTER_"))
|
|
|
|
session['remote_id'] = token.remote_id
|
2017-07-25 23:05:46 +02:00
|
|
|
return redirect(url_for('index'))
|
|
|
|
|
|
|
|
@app.route('/logout')
|
|
|
|
def logout():
|
|
|
|
keys = list(session.keys())
|
|
|
|
for key in keys:
|
|
|
|
del session[key]
|
|
|
|
return redirect(url_for('index'))
|