many changes
- imports timeline - checks if email address during login to ensure no errors later - make the "remember me" box do something - make the logged_in variable be your username if you are logged in, in many places - pass user posts to profile - created new post method - created timeline view - created global timeline view - created settings view - created delete post view - created reply to post view
This commit is contained in:
parent
b300999fd1
commit
cf1259a311
1 changed files with 71 additions and 9 deletions
80
Tweeder.py
80
Tweeder.py
|
@ -1,5 +1,5 @@
|
|||
from flask import Flask, render_template, request, redirect, url_for, session
|
||||
from backend import accounts
|
||||
from backend import accounts, timeline
|
||||
|
||||
app = Flask(__name__)
|
||||
app.secret_key = "eVZ4EmVK70iETb03KqDAXV5sBHb3T73t"
|
||||
|
@ -21,7 +21,9 @@ def login():
|
|||
|
||||
login_attempt = accounts.login(username, password)
|
||||
if login_attempt['status'] == 'success':
|
||||
session['username'] = username
|
||||
session['username'] = username.lower() if "@" not in username else accounts.username_for_email(username)
|
||||
if request.form['remember']:
|
||||
session.permanent = True
|
||||
return redirect(url_for('profile'))
|
||||
else:
|
||||
return render_template('login.html',
|
||||
|
@ -56,15 +58,15 @@ def register():
|
|||
@app.route('/profile/<name>', methods=['GET'])
|
||||
def profile(name=None):
|
||||
|
||||
logged_in = True if ('username' in session.keys()) else False
|
||||
logged_in = session['username'] if ('username' in session.keys()) else False
|
||||
if not logged_in and name is None:
|
||||
return redirect(url_for('index'))
|
||||
if logged_in and name is None:
|
||||
name = session['username']
|
||||
name = name.lower()
|
||||
logged_in = 'username' in session.keys()
|
||||
dname = accounts.get_display_name(name)
|
||||
return render_template('profile.html', user=accounts.account_details(name), logged_in=logged_in)
|
||||
logged_in = accounts.get_display_name(session['username']) if 'username' in session.keys() else False
|
||||
posts = list(timeline.user_posts_by_username(name))
|
||||
return render_template('profile.html', user=accounts.account_details(name), logged_in=logged_in, posts=posts)
|
||||
|
||||
|
||||
@app.route('/logout')
|
||||
|
@ -73,9 +75,69 @@ def logout():
|
|||
return redirect(url_for('login'))
|
||||
|
||||
|
||||
@app.route('/layout')
|
||||
def layout():
|
||||
return render_template('layout.html', logged_in=True)
|
||||
@app.route('/newpost', methods=['POST'])
|
||||
def new_post():
|
||||
username = session['username']
|
||||
timeline.post_status(username, request.form['status'])
|
||||
return redirect(url_for('profile'))
|
||||
|
||||
|
||||
@app.route('/timeline', methods=['GET'])
|
||||
def timeline_view():
|
||||
if 'username' in session.keys():
|
||||
logged_in = accounts.get_display_name(session['username'])
|
||||
else:
|
||||
return redirect(url_for('login'))
|
||||
posts = timeline.timeline_for_user(session['username'])
|
||||
return render_template('timeline.html', logged_in=logged_in, posts=posts)
|
||||
|
||||
|
||||
@app.route('/global', methods=['GET'])
|
||||
def global_timeline():
|
||||
logged_in = True if 'username' in session.keys() else False
|
||||
return render_template('timeline.html', logged_in=logged_in, posts=timeline.global_timeline())
|
||||
|
||||
|
||||
@app.route('/settings', methods=['GET', 'POST'])
|
||||
def user_settings():
|
||||
if request.method == "GET":
|
||||
if 'username' in session.keys():
|
||||
logged_in = True
|
||||
profile = accounts.get_profile(session['username'])
|
||||
return render_template('settings.html', logged_in=logged_in, profile=profile)
|
||||
else:
|
||||
return redirect(url_for('login'))
|
||||
elif request.method == "POST":
|
||||
if 'username' not in session.keys():
|
||||
return redirect(url_for('login'))
|
||||
profile = {
|
||||
'bio': request.form['bio'],
|
||||
'gender': request.form['gender'],
|
||||
'location': request.form['location']
|
||||
}
|
||||
username = session['username']
|
||||
accounts.update_profile(username, profile)
|
||||
return redirect(url_for('profile'))
|
||||
|
||||
|
||||
@app.route("/delete/<post_id>", methods=['GET'])
|
||||
def delete_post(post_id):
|
||||
if 'username' not in session.keys(): return redirect(url_for('login'))
|
||||
if session['username'] == timeline.post_details(post_id)['poster'].lower():
|
||||
timeline.delete_post(post_id)
|
||||
return redirect(url_for('profile'))
|
||||
else:
|
||||
return "No", 403
|
||||
|
||||
|
||||
@app.route("/reply/<post_id>", methods=['GET', "POST"])
|
||||
def reply_to_post(post_id):
|
||||
if 'username' not in session.keys(): return redirect(url_for('login'))
|
||||
logged_in = session['username'] if ('username' in session.keys()) else False
|
||||
if request.method == "GET":
|
||||
return render_template('reply.html', logged_in=logged_in, reply_to=timeline.post_details(post_id))
|
||||
elif request.method == "POST":
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Reference in a new issue