Events modules: use W in a duration for weeks counter, some fixes
This commit is contained in:
parent
a975421e02
commit
9e452d22a9
@ -74,10 +74,10 @@ class EventConsumer:
|
|||||||
try:
|
try:
|
||||||
self.evt.launch_check()
|
self.evt.launch_check()
|
||||||
except:
|
except:
|
||||||
print ("\033[1;31mError:.\033[0 during event end")
|
print ("\033[1;31mError:\033[0m during event end")
|
||||||
exc_type, exc_value, exc_traceback = sys.exc_info()
|
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||||
sys.stderr.write (traceback.format_exception_only(exc_type,
|
traceback.print_exception(exc_type, exc_value,
|
||||||
exc_value)[0])
|
exc_traceback)
|
||||||
if self.evt.next is not None:
|
if self.evt.next is not None:
|
||||||
self.context.add_event(self.evt, self.evt.id)
|
self.context.add_event(self.evt, self.evt.id)
|
||||||
|
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
<message type="cmd" name="eventslist" call="liste" />
|
<message type="cmd" name="eventslist" call="liste" />
|
||||||
<message type="cmd" name="eventliste" call="liste" />
|
<message type="cmd" name="eventliste" call="liste" />
|
||||||
<message type="cmd" name="eventsliste" call="liste" />
|
<message type="cmd" name="eventsliste" call="liste" />
|
||||||
<message type="cmd" name="we" call="cmd_we" />
|
<message type="cmd" name="gouter" call="cmd_gouter" />
|
||||||
|
<message type="cmd" name="goûter" call="cmd_gouter" />
|
||||||
<message type="cmd" name="week-end" call="cmd_we" />
|
<message type="cmd" name="week-end" call="cmd_we" />
|
||||||
<message type="cmd" name="weekend" call="cmd_we" />
|
<message type="cmd" name="weekend" call="cmd_we" />
|
||||||
<message type="cmd" name="new-year" call="cmd_newyear" />
|
<message type="cmd" name="new-year" call="cmd_newyear" />
|
||||||
|
@ -48,6 +48,15 @@ def fini(d, strend):
|
|||||||
DATAS.delChild(DATAS.index[strend["name"]])
|
DATAS.delChild(DATAS.index[strend["name"]])
|
||||||
save()
|
save()
|
||||||
|
|
||||||
|
def cmd_gouter(msg):
|
||||||
|
ndate = datetime.today()
|
||||||
|
ndate = datetime(ndate.year, ndate.month, ndate.day, 16, 42)
|
||||||
|
return Response(msg.sender,
|
||||||
|
msg.countdown_format(ndate,
|
||||||
|
"Le goûter aura lieu dans %s, préparez vos biscuits !",
|
||||||
|
"Nous avons %s de retard pour le goûter :("),
|
||||||
|
channel=msg.channel)
|
||||||
|
|
||||||
def cmd_we(msg):
|
def cmd_we(msg):
|
||||||
ndate = datetime.today() + timedelta(5 - datetime.today().weekday())
|
ndate = datetime.today() + timedelta(5 - datetime.today().weekday())
|
||||||
ndate = datetime(ndate.year, ndate.month, ndate.day, 0, 0, 1)
|
ndate = datetime(ndate.year, ndate.month, ndate.day, 0, 0, 1)
|
||||||
@ -86,7 +95,7 @@ def start_countdown(msg):
|
|||||||
evt = ModuleEvent(call=fini, call_data=dict(strend=strnd))
|
evt = ModuleEvent(call=fini, call_data=dict(strend=strnd))
|
||||||
|
|
||||||
if len(msg.cmd) > 2:
|
if len(msg.cmd) > 2:
|
||||||
result1 = re.findall("([0-9]+)([smhdjSMHDJ])?", msg.cmd[2])
|
result1 = re.findall("([0-9]+)([smhdjwSMHDJW])?", msg.cmd[2])
|
||||||
result2 = re.match("([0-3]?[0-9])/([0-1]?[0-9])/((19|20)?[01239][0-9])", msg.cmd[2])
|
result2 = re.match("([0-3]?[0-9])/([0-1]?[0-9])/((19|20)?[01239][0-9])", msg.cmd[2])
|
||||||
result3 = re.match("([0-2]?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?", msg.cmd[2])
|
result3 = re.match("([0-2]?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?", msg.cmd[2])
|
||||||
if result2 is not None or result3 is not None:
|
if result2 is not None or result3 is not None:
|
||||||
@ -107,7 +116,10 @@ def start_countdown(msg):
|
|||||||
elif result2 is not None:
|
elif result2 is not None:
|
||||||
strnd["end"] = datetime(int(result2.group(3)), int(result2.group(2)), int(result2.group(1)))
|
strnd["end"] = datetime(int(result2.group(3)), int(result2.group(2)), int(result2.group(1)))
|
||||||
elif result3 is not None:
|
elif result3 is not None:
|
||||||
|
if hou * 3600 + minu * 60 + sec > now.hour * 3600 + now.minute * 60 + now.second:
|
||||||
strnd["end"] = datetime(now.year, now.month, now.day, hou, minu, sec)
|
strnd["end"] = datetime(now.year, now.month, now.day, hou, minu, sec)
|
||||||
|
else:
|
||||||
|
strnd["end"] = datetime(now.year, now.month, now.day + 1, hou, minu, sec)
|
||||||
|
|
||||||
evt.end = strnd.getDate("end")
|
evt.end = strnd.getDate("end")
|
||||||
strnd["id"] = CONTEXT.add_event(evt)
|
strnd["id"] = CONTEXT.add_event(evt)
|
||||||
@ -122,12 +134,14 @@ def start_countdown(msg):
|
|||||||
elif result1 is not None and len(result1) > 0:
|
elif result1 is not None and len(result1) > 0:
|
||||||
strnd["end"] = datetime.now()
|
strnd["end"] = datetime.now()
|
||||||
for (t, g) in result1:
|
for (t, g) in result1:
|
||||||
if g is None or g == "m" or g == "M":
|
if g is None or g == "" or g == "m" or g == "M":
|
||||||
strnd["end"] += timedelta(minutes=int(t))
|
strnd["end"] += timedelta(minutes=int(t))
|
||||||
elif g == "h" or g == "H":
|
elif g == "h" or g == "H":
|
||||||
strnd["end"] += timedelta(hours=int(t))
|
strnd["end"] += timedelta(hours=int(t))
|
||||||
elif g == "d" or g == "D" or g == "j" or g == "J":
|
elif g == "d" or g == "D" or g == "j" or g == "J":
|
||||||
strnd["end"] += timedelta(days=int(t))
|
strnd["end"] += timedelta(days=int(t))
|
||||||
|
elif g == "w" or g == "W":
|
||||||
|
strnd["end"] += timedelta(days=int(t)*7)
|
||||||
else:
|
else:
|
||||||
strnd["end"] += timedelta(seconds=int(t))
|
strnd["end"] += timedelta(seconds=int(t))
|
||||||
evt.end = strnd.getDate("end")
|
evt.end = strnd.getDate("end")
|
||||||
|
Loading…
Reference in New Issue
Block a user