ventilaar
/
twitter_zuil
Archived
1
Fork 0

zuil_web.py petty much af

This commit is contained in:
ventilaar 2020-11-03 10:16:55 +01:00
parent ca26664d29
commit d2339b23c2
3 changed files with 52 additions and 13 deletions

View File

@ -20,9 +20,10 @@ cur = database_connector.cur
"""
stel flask in
stel flask in en twitter api in
"""
app = Flask(__name__)
twitter_API = TwitterAPI(TWITTER_APIKEY, TWITTER_APISECRET, TWITTER_ACCESSTOKEN, TWITTER_ACCESSSECRET)
"""
als debug op true is een vaste secret key gebruiken, dit is zodat we niet elke keer in hoefen te loggen na een
@ -220,11 +221,29 @@ def func_messagereject(berichtid):
ontvangt berichtid en publiceert het naar twitter blah blah verder noteren later
"""
def func_publish_twitter(berichtid):
return True
cur.execute('SELECT berichten.berichtid, berichten.bericht, berichten.naamposter, locaties.naam '
'FROM berichten '
'LEFT OUTER JOIN locaties ON berichten.locatieid = locaties.locatieid '
'WHERE berichtid = (%s)', [berichtid])
bericht = cur.fetchone()
formatted = str(bericht[1] + ' | Door ' + bericht[2] + ' op ' + bericht[3])
response = twitter_API.request('statuses/update', {'status': formatted})
jsonresponse = response.json()
if response.status_code == 200:
QUERY = 'INSERT INTO twitterberichten(twitterid, datumpublished) VALUES (%s, %s)'
DATA = (jsonresponse['id'], jsonresponse['created_at'])
cur.execute(QUERY, DATA)
QUERY = 'UPDATE berichten SET twitterid = (%s) WHERE berichtid = (%s)'
DATA = (jsonresponse['id'], berichtid)
cur.execute(QUERY, DATA)
conn.commit()
return True
else:
return False
"""
@ -362,9 +381,15 @@ def autoqueue():
def autoqueue_accept():
if 'username' in session:
if func_messageaccept(request.form['good']):
if func_publish_twitter(request.form['good']):
return redirect(url_for('autoqueue'))
else:
flash('Probleem met het publiceren op twitter')
return redirect(url_for('autoqueue'))
else:
flash('Probleem met het opslaan van de moderatie')
return redirect(url_for('autoqueue'))
else:
flash('You are not logged in!')
return redirect(url_for('login'))
@ -375,6 +400,7 @@ def autoqueue_reject():
if func_messagereject(request.form['bad']):
return redirect(url_for('autoqueue'))
else:
flash('Probleem met het opslaan van de moderatie')
return redirect(url_for('autoqueue'))
else:
flash('You are not logged in!')

View File

@ -2,18 +2,30 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ locatie[1] }}</title>
<title>NS zuil</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"/>
</head>
<body>
{% if dank == True %}
<meta http-equiv="refresh" content="5; url=/">
<p>Bedankt voor uw feedback</p>
{% elif datafout == True %}
<meta http-equiv="refresh" content="5; url=/">
<p>Probleem met het invoeren in de database</p>
{% elif invoerfout == True %}
<meta http-equiv="refresh" content="5; url=/">
<p>Uw bericht mag moet minimaal 16 en maximaal 140 characters bevatten</p>
<p>En uw naam moet minimaal 3 en maximaal 32 characters bevatten</p>
{% else %}
<h1>Welkom op {{ locatie[1] }}</h1>
{% include 'flash_template.html' %}
<p>Heeft u feedback voor ons?</p>
<form method="POST" action="/zuil/post">
<input type="text" placeholder="Wat is uw feedback" name="bericht" required>
<input type="text" placeholder="Wat is uw naam" name="naam" required>
<input type="text" placeholder="Wat is uw naam" name="naam" value="Anoniem" required>
<button type="submit">Verstuur</button>
</form>
<p>Feedback wordt openbaar gemaakt op Twitter na goedkeuring</p>
{% endif %}
</body>
</html>

View File

@ -39,7 +39,7 @@ def func_getlocaties(locatieid):
cur.execute('SELECT * FROM locaties WHERE locatieid = (%s)', [locatieid])
return cur.fetchall()[0]
def func_invoerdatabase(bericht, naamposter, locatieid):
def func_invoerdatabase(bericht, naamposter):
date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
try:
QUERY = 'INSERT INTO berichten(bericht, datumontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s)'
@ -61,6 +61,7 @@ def func_checkinvoer(bericht, naamposter):
elif len(naamposter) < 3:
return False
return True
@ -72,17 +73,17 @@ def root():
@app.route('/zuil')
def zuil():
return render_template('zuil.html', locatie=func_getlocaties(locatieid))
return render_template('zuil.html', locatie=func_getlocaties(locatieid), dank=False, datafout=False, invoerfout=False)
@app.route('/zuil/post', methods=['POST'])
def zuil_post():
flash('We hebben uw bericht ontvangen')
return redirect(url_for('zuil'))
if func_checkinvoer(request.form['bericht'], request.form['naam']):
if func_invoerdatabase(request.form['bericht'], request.form['naam']):
return render_template('zuil.html', dank=True, datafout=False, invoerfout=False)
else:
return render_template('zuil.html', dank=False, datafout=True, invoerfout=False)
else:
return render_template('zuil.html', dank=False, datafout=False, invoerfout=True)
if __name__ == "__main__":