print relative time of countdown items

This commit is contained in:
Brian S. Stephan 2010-07-25 12:40:57 -05:00
parent f4b1d7955a
commit cfab1e29ca
1 changed files with 25 additions and 6 deletions

View File

@ -131,14 +131,14 @@ def sub_change_nick(connection, event, nick, userhost, replypath, what, admin_un
connection.privmsg(replypath, 'changed nickname') connection.privmsg(replypath, 'changed nickname')
##### #####
# sub_add_countdown # sub_countdown
# add a countdown item to the bot # add a countdown item to the bot
##### #####
def sub_add_countdown(connection, event, nick, userhost, replypath, what, admin_unlocked): def sub_countdown(connection, event, nick, userhost, replypath, what, admin_unlocked):
whats = what.split(' ') whats = what.split(' ')
if whats[0] == 'countdown' and len(whats) >= 4: if whats[0] == 'countdown' and len(whats) >= 2:
if whats[1] == 'add': if whats[1] == 'add' and len(whats) >= 4:
item = whats[2] item = whats[2]
target = parse(' '.join(whats[3:]), default=datetime.now().replace(tzinfo=tzlocal())) target = parse(' '.join(whats[3:]), default=datetime.now().replace(tzinfo=tzlocal()))
if not config.has_section('countdown'): if not config.has_section('countdown'):
@ -146,6 +146,25 @@ def sub_add_countdown(connection, event, nick, userhost, replypath, what, admin_
config.set('countdown', item, target.astimezone(tzutc()).isoformat()) config.set('countdown', item, target.astimezone(tzutc()).isoformat())
connection.privmsg(replypath, 'added countdown item') connection.privmsg(replypath, 'added countdown item')
else:
try:
time = parse(config.get('countdown', whats[1]))
rdelta = relativedelta(time, datetime.now().replace(tzinfo=tzlocal()))
relstr = whats[1] + ' will occur in '
if rdelta.years != 0:
relstr += str(rdelta.years) + ' years '
if rdelta.months != 0:
relstr += str(rdelta.months) + ' months '
if rdelta.days != 0:
relstr += str(rdelta.days) + ' days '
if rdelta.hours != 0:
relstr += str(rdelta.hours) + ' hours '
if rdelta.minutes != 0:
relstr += str(rdelta.minutes) + ' minutes '
if rdelta.seconds != 0:
relstr += str(rdelta.seconds) + ' seconds'
connection.privmsg(replypath, relstr)
except NoOptionError: pass
##### #####
# on_connect # on_connect
@ -195,7 +214,7 @@ def on_privmsg(connection, event):
# standard commands # standard commands
sub_report_seen(connection, event, nick, userhost, replypath, what, admin_unlocked) sub_report_seen(connection, event, nick, userhost, replypath, what, admin_unlocked)
sub_add_countdown(connection, event, nick, userhost, replypath, what, admin_unlocked) sub_countdown(connection, event, nick, userhost, replypath, what, admin_unlocked)
##### #####
# on_pubmsg # on_pubmsg
@ -236,7 +255,7 @@ def on_pubmsg(connection, event):
# standard commands # standard commands
sub_report_seen(connection, event, nick, userhost, replypath, what, admin_unlocked) sub_report_seen(connection, event, nick, userhost, replypath, what, admin_unlocked)
sub_add_countdown(connection, event, nick, userhost, replypath, what, admin_unlocked) sub_countdown(connection, event, nick, userhost, replypath, what, admin_unlocked)
##### #####
# init # init