1
0
Fork 0

Basic website framework

This commit is contained in:
Ethanell 2019-04-28 01:03:53 +02:00
parent da9cbcfec5
commit 8549c91e16
2 changed files with 74 additions and 0 deletions

6
.gitignore vendored
View file

@ -102,3 +102,9 @@ venv.bak/
# mypy
.mypy_cache/
# Atom SFTP config files
.ftp*
# Credentials files
twitter_credentials.py

68
site.py Normal file
View file

@ -0,0 +1,68 @@
from flask import Flask, request, redirect, session, render_template
import twitter_credentials, tweepy
app = Flask(__name__)
app.secret_key = "I'm a very mysterious secret key"
def is_keys(session):
try:
session["access_token"]
session["access_secret_token"]
except:
return False
else:
return True
def api_login(session):
auth = tweepy.OAuthHandler(twitter_credentials.consumer_key, twitter_credentials.consumer_secret_key)
auth.set_access_token(session["access_token"], session["access_secret_token"])
return tweepy.API(auth)
def api_valid(session):
try:
api_login(session).me()
except:
return False
else:
return True
@app.route("/tlogin")
def t_login():
auth = tweepy.OAuthHandler(twitter_credentials.consumer_key, twitter_credentials.consumer_secret_key, "https://cyberplanificateur.flifloo.fr/tlogin")
if request.args.get("oauth_token") and request.args.get("oauth_verifier"):
auth.request_token = {"oauth_token" : request.args.get("oauth_token"), "oauth_token_secret" : request.args.get("oauth_verifier")}
try:
auth.get_access_token(request.args.get("oauth_verifier"))
except:
return "Error ! Failed to get access token"
else:
session["access_token"] = auth.access_token
session["access_secret_token"] = auth.access_token_secret
return "Login !"
else:
if is_keys(session) and api_valid(session):
return "Already login !"
else:
return redirect(auth.get_authorization_url())
@app.route("/tlogout")
def t_logout():
if is_keys(session) and api_valid(session):
session.pop("access_token", None)
session.pop("access_secret_token", None)
return "Logout !"
else:
return "Not login !"
@app.route("/tpost")
def t_post():
if is_keys(session) and api_valid(session):
api = api_login(session)
api.update_status("bloup")
return "Send !"
else:
return "Not login !"
if __name__ == "__main__":
app.run(debug=True, port=5000, host="0.0.0.0")