[bonneannee] Unharcode channel to send message on 1 January

This commit is contained in:
nemunaire 2014-11-10 21:10:09 +01:00
parent b6c5bf4f10
commit 4f27232fd4

View File

@ -14,28 +14,42 @@ from more import Response
yr = datetime.now(timezone.utc).year yr = datetime.now(timezone.utc).year
yrn = datetime.now(timezone.utc).year + 1 yrn = datetime.now(timezone.utc).year + 1
def load(context):
d = datetime(yrn, 1, 1, 0, 0, 0, 0, timezone.utc) - datetime.now(timezone.utc)
add_event(ModuleEvent(interval=0, offset=d.total_seconds(), call=bonneannee))
def bonneannee(): def load(context):
if not CONF or not CONF.hasNode("sayon"):
print("You can append in your configuration some balise to "
"automaticaly wish an happy new year on some channels like:\n"
"<sayon hostid=\"nemubot@irc.freenode.net:6667\" "
"channel=\"#nemutest\" />")
def bonneannee():
txt = "Bonne année %d !" % yrn txt = "Bonne année %d !" % yrn
print (txt) print(txt)
send_response("localhost:2771", Response(txt, "#epitagueule")) if CONF and CONF.hasNode("sayon"):
send_response("localhost:2771", Response(txt, "#yaka")) for sayon in CONF.getNodes("sayon"):
send_response("localhost:2771", Response(txt, "#epita2014")) if "hostid" not in sayon or "channel" not in sayon:
send_response("localhost:2771", Response(txt, "#ykar")) print("Error: missing hostif or channel")
send_response("localhost:2771", Response(txt, "#42sh")) continue
send_response("localhost:2771", Response(txt, "#nemubot")) srv = sayon["hostid"]
chan = sayon["channel"]
send_response(srv, Response(txt, chan))
d = datetime(yrn, 1, 1, 0, 0, 0, 0,
timezone.utc) - datetime.now(timezone.utc)
add_event(ModuleEvent(interval=0, offset=d.total_seconds(),
call=bonneannee))
@hook("cmd_hook", "newyear") @hook("cmd_hook", "newyear")
@hook("cmd_hook", str(yrn), yrn) @hook("cmd_hook", str(yrn), yrn)
def cmd_newyear(msg, yr): def cmd_newyear(msg, yr):
return Response(countdown_format(datetime(yr, 1, 1, 0, 0, 1, 0, timezone.utc), return Response(countdown_format(datetime(yr, 1, 1, 0, 0, 1, 0,
timezone.utc),
"Il reste %s avant la nouvelle année.", "Il reste %s avant la nouvelle année.",
"Nous faisons déjà la fête depuis %s !"), "Nous faisons déjà la fête depuis %s !"),
channel=msg.channel) channel=msg.channel)
@hook("cmd_rgxp", data=yrn, regexp="^[0-9]{4}$") @hook("cmd_rgxp", data=yrn, regexp="^[0-9]{4}$")
def cmd_timetoyear(msg, cur): def cmd_timetoyear(msg, cur):
yr = int(msg.cmds[0]) yr = int(msg.cmds[0])
@ -43,7 +57,9 @@ def cmd_timetoyear(msg, cur):
if yr == cur: if yr == cur:
return None return None
return Response(countdown_format(datetime(yr, 1, 1, 0, 0, 1, 0, timezone.utc), return Response(countdown_format(datetime(yr, 1, 1, 0, 0, 1, 0,
timezone.utc),
"Il reste %s avant %d." % ("%s", yr), "Il reste %s avant %d." % ("%s", yr),
"Le premier janvier %d est passé depuis %s !" % (yr, "%s")), "Le premier janvier %d est passé "
"depuis %s !" % (yr, "%s")),
channel=msg.channel) channel=msg.channel)