Skip to content

Commit

Permalink
Add the ability to use a custom status
Browse files Browse the repository at this point in the history
Closes Just-Some-Bots#1426. Also somewhat fixes Just-Some-Bots#1360, though updating d.py probably already did that.
  • Loading branch information
jayktaylor committed Dec 23, 2017
1 parent 79f63d1 commit 15dfb49
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
4 changes: 4 additions & 0 deletions config/example_options.ini
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,7 @@ PersistentQueue = yes
; verbose than DEBUG, and should probably only be used for debugging:
; VOICEDEBUG, FFMPEG, NOISY, EVERYTHING
DebugLevel = INFO

; Specify a custom message to use as the bot's status. If left empty, the bot
; will display dynamic info about music currently being played in its status instead.
StatusMessage =
29 changes: 17 additions & 12 deletions musicbot/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -697,21 +697,24 @@ async def on_player_error(self, player, entry, ex, **_):
async def update_now_playing_status(self, entry=None, is_paused=False):
game = None

if self.user.bot:
activeplayers = sum(1 for p in self.players.values() if p.is_playing)
if activeplayers > 1:
game = discord.Game(name="music on %s servers" % activeplayers)
entry = None
if not self.config.status_message:
if self.user.bot:
activeplayers = sum(1 for p in self.players.values() if p.is_playing)
if activeplayers > 1:
game = discord.Game(type=0, name="music on %s servers" % activeplayers)
entry = None

elif activeplayers == 1:
player = discord.utils.get(self.players.values(), is_playing=True)
entry = player.current_entry
elif activeplayers == 1:
player = discord.utils.get(self.players.values(), is_playing=True)
entry = player.current_entry

if entry:
prefix = u'\u275A\u275A ' if is_paused else ''
if entry:
prefix = u'\u275A\u275A ' if is_paused else ''

name = u'{}{}'.format(prefix, entry.title)[:128]
game = discord.Game(name=name)
name = u'{}{}'.format(prefix, entry.title)[:128]
game = discord.Game(type=0, name=name)
else:
game = discord.Game(type=0, name=self.config.status_message.strip()[:128])

async with self.aiolocks[_func_()]:
if game != self.last_status:
Expand Down Expand Up @@ -1117,6 +1120,8 @@ async def on_ready(self):
log.info(" Downloaded songs will be " + ['deleted', 'saved'][self.config.save_videos])
print(flush=True)

await self.update_now_playing_status()

# maybe option to leave the ownerid blank and generate a random command for the owner to use
# wait_for_message is pretty neato

Expand Down
2 changes: 2 additions & 0 deletions musicbot/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ def __init__(self, config_file):
self.delete_messages = config.getboolean('MusicBot', 'DeleteMessages', fallback=ConfigDefaults.delete_messages)
self.delete_invoking = config.getboolean('MusicBot', 'DeleteInvoking', fallback=ConfigDefaults.delete_invoking)
self.persistent_queue = config.getboolean('MusicBot', 'PersistentQueue', fallback=ConfigDefaults.persistent_queue)
self.status_message = config.get('MusicBot', 'StatusMessage', fallback=ConfigDefaults.status_message)

self.debug_level = config.get('MusicBot', 'DebugLevel', fallback=ConfigDefaults.debug_level)
self.debug_level_str = self.debug_level
Expand Down Expand Up @@ -280,6 +281,7 @@ class ConfigDefaults:
delete_invoking = False
persistent_queue = True
debug_level = 'INFO'
status_message = None

options_file = 'config/options.ini'
blacklist_file = 'config/blacklist.txt'
Expand Down

0 comments on commit 15dfb49

Please sign in to comment.