diff --git a/command.py b/command.py
index 552b404..149448f 100644
--- a/command.py
+++ b/command.py
@@ -89,6 +89,23 @@ def send_multi_lines(bot, lines, text, linebreak="
"):
bot.send_msg(msg, text)
+def send_multi_lines_in_channel(bot, lines, linebreak="
"):
+ global log
+
+ msg = ""
+ br = ""
+ for newline in lines:
+ msg += br
+ br = linebreak
+ if bot.mumble.get_max_message_length() \
+ and (len(msg) + len(newline)) > (bot.mumble.get_max_message_length() - 4): # 4 == len("
")
+ bot.send_channel_msg(msg)
+ msg = ""
+ msg += newline
+
+ bot.send_channel_msg(msg)
+
+
# ---------------- Variables -----------------
ITEMS_PER_PAGE = 50
@@ -146,7 +163,7 @@ def cmd_url_ban(bot, user, text, command, parameter):
var.cache.free_and_delete(item.id)
var.playlist.remove_by_id(item.id)
else:
- bot.send_msg(constants.strings('bad_parameter', command=command))
+ bot.send_msg(constants.strings('bad_parameter', command=command), text)
else:
bot.mumble.users[text.actor].send_text_message(constants.strings('not_admin'))
return
@@ -202,7 +219,7 @@ def cmd_pause(bot, user, text, command, parameter):
global log
bot.pause()
- bot.send_msg(constants.strings('paused'))
+ bot.send_channel_msg(constants.strings('paused'))
def cmd_play_file(bot, user, text, command, parameter, do_not_refresh_cache=False):
@@ -243,7 +260,7 @@ def cmd_play_file(bot, user, text, command, parameter, do_not_refresh_cache=Fals
var.playlist.extend(music_wrappers)
- send_multi_lines(bot, msgs, None)
+ send_multi_lines_in_channel(bot, msgs)
return
# try to do a partial match
@@ -301,7 +318,7 @@ def cmd_play_file_match(bot, user, text, command, parameter, do_not_refresh_cach
if count != 0:
msgs.append("")
var.playlist.extend(music_wrappers)
- send_multi_lines(bot, msgs, None, "")
+ send_multi_lines_in_channel(bot, msgs, "")
else:
if do_not_refresh_cache:
bot.send_msg(constants.strings("no_file"), text)
@@ -330,7 +347,7 @@ def cmd_play_url(bot, user, text, command, parameter):
# If I am the second item on the playlist. (I am the next one!)
bot.async_download_next()
else:
- bot.send_msg(constants.strings('bad_parameter', command=command))
+ bot.send_msg(constants.strings('bad_parameter', command=command), text)
def cmd_play_playlist(bot, user, text, command, parameter):
@@ -378,7 +395,7 @@ def cmd_play_radio(bot, user, text, command, parameter):
log.info("cmd: add to playlist: " + music_wrapper.format_debug_string())
bot.send_msg(constants.strings('file_added', item=music_wrapper.format_song_string()))
else:
- bot.send_msg(constants.strings('bad_url'))
+ bot.send_msg(constants.strings('bad_url'), text)
def cmd_rb_query(bot, user, text, command, parameter):
@@ -502,7 +519,7 @@ def cmd_yt_search(bot, user, text, command, parameter):
msg = _yt_format_result(yt_last_result, yt_last_page * item_per_page, item_per_page)
bot.send_msg(constants.strings('yt_result', result_table=msg), text)
else:
- bot.send_msg(constants.strings('yt_no_more'))
+ bot.send_msg(constants.strings('yt_no_more'), text)
# if query
else:
@@ -515,7 +532,7 @@ def cmd_yt_search(bot, user, text, command, parameter):
msg = _yt_format_result(results, 0, item_per_page)
bot.send_msg(constants.strings('yt_result', result_table=msg), text)
else:
- bot.send_msg(constants.strings('yt_query_error'))
+ bot.send_msg(constants.strings('yt_query_error'), text)
else:
bot.send_msg(constants.strings('bad_parameter', command=command), text)
@@ -541,7 +558,7 @@ def cmd_yt_play(bot, user, text, command, parameter):
url = "https://www.youtube.com/watch?v=" + yt_last_result[0][0]
cmd_play_url(bot, user, text, command, url)
else:
- bot.send_msg(constants.strings('yt_query_error'))
+ bot.send_msg(constants.strings('yt_query_error'), text)
else:
bot.send_msg(constants.strings('bad_parameter', command=command), text)
@@ -612,7 +629,7 @@ def cmd_volume(bot, user, text, command, parameter):
if parameter and parameter.isdigit() and 0 <= int(parameter) <= 100:
bot.volume_set = float(float(parameter) / 100)
bot.send_msg(constants.strings('change_volume',
- volume=int(bot.volume_set * 100), user=bot.mumble.users[text.actor]['name']))
+ volume=int(bot.volume_set * 100), user=bot.mumble.users[text.actor]['name']), text)
var.db.set('bot', 'volume', str(bot.volume_set))
log.info('cmd: volume set to %d' % (bot.volume_set * 100))
else:
@@ -818,7 +835,7 @@ def cmd_repeat(bot, user, text, command, parameter):
)
log.info("bot: add to playlist: " + music.format_debug_string())
- bot.send_msg(constants.strings("repeat", song=music.format_song_string(), n=str(repeat)), text)
+ bot.send_channel_msg(constants.strings("repeat", song=music.format_song_string(), n=str(repeat)))
def cmd_mode(bot, user, text, command, parameter):
@@ -859,7 +876,7 @@ def cmd_play_tags(bot, user, text, command, parameter):
if count != 0:
msgs.append("")
var.playlist.extend(music_wrappers)
- send_multi_lines(bot, msgs, None, "")
+ send_multi_lines_in_channel(bot, msgs, "")
else:
bot.send_msg(constants.strings("no_file"), text)
@@ -1011,7 +1028,7 @@ def cmd_search_library(bot, user, text, command, parameter):
music_wrapper = get_cached_wrapper(items[0], user)
var.playlist.append(music_wrapper)
log.info("cmd: add to playlist: " + music_wrapper.format_debug_string())
- bot.send_msg(constants.strings('file_added', item=music_wrapper.format_song_string()))
+ bot.send_channel_msg(constants.strings('file_added', item=music_wrapper.format_song_string()))
else:
for item in items:
count += 1
@@ -1049,7 +1066,7 @@ def cmd_shortlist(bot, user, text, command, parameter):
var.playlist.extend(music_wrappers)
msgs.append("")
- send_multi_lines(bot, msgs, None, "")
+ send_multi_lines_in_channel(bot, msgs, "")
return
try:
@@ -1077,7 +1094,7 @@ def cmd_shortlist(bot, user, text, command, parameter):
var.playlist.extend(music_wrappers)
msgs.append("")
- send_multi_lines(bot, msgs, None, "")
+ send_multi_lines_in_channel(bot, msgs, "")
return
elif len(indexes) == 1:
index = indexes[0]
@@ -1087,7 +1104,7 @@ def cmd_shortlist(bot, user, text, command, parameter):
music_wrapper = get_cached_wrapper_from_scrap(bot, **kwargs)
var.playlist.append(music_wrapper)
log.info("cmd: add to playlist: " + music_wrapper.format_debug_string())
- bot.send_msg(constants.strings('file_added', item=music_wrapper.format_song_string()))
+ bot.send_channel_msg(constants.strings('file_added', item=music_wrapper.format_song_string()))
return
bot.send_msg(constants.strings('bad_parameter', command=command), text)
@@ -1123,7 +1140,7 @@ def cmd_delete_from_library(bot, user, text, command, parameter):
return
msgs.append("")
- send_multi_lines(bot, msgs, None, "")
+ send_multi_lines_in_channel(bot, msgs, "")
return
elif len(indexes) == 1:
index = indexes[0]
diff --git a/mumbleBot.py b/mumbleBot.py
index f58c208..50a792b 100644
--- a/mumbleBot.py
+++ b/mumbleBot.py
@@ -183,7 +183,7 @@ class MumbleBot:
new_version = util.new_release_version()
if version.parse(new_version) > version.parse(self.version):
self.log.info("update: new version %s found, current installed version %s." % (new_version, self.version))
- self.send_msg(constants.strings('new_version_found'))
+ self.send_channel_msg(constants.strings('new_version_found'))
else:
self.log.debug("update: no new version found.")
@@ -305,14 +305,16 @@ class MumbleBot:
self.log.error("bot: command %s failed with error: %s\n" % (command_exc, error_traceback))
self.send_msg(constants.strings('error_executing_command', command=command_exc, error=error), text)
- def send_msg(self, msg, text=None):
+ def send_msg(self, msg, text):
msg = msg.encode('utf-8', 'ignore').decode('utf-8')
# text if the object message, contain information if direct message or channel message
- if not text:
- own_channel = self.mumble.channels[self.mumble.users.myself['channel_id']]
- own_channel.send_text_message(msg)
- else:
- self.mumble.users[text.actor].send_text_message(msg)
+ self.mumble.users[text.actor].send_text_message(msg)
+
+
+ def send_channel_msg(self, msg):
+ msg = msg.encode('utf-8', 'ignore').decode('utf-8')
+ own_channel = self.mumble.channels[self.mumble.users.myself['channel_id']]
+ own_channel.send_text_message(msg)
def is_admin(self, user):
list_admin = var.config.get('bot', 'admin').rstrip().split(';')
@@ -333,7 +335,7 @@ class MumbleBot:
if var.config.get("bot", "when_nobody_in_channel") == "pause_resume":
self.resume()
elif var.config.get("bot", "when_nobody_in_channel") == "pause":
- self.send_msg(constants.strings("auto_paused"))
+ self.send_channel_msg(constants.strings("auto_paused"))
elif len(own_channel.get_users()) == 1:
# if the bot is the only user left in the channel
@@ -359,7 +361,7 @@ class MumbleBot:
self.log.info("bot: play music " + music_wrapper.format_debug_string())
if var.config.getboolean('bot', 'announce_current_music'):
- self.send_msg(music_wrapper.format_current_playing())
+ self.send_channel_msg(music_wrapper.format_current_playing())
if var.config.getboolean('debug', 'ffmpeg'):
ffmpeg_debug = "debug"
@@ -450,7 +452,7 @@ class MumbleBot:
self.log.error("bot: with ffmpeg error: %s", self.last_ffmpeg_err)
self.last_ffmpeg_err = ""
- self.send_msg(constants.strings('unable_play', item=current.format_title()))
+ self.send_channel_msg(constants.strings('unable_play', item=current.format_title()))
var.playlist.remove_by_id(current.id)
var.cache.free_and_delete(current.id)
@@ -462,7 +464,7 @@ class MumbleBot:
if not current.is_ready():
self.log.info("bot: current music isn't ready, start downloading.")
var.playlist.async_prepare(var.playlist.current_index)
- self.send_msg(constants.strings('download_in_progress', item=current.format_title()))
+ self.send_channel_msg(constants.strings('download_in_progress', item=current.format_title()))
self.wait_for_ready = True
else:
var.playlist.remove_by_id(current.id)
@@ -589,7 +591,7 @@ class MumbleBot:
uri, '-ac', '1', '-f', 's16le', '-ar', '48000', '-')
if var.config.getboolean('bot', 'announce_current_music'):
- self.send_msg(var.playlist.current_item().format_current_playing())
+ self.send_channel_msg(var.playlist.current_item().format_current_playing())
self.log.info("bot: execute ffmpeg command: " + " ".join(command))
# The ffmpeg process is a thread
diff --git a/templates/index.html b/templates/index.html
index 955e5db..155ae97 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -496,7 +496,7 @@
200 : function(data) {
if (data.ver !== playlist_ver) {
playlist_ver = data.ver;
- updatePlaylist();
+ checkForPlaylistUpdate();
}
updateControls(data.empty, data.play, data.mode);
}
@@ -601,9 +601,9 @@
expand_copy.addClass('playlist-item');
expand_copy.appendTo(playlist_table);
expand_copy.click(function(){
- updatePlaylist();
playlist_range_from = real_from;
playlist_range_to = real_to;
+ checkForPlaylistUpdate();
});
expand_copy.show();
}
@@ -983,7 +983,7 @@
data: data
});
- updatePlaylist();
+ checkForPlaylistUpdate();
}
function deleteAllResults(){
@@ -998,7 +998,7 @@
data: data
});
- updatePlaylist();
+ checkForPlaylistUpdate();
updateResults();
}