def cmd_remind_clear(self, event): count = Reminder.delete_for_user(event.author.id) return event.msg.reply( ':ok_hand: I cleared {} reminders for you'.format(count))
def cmd_remind_clear(self, event, reminder='all'): if reminder == 'all': count = Reminder.count_for_user(event.author.id) if Reminder.count_for_user(event.author.id) == 0: return event.msg.reply('<:{}> cannot clear reminders when you don\'t have any'.format(RED_TICK_EMOJI)) msg = event.msg.reply('Ok, clear {} reminders?'.format(count)) msg.chain(False).\ add_reaction(GREEN_TICK_EMOJI).\ add_reaction(RED_TICK_EMOJI) try: mra_event = self.wait_for_event( 'MessageReactionAdd', message_id=msg.id, conditional=lambda e: ( e.emoji.id in (GREEN_TICK_EMOJI_ID, RED_TICK_EMOJI_ID) and e.user_id == event.author.id )).get(timeout=10) except gevent.Timeout: return finally: msg.delete() if mra_event.emoji.id != GREEN_TICK_EMOJI_ID: return count = Reminder.delete_all_for_user(event.author.id) return event.msg.reply(':ok_hand: I cleared {} reminders for you'.format(count)) else: try: # stupid catch because python sucks try: reminder = int(reminder) except: return event.msg.reply('cannot convert `{}` to `int`'.format(S(reminder))) r = Reminder.select(Reminder).where( (Reminder.message_id << Reminder.with_message_join((Message.id, )).where( Message.author_id == event.author.id )) & (Reminder.id == reminder) ).get() except Reminder.DoesNotExist: return event.msg.reply('<:{}> cannot find reminder #{}'.format(RED_TICK_EMOJI, reminder)) msg = event.msg.reply('Ok, clear reminder #{}?'.format(reminder)) msg.chain(False).\ add_reaction(GREEN_TICK_EMOJI).\ add_reaction(RED_TICK_EMOJI) try: mra_event = self.wait_for_event( 'MessageReactionAdd', message_id=msg.id, conditional=lambda e: ( e.emoji.id in (GREEN_TICK_EMOJI_ID, RED_TICK_EMOJI_ID) and e.user_id == event.author.id )).get(timeout=10) except gevent.Timeout: return finally: msg.delete() if mra_event.emoji.id != GREEN_TICK_EMOJI_ID: return Reminder.delete_for_user(event.author.id, r.id) return event.msg.reply(':ok_hand: I cleared reminder #{} for you'.format(r.id))
def cmd_remind_clear(self, event): count = Reminder.delete_for_user(event.author.id) raise CommandSuccess('I cleared {} reminders for you'.format(count))