From 74c96470722b67cdc240da8e3e75f93139afc741 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Tue, 24 Jul 2018 04:30:51 -0700 Subject: [PATCH] POST on same page when removing from playlist, so url doesn't change --- youtube/youtube.py | 18 ++++++++++-------- yt_local_playlist_template.html | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/youtube/youtube.py b/youtube/youtube.py index a9bd3c42..93b947f9 100644 --- a/youtube/youtube.py +++ b/youtube/youtube.py @@ -53,24 +53,26 @@ def youtube(env, start_response): return b'404 Not Found' elif method == "POST": + fields = urllib.parse.parse_qs(env['wsgi.input'].read().decode()) if path == "/edit_playlist": - fields = urllib.parse.parse_qs(env['wsgi.input'].read().decode()) if fields['action'][0] == 'add': local_playlist.add_to_playlist(fields['playlist_name'][0], fields['video_info_list']) start_response('204 No Content', ()) - elif fields['action'][0] == 'remove': - try: - playlist_name = fields['playlist_page'][0] - except KeyError: - playlist_name = fields['playlist_name'][0] + else: + start_response('400 Bad Request', ()) + return b'400 Bad Request' + + elif path.startswith("/playlists"): + if fields['action'][0] == 'remove': + playlist_name = path[11:] local_playlist.remove_from_playlist(playlist_name, fields['video_info_list']) start_response('200 OK', ()) return local_playlist.get_playlist_page(playlist_name).encode() + start_response('200 OK', (('Content-type','text/html'),) ) + return local_playlist.get_playlist_page(path[10:], query_string=query_string).encode() else: start_response('400 Bad Request', ()) return b'400 Bad Request' - - else: start_response('404 Not Found', ()) return b'404 Not Found' diff --git a/yt_local_playlist_template.html b/yt_local_playlist_template.html index 52836a66..d69fa48f 100644 --- a/yt_local_playlist_template.html +++ b/yt_local_playlist_template.html @@ -63,7 +63,7 @@

$title

- +
$videos