Improve web interface (+ other small changes)
- Web Interface shows folders recursively - Add command line options for web interface (--wi-port, --wi-addr) - Move command line option parsing to main - Move shared code to utils.py - Fix some issues with web interface - Fix other small things
This commit is contained in:
39
interface.py
39
interface.py
@ -2,12 +2,12 @@
|
||||
|
||||
from flask import Flask, render_template, request, redirect
|
||||
import variables as var
|
||||
import util
|
||||
import os.path
|
||||
from os import listdir
|
||||
import random
|
||||
from werkzeug.utils import secure_filename
|
||||
|
||||
|
||||
class ReverseProxied(object):
|
||||
'''Wrap the application in this middleware and configure the
|
||||
front-end server to add these headers, to let you quietly bind
|
||||
@ -58,17 +58,33 @@ def init_proxy():
|
||||
@web.route("/", methods=['GET', 'POST'])
|
||||
def index():
|
||||
folder_path = var.music_folder
|
||||
files = {}
|
||||
dirs = [f for f in listdir(folder_path) if os.path.isdir(os.path.join(folder_path, f))]
|
||||
for director in dirs:
|
||||
files[director] = [f for f in listdir(folder_path + director) if os.path.isfile(os.path.join(folder_path + director, f))]
|
||||
files = util.get_recursive_filelist_sorted(var.music_folder)
|
||||
music_library = util.Dir(folder_path)
|
||||
for file in files:
|
||||
music_library.add_file(file)
|
||||
|
||||
if request.method == 'POST':
|
||||
if 'add_file' in request.form and ".." not in request.form['add_music']:
|
||||
var.playlist.append((request.form['type'], request.form['add_music']))
|
||||
if 'add_folder' in request.form and ".." not in request.form['add_folder']:
|
||||
dir_files = [("file", request.form['add_folder'] + '/' + i) for i in files[request.form['add_folder']]]
|
||||
var.playlist.extend(dir_files)
|
||||
print(request.form)
|
||||
if 'add_file' in request.form and ".." not in request.form['add_file']:
|
||||
item = ('file', request.form['add_file'])
|
||||
var.playlist.append(item)
|
||||
if ('add_folder' in request.form and ".." not in request.form['add_folder']) or ('add_folder_recursively' in request.form and ".." not in request.form['add_folder_recursively']) :
|
||||
try:
|
||||
folder = request.form['add_folder']
|
||||
except:
|
||||
folder = request.form['add_folder_recursively']
|
||||
|
||||
if not folder.endswith('/'):
|
||||
folder += '/'
|
||||
|
||||
print('folder:', folder)
|
||||
if 'add_folder_recursively' in request.form:
|
||||
files = music_library.get_files_recursively(folder)
|
||||
else:
|
||||
files = music_library.get_files(folder)
|
||||
files = list(map(lambda file: ('file', folder + '/' + file), files))
|
||||
print('Adding to playlist: ', files)
|
||||
var.playlist.extend(files)
|
||||
elif 'delete_music' in request.form:
|
||||
try:
|
||||
var.playlist.remove("file", request.form['delete_music'])
|
||||
@ -87,7 +103,8 @@ def index():
|
||||
current_music=current_music,
|
||||
user=var.user,
|
||||
playlist=var.playlist,
|
||||
all_files=files)
|
||||
all_files=files,
|
||||
music_library=music_library)
|
||||
|
||||
|
||||
@web.route('/download', methods=["POST"])
|
||||
|
Reference in New Issue
Block a user