| @@ -220,17 +220,20 @@ class Remind(Command): | |||||
| def _show_reminders(self, data, user): | def _show_reminders(self, data, user): | ||||
| """Show all of a user's current reminders.""" | """Show all of a user's current reminders.""" | ||||
| if user not in self.reminders: | |||||
| self.reply(data, "You have no reminders. Set one with " | |||||
| "\x0306!remind [time] [message]\x0F. See also: " | |||||
| "\x0306!remind help\x0F.") | |||||
| return | |||||
| shorten = lambda s: (s[:37] + "..." if len(s) > 40 else s) | shorten = lambda s: (s[:37] + "..." if len(s) > 40 else s) | ||||
| fmt = lambda robj: '\x0303{0}\x0F ("{1}", {2})'.format( | |||||
| robj.id, shorten(robj.message), robj.end_time) | |||||
| dest = lambda data: ( | |||||
| "privately" if data.is_private else "in {0}".format(data.chan)) | |||||
| fmt = lambda robj: '\x0303{0}\x0F ("{1}" {2}, {3})'.format( | |||||
| robj.id, shorten(robj.message), dest(robj.data), robj.end_time) | |||||
| if user in self.reminders: | |||||
| rlist = ", ".join(fmt(robj) for robj in self.reminders[user]) | |||||
| msg = "Your reminders: {0}.".format(rlist) | |||||
| else: | |||||
| msg = ("You have no reminders. Set one with \x0306!remind [time] " | |||||
| "[message]\x0F. See also: \x0306!remind help\x0F.") | |||||
| self.reply(data, msg) | |||||
| rlist = ", ".join(fmt(robj) for robj in self.reminders[user]) | |||||
| self.reply(data, "Your reminders: {0}.".format(rlist)) | |||||
| def _show_all_reminders(self, data): | def _show_all_reminders(self, data): | ||||
| """Show all reminders to bot admins.""" | """Show all reminders to bot admins.""" | ||||
| @@ -243,14 +246,14 @@ class Remind(Command): | |||||
| self.reply(data, "There are no active reminders.") | self.reply(data, "There are no active reminders.") | ||||
| return | return | ||||
| shorten = lambda s: (s[:37] + "..." if len(s) > 40 else s) | |||||
| fmt = lambda robj, user: '\x0303{0}\x0F ("{1}" for {2}, {3})'.format( | |||||
| robj.id, shorten(robj.message), user, robj.end_time) | |||||
| dest = lambda data: ( | |||||
| "privately" if data.is_private else "in {0}".format(data.chan)) | |||||
| fmt = lambda robj, user: '\x0303{0}\x0F (for {1} {2}, {3})'.format( | |||||
| robj.id, user, dest(robj.data), robj.end_time) | |||||
| rlist = (fmt(rem, user) for user, rems in self.reminders.iteritems() | rlist = (fmt(rem, user) for user, rems in self.reminders.iteritems() | ||||
| for rem in rems) | for rem in rems) | ||||
| msg = "All reminders: {0}.".format(", ".join(rlist)) | |||||
| self.reply(data, msg) | |||||
| self.reply(data, "All reminders: {0}.".format(", ".join(rlist))) | |||||
| def _process_snooze_command(self, data, user): | def _process_snooze_command(self, data, user): | ||||
| """Process the !snooze command.""" | """Process the !snooze command.""" | ||||
| @@ -421,6 +424,11 @@ class _Reminder(object): | |||||
| self._cmdobj.unstore_reminder(self.id) | self._cmdobj.unstore_reminder(self.id) | ||||
| @property | @property | ||||
| def data(self): | |||||
| """Return the IRC data object associated with this reminder.""" | |||||
| return self._data | |||||
| @property | |||||
| def end_time(self): | def end_time(self): | ||||
| """Return a string representing the end time of a reminder.""" | """Return a string representing the end time of a reminder.""" | ||||
| if self.end >= time.time(): | if self.end >= time.time(): | ||||