diff --git a/Tweeder.py b/Tweeder.py index fa7f4d8..cfe5f7e 100644 --- a/Tweeder.py +++ b/Tweeder.py @@ -66,7 +66,7 @@ def profile(name=None): name = name.lower() 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) + return render_template('profile.html', user=accounts.account_details(name), logged_in=logged_in, following=accounts.is_following(logged_in, name), posts=posts) @app.route('/logout') @@ -140,6 +140,26 @@ def reply_to_post(post_id): timeline.post_status(logged_in, request.form['status'], replyTo=post_id) return redirect(url_for('profile')) +@app.route("/follow/", methods=["GET", "POST"]) +def follow(user): + if 'username' not in session.keys(): return redirect(url_for('login')) + logged_in = session['username'] + if request.method == "POST": + accounts.follow(logged_in, user) + return redirect(str("/profile/" + user)) + else: + pass + +@app.route("/unfollow/", methods=["GET", "POST"]) +def unfollow(user): + if 'username' not in session.keys(): return redirect(url_for('login')) + logged_in = session['username'] + if request.method == "POST": + accounts.unfollow(logged_in, user) + return redirect(str("/profile/" + user)) + else: + pass + if __name__ == '__main__': app.run(debug=True) diff --git a/backend/accounts.py b/backend/accounts.py index 0835f2d..a82fda5 100644 --- a/backend/accounts.py +++ b/backend/accounts.py @@ -12,6 +12,8 @@ def get_display_name(username): def is_verified(username): return accounts_db.find_one({'username': username})['verified'] +def is_following(follower, following): + return bool( accounts_db.find_one({'username': following.lower()})['_id'] in accounts_db.find_one({'username': follower.lower()})['following'] ) def account_exists(username): return bool(accounts_db.find_one({'username': username})) diff --git a/templates/profile.html b/templates/profile.html index 55f934b..d191545 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -15,13 +15,16 @@
-
-

{{ user.displayname }}'s profile

-
- {% if user.profile.location %} {{ user.profile.location }}
{% endif %} - {% if user.profile.gender %} {{ user.profile.gender }} {% endif %} -
+
+
+

{{ user.displayname }}' Profile

+ {% if following %}
{% else %}
{% endif %} +
+
+ {% if user.profile.location %} {{ user.profile.location }}
{% endif %} + {% if user.profile.gender %} {{ user.profile.gender }} {% endif %}
+
{% if posts %} @@ -39,4 +42,4 @@
-{% endblock %} \ No newline at end of file +{% endblock %}