The irc-ctcp package
CTCP (Client To Client Protocol) is a way of sending arbitrary data over an IRC network, which may include bytes not allowed in standard IRC messages. CTCPs are sent as a PRIVMSG or NOTICE, where the first and last characters as \001 (SOH), and special bytes are escaped by encoding them into a two-byte sequence beginning with \020 (DLE). CTCPs consist of command name (typically in upper-case) followed by list of space-separated arguments, which may be empty.
One use of CTCPs supported by the vast majority of IRC clients today is the ACTION command, typically invoked with /me. For example, if the user foo in the channel #bar were to issue
everyone in the channel would receive the message
:foo PRIVMSG #bar :\001ACTION dances\001
Other common uses of CTCP include requesting the name and version of a user's IRC client, their local time, determining ping times, and initiating file transfers (DCC).
Characters are escaped as follows:
- \000 (NUL)
- \020 \060 (0)
- \012 (NL)
- \020 \156 (n)
- \015 (CR)
- \020 \162 (r)
- \020 (DLE)
- \020 \020
All other appearences of the escape character are errors, and are dropped.
See http://www.irchelp.org/irchelp/rfc/ctcpspec.html for more details.
|Versions||0.1.0.0, 0.1.1.0, 0.1.2.0, 0.1.2.1, 0.1.3.0|
|Dependencies||base (>=4.5 && <5), bytestring (>=0.10), text (>=1.1) [details]|
|Source repository||head: git clone https://github.com/barrucadu/irc-ctcp.git
this: git clone https://github.com/barrucadu/irc-ctcp.git(tag 0.1.3.0)
|Uploaded||Sat Aug 1 10:57:56 UTC 2015 by barrucadu|
|Distributions||LTSHaskell:0.1.3.0, NixOS:0.1.3.0, Stackage:0.1.3.0, Tumbleweed:0.1.3.0|
|Downloads||922 total (16 in the last 30 days)|
|Status||Docs available [build log]
Last success reported on 2015-08-01 [all 1 reports]
For package maintainers and hackage trustees