diff --git a/BUGS b/BUGS index 61d6087..1a6279b 100644 --- a/BUGS +++ b/BUGS @@ -1,6 +1,5 @@ dr.botzo --- BUGS - * Countdown formatting has singular nouns for negative numbers (-21 day) * probably many, many more * possible to have not well-formed XML in pywapi.get_weather_from_google: xml.parsers.expat.ExpatError: not well-formed (invalid token) diff --git a/dr_botzo/countdown/ircplugin.py b/dr_botzo/countdown/ircplugin.py index 7890209..d2a106c 100644 --- a/dr_botzo/countdown/ircplugin.py +++ b/dr_botzo/countdown/ircplugin.py @@ -48,17 +48,17 @@ class Countdown(Plugin): rdelta = relativedelta(item.at_time, timezone.now()) relstr = "{0:s} will occur in ".format(name) if rdelta.years != 0: - relstr += "{0:s} year{1:s} ".format(str(rdelta.years), "s" if rdelta.years != 1 else "") + relstr += "{0:s} year{1:s} ".format(str(rdelta.years), "s" if abs(rdelta.years) != 1 else "") if rdelta.months != 0: - relstr += "{0:s} month{1:s}, ".format(str(rdelta.months), "s" if rdelta.months != 1 else "") + relstr += "{0:s} month{1:s}, ".format(str(rdelta.months), "s" if abs(rdelta.months) != 1 else "") if rdelta.days != 0: - relstr += "{0:s} day{1:s}, ".format(str(rdelta.days), "s" if rdelta.days != 1 else "") + relstr += "{0:s} day{1:s}, ".format(str(rdelta.days), "s" if abs(rdelta.days) != 1 else "") if rdelta.hours != 0: - relstr += "{0:s} hour{1:s}, ".format(str(rdelta.hours), "s" if rdelta.hours != 1 else "") + relstr += "{0:s} hour{1:s}, ".format(str(rdelta.hours), "s" if abs(rdelta.hours) != 1 else "") if rdelta.minutes != 0: - relstr += "{0:s} minute{1:s}, ".format(str(rdelta.minutes), "s" if rdelta.minutes != 1 else "") + relstr += "{0:s} minute{1:s}, ".format(str(rdelta.minutes), "s" if abs(rdelta.minutes) != 1 else "") if rdelta.seconds != 0: - relstr += "{0:s} second{1:s}, ".format(str(rdelta.seconds), "s" if rdelta.seconds != 1 else "") + relstr += "{0:s} second{1:s}, ".format(str(rdelta.seconds), "s" if abs(rdelta.seconds) != 1 else "") # remove trailing comma from output reply = relstr[0:-2] return self.bot.reply(event, reply)