)
if idle:
for voice in list(client.voice_clients):
- await voice.disconnect()
+ if voice.is_connected():
+ try:
+ await voice.disconnect()
+ except:
+ pass
async def set_activity(activity = None):
await client.change_presence(activity = activity)
-async def wake_up(force = False, activity = None):
- set('last_spoke', time.time())
+async def wake_up(force = False, activity = None, last_spoke = None):
+ set('last_spoke', last_spoke or time.time())
if force or status() != discord.Status.online:
log.info('Waking up...')
await set_avatar(db.ONLINE_AVATAR)
elif activity:
await set_idle(False, activity = activity)
-async def zzz():
+async def zzz(force = False):
# state = db.get_state(client)
# if state is None:
# change = status() != discord.Status.idle
# else:
# change = state['avatar'] != db.IDLE_AVATAR or not state['idle']
# if change:
- if status() != discord.Status.idle:
+ if force or status() != discord.Status.idle:
log.info('Sleeping...')
await set_avatar(db.IDLE_AVATAR)
await set_idle(True)