nemubot/modules/sleepytime.py

46 lines
1.7 KiB
Python
Raw Normal View History

2012-07-16 22:45:41 +00:00
# coding=utf-8
2014-08-27 23:39:31 +00:00
"""as http://sleepyti.me/, give you the best time to go to bed"""
2012-07-16 22:45:41 +00:00
import re
import imp
from datetime import datetime
from datetime import timedelta
from hooks import hook
2014-08-13 13:53:55 +00:00
nemubotversion = 3.4
2012-07-16 22:45:41 +00:00
def help_full():
return "If you would like to sleep soon, use !sleepytime to know the best time to wake up; use !sleepytime hh:mm if you want to wake up at hh:mm"
2012-07-16 22:45:41 +00:00
@hook("cmd_hook", "sleepytime")
def cmd_sleep(msg):
2012-11-04 14:32:39 +00:00
if len (msg.cmds) > 1 and re.match("[0-9]{1,2}[h':.,-]([0-9]{1,2})?[m'\":.,-]?",
msg.cmds[1]) is not None:
2012-08-16 03:42:54 +00:00
# First, parse the hour
2012-11-04 14:32:39 +00:00
p = re.match("([0-9]{1,2})[h':.,-]([0-9]{1,2})?[m':.,-]?", msg.cmds[1])
2012-08-16 03:42:54 +00:00
f = [datetime(datetime.today().year,
datetime.today().month,
datetime.today().day,
hour=int(p.group(1)))]
if p.group(2) is not None:
f[0] += timedelta(minutes=int(p.group(2)))
g = list()
for i in range(0,6):
f.append(f[i] - timedelta(hours=1,minutes=30))
g.append(f[i+1].strftime("%H:%M"))
return Response("You should try to fall asleep at one of the following"
2014-07-25 16:02:30 +00:00
" times: %s" % ', '.join(g), channel=msg.channel)
2012-08-16 03:42:54 +00:00
# Just get awake times
2012-07-16 22:45:41 +00:00
else:
2012-08-16 03:42:54 +00:00
f = [datetime.now() + timedelta(minutes=15)]
g = list()
for i in range(0,6):
f.append(f[i] + timedelta(hours=1,minutes=30))
g.append(f[i+1].strftime("%H:%M"))
return Response("If you head to bed right now, you should try to wake"
" up at one of the following times: %s" %
2014-07-25 16:02:30 +00:00
', '.join(g), channel=msg.channel)