async def cmd_edit_timer(msg: Message, *args): if len(args) < 3: raise InvalidArgumentsError(reason='missing required arguments', cmd=cmd_edit_timer) name = args[0].lower() timer = get_message_timer(msg.channel_name, name) if not timer: raise InvalidArgumentsError(reason=f'no timer was found by "{name}"', cmd=cmd_edit_timer) mode = args[1].lower() if mode not in ('msg', 'interval'): raise InvalidArgumentsError(reason='invalid option, must be `msg` or `interval`', cmd=cmd_edit_timer) if mode == 'interval': try: interval = int(args[2]) except ValueError: raise InvalidArgumentsError(reason='interval must be a valid integer, ex: 10', cmd=cmd_edit_timer) set_message_timer_interval(msg.channel_name, name, interval) restart_message_timer(msg.channel_name, name) return await msg.reply(f'updated timer interval for "{name}"') elif mode == 'msg': value = ' '.join(args[2:]) set_message_timer_message(msg.channel_name, name, value) restart_message_timer(msg.channel_name, name) return await msg.reply(f'updated timer message for "{name}"')
async def cmd_edit_timer(msg: Message, *args): if len(args) < 3: raise InvalidArgumentsException() name = args[0].lower() timer = get_message_timer(msg.channel_name, name) if not timer: return await msg.reply(f'no timer was found by "{name}"') mode = args[1].lower() if mode not in ('msg', 'interval'): raise InvalidArgumentsException() if mode == 'interval': try: interval = int(args[2]) except ValueError: raise InvalidArgumentsException() set_message_timer_interval(msg.channel_name, name, interval) restart_message_timer(msg.channel_name, name) return await msg.reply(f'updated timer interval for "{name}"') elif mode == 'msg': value = ' '.join(args[2:]) set_message_timer_message(msg.channel_name, name, value) restart_message_timer(msg.channel_name, name) return await msg.reply(f'updated timer message for "{name}"')
async def cmd_del_timer(msg: Message, *args): if not args: raise InvalidArgumentsError(reason='missing required argument', cmd=cmd_del_timer) name = args[0].lower() timer = get_message_timer(msg.channel_name, name) if not timer: raise InvalidArgumentsError(reason=f'no timer was found by "{name}"', cmd=cmd_del_timer) if delete_message_timer(msg.channel_name, name): await msg.reply(f'successfully deleted timer "{name}"') else: await msg.reply(f'failed to delete timer "{name}"')
async def cmd_del_timer(msg: Message, *args): if not args: raise InvalidArgumentsException() name = args[0] timer = get_message_timer(msg.channel_name, name) if not timer: await msg.reply(f'no timer was found by "{name}"') if delete_message_timer(msg.channel_name, name): await msg.reply(f'successfully deleted timer "{name}"') else: await msg.reply(f'failed to delete timer "{name}"')
async def cmd_stop_timer(msg: Message, *args): if not args: raise InvalidArgumentsError(reason='missing required argument', cmd=cmd_stop_timer) name = args[0].lower() timer = get_message_timer(msg.channel_name, name) if not timer: raise InvalidArgumentsError(reason=f'no timer was found by "{name}"', cmd=cmd_stop_timer) if not timer.running: await msg.reply(f'that timer is not running') return if set_message_timer_active(msg.channel_name, name, False): await msg.reply(f'successfully stopped the timer "{name}"') else: await msg.reply(f'failed to stop the timer "{name}"')
async def cmd_start_timer(msg: Message, *args): if not args: raise InvalidArgumentsException() name = args[0] timer = get_message_timer(msg.channel_name, name) if not timer: await msg.reply(f'no timer was found by "{name}"') return if not timer.running: await msg.reply(f'that timer is not running') return if set_message_timer_active(msg.channel_name, name, False): await msg.reply(f'successfully stopped the timer "{name}"') else: await msg.reply(f'failed to stop the timer "{name}"')