在 IRC 机器人 (Haskell) 中实现 CTCP 命令
Posted
技术标签:
【中文标题】在 IRC 机器人 (Haskell) 中实现 CTCP 命令【英文标题】:Implementing CTCP commands in an IRC bot (Haskell) 【发布时间】:2011-01-24 09:47:30 【问题描述】:我已按照 Haskell wiki 上关于 implementing an IRC bot. 的教程进行操作,一切正常。但是一旦我开始扩展它,我意识到它需要响应其他用户对版本和 ping 等命令的 CTCP 请求。这些命令适用于服务器,但不适用于机器人。
我阅读了CTCP 和IRC clients 的rfc,但它们不是很有用。 我做了以下操作,但我认为这不是必需的消息:
write "PRIVMSG" (sender++"\001VERSION Haskellbot : v1.0 : GHCi\001")
这仅要求发件人提供版本信息。那么我该如何去实现 CTCP 请求和其他 CTCP 请求的返回消息呢?
【问题讨论】:
【参考方案1】:在仔细检查 CTCP rfc 后,我解决了这个问题:
write "NOTICE" (sender++"\001VERSION Haskellbot : v1.0 : GHCi\001")
【讨论】:
另请注意,使用另一个 PRIVMSG 自动响应 PRIVMSG(并且完全自动响应 NOTICE)是违反协议的 - 这些规则旨在防止客户端之间的无限响应循环。跨度>以上是关于在 IRC 机器人 (Haskell) 中实现 CTCP 命令的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Javascript 中实现 Haskell 的 FRP Behavior 类型?