ref: cf08bf12ea140debb83c4c983f00f61a8442c82f
parent: 12c04cb48f94cae477a388d2740fa15d02ccf0be
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Nov 19 18:14:53 EST 2017
Untested implementation of /msg
--- a/irc.myr
+++ b/irc.myr
@@ -416,11 +416,13 @@
| "user": changeuser(irc, sp[1:])
| "srv": changeserver(irc, sp[1:])
| "names": listnames(irc, sp[1:])
+ | "msg": privmsg(irc, sp[1:])
| c: status(irc, irc.self, "unknown command: /{}", text);;
std.slfree(sp)
}
+
const changenick = {irc, argsif args.len != 1
status(irc, irc.self, "/nick: invalid args {j= }", args)@@ -713,6 +715,21 @@
;;
}
+const privmsg = {irc, msg+ if msg.len <= 1
+ status(irc, irc.self, "missing message in /msg")
+ elif msg.len > 3 && std.eq(msg[1], "-srv")
+ match findsrv(irc, msg[2])
+ | `std.Some s: send(irc, s, "PRIVMSG {} :{j= }\r\n", msg[0], msg[3:])+ | `std.None: -> status(irc, irc.self, "can't message: no server '{}", msg[1])+ ;;
+ else
+ match cursrv(irc)
+ | `std.Some s: send(irc, s, "PRIVMSG {} :{j= }\r\n", msg[0], msg[1:])+ | `std.None: -> status(irc, irc.self, "cant message: no server\n")
+ ;;
+ ;;
+}
const parse = {msgvar w, hdr, cmd, args
--
⑨