/
views.py
132 lines (106 loc) · 4 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
from flask import Flask, render_template, redirect, request, g, session, url_for, flash
from model import User
from flask.ext.login import LoginManager, login_required, login_user, current_user
from flaskext.markdown import Markdown
import config
import forms
import model
import my_rdio_search
import json
app = Flask(__name__)
app.config.from_object(config)
# Stuff to make login easier
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = "login"
@login_manager.user_loader
def load_user(user_id):
return User.query.get(user_id)
# End login stuff
# Adding markdown capability to the app
Markdown(app)
@app.route("/")
def index():
return render_template("about.html")
@app.route("/login")
def login():
return render_template("login.html")
@app.route("/login", methods=["POST"])
def authenticate():
form = forms.LoginForm(request.form)
if not form.validate():
flash("Incorrect username or password")
return render_template("login.html")
email = form.email.data
password = form.password.data
user = User.query.filter_by(email=email).first()
if not user or not user.authenticate(password):
flash("Incorrect username or password")
return render_template("login.html")
login_user(user)
return redirect(request.args.get("next", url_for("index")))
# submitted_email = request.form.get('email')
# submitted_password = request.form.get('password')
# user_id = model.login(submitted_email, submitted_password)
# if user_id:
# session['session_user_id'] = user_id
# return redirect(url_for("index"))
# else:
# flash("Username or password incorect.")
# return redirect(url_for("process_login"))
@app.route("/register")
def get_registration_info():
return render_template("register.html")
@app.route("/register", methods=["POST"])
def register_user():
submitted_email = request.form.get('email')
submitted_password = request.form.get('password')
submitted_password_verify = request.form.get('password_verify')
if model.check_for_user(submitted_email):
flash("This user already exists.")
return redirect(url_for("get_registration_info"))
elif submitted_password != submitted_password_verify:
flash("Passwords do not match")
return redirect(url_for("get_registration_info"))
else:
model.register_user(submitted_email, submitted_password, submitted_age, submitted_gender, submitted_zipcode)
flash("You've been added. Please sign-in below.")
return redirect(url_for("login"))
@app.route("/planets")
def show_planets():
return render_template("planets.html")
@app.route("/get_music_collection")
def get_music_collection():
session_music_collection = session.get('session_music_collection')
if session_music_collection:
return session_music_collection
else:
user_info = model.get_Rdio_info('fake user')
#call my_rdio_search on current user to return music collection and playlists
music_collection = my_rdio_search.get_user_collection(user_info)
session['session_music_collection'] = music_collection
return music_collection
@app.route("/get_playlists")
def get_playlists():
session_playlists = session.get('session_playlists')
if session_playlists:
return session_playlists
else:
user_info = model.get_Rdio_info('fake user')
#call my_rdio_search on current user to return music collection and playlists
playlists = my_rdio_search.get_user_playlists(user_info)
session['session_playlists'] = playlists
return playlists
@app.route("/get_token")
def get_token():
# domain = "space-james.herokuapp.com"
domain = "localhost"
user_info = model.get_Rdio_info('fake user')
token = my_rdio_search.get_user_playback_token(user_info, domain)
return token
@app.route("/clear")
def clear():
session.clear()
return redirect(url_for("index"))
if __name__ == "__main__":
app.run(debug=True)