irc-ctcp: A CTCP encoding and decoding library for IRC clients.
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
/me dances
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 [faq] | 0.1.0.0, 0.1.1.0, 0.1.2.0, 0.1.2.1, 0.1.3.0 |
---|---|
Change log | changes.md |
Dependencies | base (>=4.7 && <5), bytestring (>=0.10), text (>=1.1) [details] |
License | LicenseRef-OtherLicense |
Author | Michael Walker |
Maintainer | mike@barrucadu.co.uk |
Revised | Revision 1 made by barrucadu at 2014-09-04T16:56:46Z |
Category | Network |
Home page | https://github.com/barrucadu/irc-ctcp |
Uploaded | by barrucadu at 2014-09-01T14:01:25Z |
Distributions | LTSHaskell:0.1.3.0, NixOS:0.1.3.0, Stackage:0.1.3.0 |
Downloads | 4360 total (8 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |
Downloads
- irc-ctcp-0.1.2.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.