Merge pull request #2 from BafDyce/fix-now-playing

Fix "now playing" feature
This commit is contained in:
Fabian Würfl 2018-05-21 00:01:12 +02:00 committed by GitHub
commit f557ca9a14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 12 deletions

View File

@ -8,6 +8,7 @@ from os import listdir
import random import random
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
import errno import errno
import media
class ReverseProxied(object): class ReverseProxied(object):
'''Wrap the application in this middleware and configure the '''Wrap the application in this middleware and configure the
@ -96,7 +97,25 @@ def index():
if action == "randomize": if action == "randomize":
random.shuffle(var.playlist) random.shuffle(var.playlist)
if var.current_music: if var.current_music:
current_music = var.current_music[len(var.music_folder):] source = var.current_music[0]
if source == "radio":
current_music = "[radio] {title} sur {url}".format(
title=media.get_radio_title(var.current_music[1]),
url=var.current_music[2]
)
elif source == "url":
current_music = "[url] {title} (<a href=\"{url}\">{url}</a>)".format(
title=var.current_music[2],
url=var.current_music[1]
)
elif source == "file":
current_music = "[file] {title}".format(title=var.current_music[2])
else:
current_music = "(?)[{}] {} {}".format(
var.current_music[0],
var.current_music[1],
var.current_music[2],
)
else: else:
current_music = None current_music = None

View File

@ -160,16 +160,33 @@ class MumbleBot:
self.send_msg_channel(self.config.get('strings', 'current_volume') % int(self.volume * 100)) self.send_msg_channel(self.config.get('strings', 'current_volume') % int(self.volume * 100))
elif command == self.config.get('command', 'current_music'): elif command == self.config.get('command', 'current_music'):
if var.current_music is not None: if var.current_music:
if var.current_music[0] == "radio": source = var.current_music[0]
self.send_msg_channel(media.get_radio_title(var.current_music[1]) + " sur " + var.current_music[2]) if source == "radio":
reply = "[radio] {title} sur {url}".format(
title=media.get_radio_title(var.current_music[1]),
url=var.current_music[2]
)
elif source == "url":
reply = "[url] {title} (<a href=\"{url}\">{url}</a>)".format(
title=var.current_music[2],
url=var.current_music[1]
)
elif source == "file":
reply = "[file] {title}".format(title=var.current_music[2])
else: else:
self.send_msg_channel(var.current_music[2] + "<br />" + var.current_music[1]) reply = "(?)[{}] {} {}".format(
var.current_music[0],
var.current_music[1],
var.current_music[2],
)
else: else:
self.mumble.users[text.actor].send_message(self.config.get('strings', 'not_playing')) reply = self.config.get('strings', 'not_playing')
self.mumble.users[text.actor].send_message(reply)
elif command == self.config.get('command', 'next'): elif command == self.config.get('command', 'next'):
var.current_music = var.playlist[0] var.current_music = [var.playlist[0][0], var.playlist[0][1], None, None]
var.playlist.pop(0) var.playlist.pop(0)
self.launch_next() self.launch_next()
elif command == self.config.get('command', 'list'): elif command == self.config.get('command', 'list'):
@ -240,8 +257,8 @@ class MumbleBot:
command = ["ffmpeg", '-v', ffmpeg_debug, '-nostdin', '-i', path, '-ac', '1', '-f', 's16le', '-ar', '48000', '-'] command = ["ffmpeg", '-v', ffmpeg_debug, '-nostdin', '-i', path, '-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)
#var.current_music[2] = title var.current_music[2] = title
#var.current_music[3] = path var.current_music[3] = path
def download_music(self, url): def download_music(self, url):
url_hash = hashlib.md5(url.encode()).hexdigest() url_hash = hashlib.md5(url.encode()).hexdigest()
@ -285,7 +302,7 @@ class MumbleBot:
time.sleep(0.1) time.sleep(0.1)
if (self.thread is None or not raw_music) and len(var.playlist) != 0: if (self.thread is None or not raw_music) and len(var.playlist) != 0:
var.current_music = var.playlist[0] var.current_music = [var.playlist[0][0], var.playlist[0][1], None, None]
var.playlist.pop(0) var.playlist.pop(0)
self.launch_next() self.launch_next()

View File

@ -75,9 +75,9 @@
<br /> <br />
<div id="playlist"> <div id="playlist">
Current Playing : Currently Playing :
{% if current_music %} {% if current_music %}
{{ current_music }} {{ current_music|safe }}
{% else %} {% else %}
No music No music
{% endif %} {% endif %}