fonctionnal web interface

This commit is contained in:
Azlux 2018-11-17 17:17:40 +01:00
parent 6aca72eaee
commit 2c1e1966ba
3 changed files with 29 additions and 55 deletions

View File

@ -69,7 +69,9 @@ def index():
if request.method == 'POST':
print(request.form)
if 'add_file' in request.form and ".." not in request.form['add_file']:
item = ('file', request.form['add_file'], 'Web')
item = {'type': 'file',
'path' : request.form['add_file'],
'user' : 'Web'}
var.playlist.append(item)
elif ('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']):
@ -86,67 +88,40 @@ def index():
files = music_library.get_files_recursively(folder)
else:
files = music_library.get_files(folder)
files = list(map(lambda file: ('file', os.path.join(folder, file), 'Web'), files))
files = list(map(lambda file: {'type':'file','path': os.path.join(folder, file), 'user':'Web'}, files))
print('Adding to playlist: ', files)
var.playlist.extend(files)
elif 'add_url' in request.form:
var.playlist.append(['url', request.form['add_url'], "Web"])
var.playlist.append({'type':'url',
'url': request.form['add_url'],
'user': 'Web',
'ready': 'validation'})
media.url.get_url_info()
var.playlist[-1]['ready'] = "no"
elif 'add_radio' in request.form:
var.playlist.append(['radio', request.form['add_radio'], "Web"])
var.playlist.append({'type': 'radio',
'path': request.form['add_radio'],
'user': "Web"})
elif 'delete_music' in request.form:
for item in var.playlist:
if str(item[2]) == request.form['delete_music']:
var.playlist.remove(item)
break
if len(var.playlist) >= request.form['delete_music']:
var.playlist.pop(request.form['delete_music'])
elif 'action' in request.form:
action = request.form['action']
if action == "randomize":
random.shuffle(var.playlist)
if var.current_music:
source = var.current_music['type']
# format for current_music below:
# (sourcetype, title, url or None)
if source == "radio":
current_music = (
"[radio]",
media.get_radio_title(var.current_music['path']),
var.current_music['title']
)
elif source == "url":
current_music = (
"[url]",
var.current_music['title'],
var.current_music['path']
)
elif source == "file":
current_music = (
"[file]",
var.current_music['title'],
None
)
else:
current_music = (
"(??)[" + var.current_music['type'] + "]",
var.current_music['path'],
var.current_music['title'],
)
else:
current_music = None
return render_template('index.html',
all_files=files,
current_music=current_music,
music_library=music_library,
os=os,
playlist=var.playlist,
user=var.user)
@web.route('/upload', methods=["POST"])
def upload():
file = request.files['file']
if not file:

View File

@ -397,7 +397,6 @@ class MumbleBot:
if var.playlist[0]["type"] == "readio":
command = ["ffmpeg", '-v', ffmpeg_debug,'-reconnect', '1', '-reconnect_at_eof', '1', '-reconnect_streamed', '1', '-reconnect_delay_max', '4294', '-nostdin', '-i', uri, '-ac', '1', '-f', 's16le', '-ar', '48000', '-']
self.thread = sp.Popen(command, stdout=sp.PIPE, bufsize=480)
self.is_playing = True
@ -525,7 +524,7 @@ class MumbleBot:
self.mumble.users.myself.comment(var.config.get('bot', 'comment'))
def send_msg(self, msg, text=None):
if not text.session:
if not text or not text.session:
own_channel = self.mumble.channels[self.mumble.users.myself['channel_id']]
own_channel.send_text_message(msg)
else:

View File

@ -83,10 +83,10 @@
<div id="playlist">
Currently Playing :
{% if current_music %}
{{ current_music[0] }} {{ current_music[1] }}
{% if current_music[2] %}
(<a href="{{ current_music[2] }}">{{ current_music[2] }}</a>)
{% if playlist|length > 0 %}
{{ playlist[0]['title'] }} {{ playlist[0]['user'] }}
{% if 'url' in playlist[0] %}
(<a href="{{ playlist[0]['url'] }}">{{ playlist[0]['url'] }}</a>)
{% endif %}
{% else %}
No music
@ -96,9 +96,9 @@
<form method="post"><input type="text" value="randomize" name="action" hidden><input type="submit" value="Randomize playlist"></form>
<ul>
{% for m in playlist %}
<li>{{ m[1] }}
<form method="post"><input type="text" value="{{ m[2] }}" name="delete_music" hidden><input type="submit" value="X"></form>
{% for m in playlist[1:] %}
<li>[{{ m['type'] }}]] {{ m['title'] }} - {{ m['url'] }}
<form method="post"><input type="text" value="{{ loop.index }}" name="delete_music" hidden><input type="submit" value="X"></form>
</li>
{% endfor %}
</ul>