From a94b45db0d0ca51acc82b6cf949703be47c40262 Mon Sep 17 00:00:00 2001 From: Anna Klempay Date: Mon, 17 Oct 2022 14:30:41 -0500 Subject: [PATCH 1/3] xmas --- src/bobbit/modules/xmas.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/bobbit/modules/xmas.py diff --git a/src/bobbit/modules/xmas.py b/src/bobbit/modules/xmas.py new file mode 100644 index 0000000..b592c8a --- /dev/null +++ b/src/bobbit/modules/xmas.py @@ -0,0 +1,34 @@ +# xmas.py + +import datetime + +# Metadata + +NAME = 'xmas' +ENABLE = True +PATTERN = r'^!xmas\s*$' +USAGE = '''Usage: !xmas +This prints out the number of days until Christmas. +''' + +# Command + +async def xmas(bot, message): + + now = datetime.datetime.now() + + delta = datetime.datetime(year=now.year+1, month=12, day=25) - datetime.datetime(year=now.year, month=now.month, day=now.day) + + daysleft = delta.days % 365 + + return message.with_body(f'{daysleft} days until Christmas') + + +# Register + +def register(bot): + return ( + ('command', PATTERN, xmas), + ) + +# vim: set sts=4 sw=4 ts=8 expandtab ft=python: From 4fd8669cef8d68276dfe4df17cc5c05bc8045671 Mon Sep 17 00:00:00 2001 From: Anna Klempay Date: Mon, 17 Oct 2022 14:44:17 -0500 Subject: [PATCH 2/3] xmas: fix spacing --- src/bobbit/modules/xmas.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/bobbit/modules/xmas.py b/src/bobbit/modules/xmas.py index b592c8a..314063a 100644 --- a/src/bobbit/modules/xmas.py +++ b/src/bobbit/modules/xmas.py @@ -16,14 +16,10 @@ async def xmas(bot, message): now = datetime.datetime.now() - delta = datetime.datetime(year=now.year+1, month=12, day=25) - datetime.datetime(year=now.year, month=now.month, day=now.day) - daysleft = delta.days % 365 - return message.with_body(f'{daysleft} days until Christmas') - # Register def register(bot): From 6a1e6ad2aa83a1e049bb0c06bb94960833c2dcde Mon Sep 17 00:00:00 2001 From: Anna Klempay Date: Wed, 28 Dec 2022 20:07:35 -0600 Subject: [PATCH 3/3] fixed output + leap years --- src/bobbit/modules/xmas.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/bobbit/modules/xmas.py b/src/bobbit/modules/xmas.py index 314063a..9f73d4a 100644 --- a/src/bobbit/modules/xmas.py +++ b/src/bobbit/modules/xmas.py @@ -17,8 +17,18 @@ async def xmas(bot, message): now = datetime.datetime.now() delta = datetime.datetime(year=now.year+1, month=12, day=25) - datetime.datetime(year=now.year, month=now.month, day=now.day) - daysleft = delta.days % 365 - return message.with_body(f'{daysleft} days until Christmas') + + # Handle leap year + if int(now.year+1) % 4 == 0: + daysleft = delta.days % 366 + else: + daysleft = delta.days % 365 + + # Return response based on number of days left + if daysleft > 0: + return message.with_body(f'{daysleft} ' + ('day' if daysleft == 1 else 'days') + ' until Christmas') + else: + return message.with_body('0 days left! Merry Christmas!') # Register