def site_news():
return render_template("news.html")
+@app.post("/create-playlist")
+def create_playlist():
+ if not "userid" in session:
+ return redirect("/login")
+
+ name = request.form["name"]
+ if not name:
+ flash_and_log("Playlist must have a name", "error")
+ return redirect(request.referrer)
+
+ timestamp = datetime.now(timezone.utc).isoformat()
+
+ private = request.form["type"] == "private"
+
+ query_db(
+ "insert into playlists (created, updated, userid, name, private) values (?, ?, ?, ?, ?)",
+ args=[
+ timestamp,
+ timestamp,
+ session["userid"],
+ name,
+ private,
+ ]
+ )
+
+@app.post("/delete-playlist/<int:playlistid>")
+def delete_playlist(playlistid):
+ query_db("delete from playlists where playlistid = ?", args=[playlistid])
+
+@app.get("/edit-playlist")
+def edit_playlist_get():
+ abort(404)
+
+@app.post("/edit-playlist")
+def edit_playlist_post():
+ abort(404)
+
+@app.get("/playlists/<int:playlistid>")
+def playlists(playlistid):
+ abort(404)
+
def flash_and_log(msg, category=None):
flash(msg, category)
username = session["username"] if "username" in session else "N/A"
username TEXT UNIQUE NOT NULL,
password BLOB NOT NULL,
bio TEXT,
- activitytime TEXT
+ activitytime TEXT,
+ bgcolor TEXT,
+ fgcolor TEXT,
+ accolor TEXT,
);
CREATE INDEX users_by_name ON users(username);
);
CREATE INDEX idx_song_comment_notifications_by_target ON song_comment_notifications(targetuserid);
-PRAGMA user_version = 1;
+PRAGMA user_version = 2;
-ALTER TABLE users ADD COLUMN bgcolor TEXT;
-ALTER TABLE users ADD COLUMN fgcolor TEXT;
-ALTER TABLE users ADD COLUMN accolor TEXT;
+CREATE TABLE playlists (
+ playlistid INTEGER PRIMARY KEY,
+ created TEXT NOT NULL,
+ updated TEXT NOT NULL,
+ userid INTEGER NOT NULL,
+ name TEXT NOT NULL,
+ private INTEGER NOT NULL,
-PRAGMA user_version = 2;
+ FOREIGN KEY(userid) REFERENCES users(userid)
+);
+
+CREATE TABLE playlist_songs (
+ playlistid INTEGER NOT NULL,
+ position INTEGER NOT NULL,
+ songid INTEGER NOT NULL,
+
+ PRIMARY KEY(playlistid, position),
+ FOREIGN KEY(playlistid) REFERENCES playlists(playlistid),
+ FOREIGN KEY(songid) REFERENCES songs(songid)
+);
+CREATE INDEX playlist_songs_by_playlist ON playlist_songs(playlistid);
+
+PRAGMA user_version = 3;