fonctionnal web interface
This commit is contained in:
parent
6aca72eaee
commit
2c1e1966ba
57
interface.py
57
interface.py
@ -69,7 +69,9 @@ def index():
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
print(request.form)
|
print(request.form)
|
||||||
if 'add_file' in request.form and ".." not in request.form['add_file']:
|
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)
|
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']):
|
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)
|
files = music_library.get_files_recursively(folder)
|
||||||
else:
|
else:
|
||||||
files = music_library.get_files(folder)
|
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)
|
print('Adding to playlist: ', files)
|
||||||
var.playlist.extend(files)
|
var.playlist.extend(files)
|
||||||
|
|
||||||
elif 'add_url' in request.form:
|
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:
|
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:
|
elif 'delete_music' in request.form:
|
||||||
for item in var.playlist:
|
if len(var.playlist) >= request.form['delete_music']:
|
||||||
if str(item[2]) == request.form['delete_music']:
|
var.playlist.pop(request.form['delete_music'])
|
||||||
var.playlist.remove(item)
|
|
||||||
break
|
|
||||||
elif 'action' in request.form:
|
elif 'action' in request.form:
|
||||||
action = request.form['action']
|
action = request.form['action']
|
||||||
if action == "randomize":
|
if action == "randomize":
|
||||||
random.shuffle(var.playlist)
|
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',
|
return render_template('index.html',
|
||||||
all_files=files,
|
all_files=files,
|
||||||
current_music=current_music,
|
|
||||||
music_library=music_library,
|
music_library=music_library,
|
||||||
os=os,
|
os=os,
|
||||||
playlist=var.playlist,
|
playlist=var.playlist,
|
||||||
user=var.user)
|
user=var.user)
|
||||||
|
|
||||||
|
|
||||||
@web.route('/upload', methods=["POST"])
|
|
||||||
def upload():
|
def upload():
|
||||||
file = request.files['file']
|
file = request.files['file']
|
||||||
if not file:
|
if not file:
|
||||||
|
11
mumbleBot.py
11
mumbleBot.py
@ -393,12 +393,11 @@ class MumbleBot:
|
|||||||
ffmpeg_debug = "warning"
|
ffmpeg_debug = "warning"
|
||||||
|
|
||||||
print(var.playlist)
|
print(var.playlist)
|
||||||
command = ["ffmpeg", '-v', ffmpeg_debug, '-nostdin', '-i', uri, '-ac', '1', '-f', 's16le', '-ar', '48000', '-']
|
command = ["ffmpeg", '-v', ffmpeg_debug, '-nostdin', '-i', uri, '-ac', '1', '-f', 's16le', '-ar', '48000', '-']
|
||||||
|
|
||||||
if var.playlist[0]["type"] == "readio":
|
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', '-']
|
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.thread = sp.Popen(command, stdout=sp.PIPE, bufsize=480)
|
|
||||||
self.is_playing = True
|
self.is_playing = True
|
||||||
|
|
||||||
def download_music(self, index, next_with_playlist=False):
|
def download_music(self, index, next_with_playlist=False):
|
||||||
@ -525,7 +524,7 @@ class MumbleBot:
|
|||||||
self.mumble.users.myself.comment(var.config.get('bot', 'comment'))
|
self.mumble.users.myself.comment(var.config.get('bot', 'comment'))
|
||||||
|
|
||||||
def send_msg(self, msg, text=None):
|
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 = self.mumble.channels[self.mumble.users.myself['channel_id']]
|
||||||
own_channel.send_text_message(msg)
|
own_channel.send_text_message(msg)
|
||||||
else:
|
else:
|
||||||
|
@ -83,10 +83,10 @@
|
|||||||
|
|
||||||
<div id="playlist">
|
<div id="playlist">
|
||||||
Currently Playing :
|
Currently Playing :
|
||||||
{% if current_music %}
|
{% if playlist|length > 0 %}
|
||||||
{{ current_music[0] }} {{ current_music[1] }}
|
{{ playlist[0]['title'] }} {{ playlist[0]['user'] }}
|
||||||
{% if current_music[2] %}
|
{% if 'url' in playlist[0] %}
|
||||||
(<a href="{{ current_music[2] }}">{{ current_music[2] }}</a>)
|
(<a href="{{ playlist[0]['url'] }}">{{ playlist[0]['url'] }}</a>)
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
No music
|
No music
|
||||||
@ -96,9 +96,9 @@
|
|||||||
<form method="post"><input type="text" value="randomize" name="action" hidden><input type="submit" value="Randomize playlist"></form>
|
<form method="post"><input type="text" value="randomize" name="action" hidden><input type="submit" value="Randomize playlist"></form>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
{% for m in playlist %}
|
{% for m in playlist[1:] %}
|
||||||
<li>{{ m[1] }}
|
<li>[{{ m['type'] }}]] {{ m['title'] }} - {{ m['url'] }}
|
||||||
<form method="post"><input type="text" value="{{ m[2] }}" name="delete_music" hidden><input type="submit" value="X"></form>
|
<form method="post"><input type="text" value="{{ loop.index }}" name="delete_music" hidden><input type="submit" value="X"></form>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user