From 661db8a92d1d755460b52db569f2e36efaf2ee39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jason=20=5B=EC=A0=9C=EC=9D=B4=EC=8A=A8=20=EC=A0=9C?=
=?UTF-8?q?=EB=A1=AC=5D?= <20238115+DuckBoss@users.noreply.github.com>
Date: Tue, 9 Jun 2020 02:42:23 -0400
Subject: [PATCH] Added !sbplaying command to sound_board plugin
- Added the !sbplaying command to the sound_board plugin so users can now see what the currently playing sound_board track is.
---
.../plugins/extensions/sound_board/help.html | 1 +
.../plugins/extensions/sound_board/metadata.ini | 1 +
.../plugins/extensions/sound_board/privileges.csv | 1 +
.../plugins/extensions/sound_board/sound_board.py | 14 +++++++++++++-
4 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/JJMumbleBot/plugins/extensions/sound_board/help.html b/JJMumbleBot/plugins/extensions/sound_board/help.html
index b1faabab..f522a011 100644
--- a/JJMumbleBot/plugins/extensions/sound_board/help.html
+++ b/JJMumbleBot/plugins/extensions/sound_board/help.html
@@ -4,6 +4,7 @@
!sbvolume '0..1': Sets the sound board audio volume.
!sblist/!sbl: Displays all the available sound board tracks in private messages.
!sblist_echo/!sble: Displays all the available sound board tracks in the channel chat.
+!sbplaying: Displays the current sound board track and the duration of the clip.
!sbstop/!sbs: Stops the currently playing sound board track.
!sbdownload 'youtube_url' 'file_name': Downloads a sound clip from a youtube link and adds it to the sound board.
!sbdelete 'file_name.wav': Deletes a clip from the sound board storage. Be sure to specify the .wav extension.
diff --git a/JJMumbleBot/plugins/extensions/sound_board/metadata.ini b/JJMumbleBot/plugins/extensions/sound_board/metadata.ini
index 63f82160..997c0f16 100644
--- a/JJMumbleBot/plugins/extensions/sound_board/metadata.ini
+++ b/JJMumbleBot/plugins/extensions/sound_board/metadata.ini
@@ -8,6 +8,7 @@ PluginCommands: [
"sbvolume",
"sblist",
"sblist_echo",
+ "sbplaying",
"sbstop",
"sbdownload",
"sbdelete",
diff --git a/JJMumbleBot/plugins/extensions/sound_board/privileges.csv b/JJMumbleBot/plugins/extensions/sound_board/privileges.csv
index 8c5d34e7..23f72ec7 100644
--- a/JJMumbleBot/plugins/extensions/sound_board/privileges.csv
+++ b/JJMumbleBot/plugins/extensions/sound_board/privileges.csv
@@ -4,6 +4,7 @@ sbvolume,3
sbrandom,3
sblist,2
sblist_echo,3
+sbplaying,2
sbstop,2
sbdownload,3
sbdelete,3
diff --git a/JJMumbleBot/plugins/extensions/sound_board/sound_board.py b/JJMumbleBot/plugins/extensions/sound_board/sound_board.py
index 7524c8d7..6fd97727 100644
--- a/JJMumbleBot/plugins/extensions/sound_board/sound_board.py
+++ b/JJMumbleBot/plugins/extensions/sound_board/sound_board.py
@@ -8,10 +8,11 @@
from JJMumbleBot.plugins.extensions.sound_board.resources.strings import *
from JJMumbleBot.plugins.extensions.sound_board.utility import sound_board_utility as sbu
from JJMumbleBot.plugins.extensions.sound_board.utility import settings as sbu_settings
+from JJMumbleBot.lib.utils.runtime_utils import get_bot_name
from JJMumbleBot.lib.utils import dir_utils
import os
import random
-from datetime import datetime
+from datetime import datetime, timedelta
from bs4 import BeautifulSoup
@@ -158,6 +159,17 @@ def process(self, text):
GS.gui_service.quick_gui(f"Deleted sound clip : {all_messages[1].strip()}", text_type='header',
box_align='left')
+ elif command == "sbplaying":
+ if not privileges.plugin_privilege_checker(text, command, self.plugin_name):
+ return
+ if GS.audio_dni[1] == self.metadata[C_PLUGIN_INFO][P_PLUGIN_NAME] and GS.audio_dni[0] is True:
+ track_duration = sbu.get_audio_length(sbu_settings.current_track)
+ rprint(f'{get_bot_name()}({self.plugin_name}) is playing: {sbu_settings.current_track} (duration: {str(timedelta(seconds = round(track_duration))) if track_duration > 0 else "Unavailable"})', origin=L_COMMAND)
+ GS.gui_service.quick_gui(
+ f'{get_bot_name()}({self.plugin_name}) is playing: {sbu_settings.current_track} (duration: {str(timedelta(seconds = round(track_duration))) if track_duration > 0 else "Unavailable"})',
+ text_type='header',
+ box_align='left')
+
elif command == "sbrandom":
if not privileges.plugin_privilege_checker(text, command, self.plugin_name):
return