Skip to content

Commit

Permalink
Extract command documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
TheDaemoness committed Dec 16, 2023
1 parent 6f20938 commit b55db41
Show file tree
Hide file tree
Showing 9 changed files with 706 additions and 0 deletions.
7 changes: 7 additions & 0 deletions doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# glirc Documentation

For auto-generated Haddock documentation, see `docs`.

The command documentation is written in a subset of AsciiDoc,
and is added back into glirc at compile time.
Please consult `#glirc` on Libera.Chat before modifying it.
67 changes: 67 additions & 0 deletions doc/cmds_chanop.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
= Channel Management Commands
:toc:

== /invite

Invite a user to the current channel.

== /kick

Kick a user from the current channel.

See also: kickban, remove

== /kickban

Ban and kick a user from the current channel.

Users are banned by hostname match.

See also: kick, remove

== /masks

Show mask lists for current channel.

The `mode` argument is typically one of the following:

`b`: bans +
`i`: invite exemptions (op view only) +
`e`: ban exemptions (op view only) +
`q`: quiets (on Charybdis/Solanum-based networks)

== /mode

Set IRC modes.

When executed in a channel window, mode changes are applied to the channel.
When executed in a network window, mode changes are applied to your user.

This command has parameter sensitive tab-completion.

See also: masks, channelinfo

=== Examples

Removing the topic lock: `+/mode -t+` +
Setting a ban: `+/mode +b *!*@hostname+` +
Removing a quiet: `+/mode -q *!*@hostname+` +
Voicing two users: `+/mode +vv user1 user2+` +
Demoting an op to voice: `+/mode +v-o user1 user1+`

== /remove

Remove a user from the current channel.

Remove works like /kick except it results in a PART.

Not all servers support removal in this manner.
Refer to your server/network's documentation.

See also: kick, kickban

== /topic

View or set the topic of the current channel.

Tab-completion with no `message` specified will load the current topic for editing.
203 changes: 203 additions & 0 deletions doc/cmds_chat.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
= Chat Commands
:toc:

== /join

Join the given channels.

Multiple channels and keys may be provided as comma-separated lists.

When keys are provided, they should occur in the same order as the channels.

=== Examples

`+/join #friends+` +
`+/join #secret thekey+` +
`+/join #secret1,#secret2,#public key1,key2+`

See also: channel, clear, part

== /me

Sends an action message to the currently focused channel.
Most clients will render these messages prefixed with
only your nickname as though describing an action.

=== Examples

`+/me shrugs+`

See also: notice, msg, say

== /msg

Send a chat message to a user or a channel.

Multiple targets may be provided as a comma-separated list.

On servers with STATUSMSG support,
the channel name can be prefixed with a sigil to
restrict the recipients to those with the given mode.

=== Examples

`+/msg buddy I'm sending you a message.+` +
`+/msg #friends This message is for the whole channel.+` +
`+/msg him,her I'm chatting with two people.+` +
`+/msg @#users This message is only for ops!+`

See also: notice, me, say

== /part

Leave the currently-focused channel,
optionally with the provided message.

=== Examples

`+/part+` +
`+/part It's not me, it's you+`

See also: clear, join, quit

== /query

Switch the client focus to the given
target and optionally send a message to that target.

=== Examples

`+/q libera:#haskell+` +
`+/q #haskell+` +
`+/q lambdabot @messages+` +
`+/q irc_friend How are you?+`

See also: msg channel focus

== /say

Send a message to the current chat window.

This can be useful for sending a chat message with
a leading '/' to the current chat window.

=== Examples

`+/say /help is the right place to start!+`

See also: notice, me, msg

== /away

Mark yourself as away.
The away message is used by the server to update
status in /whois and to provide automated responses.

Omit the `message` parameter to clear your away status.

=== Examples

`+/away Out getting some sun+` +
`+/away+`

== /channelinfo

Show information about the current channel.
Information includes topic, creation time, URL, and modes.

See also: masks, mode, topic, users

== /ctcp

Client-to-client protocol (CTCP) commands can be used
to query information from another user's client application
directly. Common CTCP commands include: ACTION, PING, VERSION,
USERINFO, CLIENTINFO, and TIME.

glirc does not automatically respond to CTCP commands.

=== Parameters

`target` - Comma-separated list of nicknames and channels +
`command` - CTCP command name +
`arguments` - CTCP command arguments

=== Examples

`+/ctcp myfriend VERSION+` +
`+/ctcp myfriend TIME+`

== /knock

Request entry to an invite-only channel.

== /monitor

Monitor is a protocol for getting server-side notifications
when users become online/offline.

=== Subcommands

`+/monitor + target[,target2]*+` - Add nicknames to monitor list +
`+/monitor - target[,target2]*+` - Remove nicknames to monitor list +
`+/monitor C+` - Clear monitor list +
`+/monitor L+` - Show monitor list +
`+/monitor S+` - Show status of nicknames on monitor list

== /names

Show the user list for the current channel.
Detailed view (default key F2) shows full hostmask.

See also: channelinfo, masks

== /nick

Change your nickname.

=== Examples

`+/nick guest123+` +
`+/nick better_nick+`

== /notice

Send a chat notice to a user or a channel.

Notice messages were originally intended to be used by bots.
Different clients will render these in different ways.

Multiple targets may be provided as a comma-separated list.

On servers with STATUSMSG support,
the channel name can be prefixed with a sigil to
restrict the recipients to those with the given mode.

=== Examples

`+/notice buddy I'm sending you a notice.+` +
`+/notice #friends This notice is for the whole channel.+` +
`+/notice him,her I'm informing two people.+` +
`+/notice @#users This notice is only for ops!+`

See also: me, msg, say

== /operwall

Send a network-wide WALLOPS message to opers only.

See also: me, msg, say

== /wallops

Send a network-wide WALLOPS message.
These messages go out to users who have the 'w' usermode set.

See also: me, msg, say

== /quote

Send a raw IRC command.

The argument to this command is sent as-is.
No additional word-splitting is done.
21 changes: 21 additions & 0 deletions doc/cmds_integration.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
= Integrations
:toc:

== /znc

Send command directly to ZNC.

The advantage of this over `+/msg+` is that responses are not broadcast to call clients.

== /znc-playback

Request playback from the ZNC `playback` module.
Note that the playback module is not installed in ZNC by default!

When `date` is omitted, uses the most recent date in the past that makes sense.
When both `time` and `date` are omitted, all playback is requested.

Time format: `HOURS:MINUTES` (example: 7:00)

Date format: `YEAR-MONTH-DAY` (example: 2016-06-16)

34 changes: 34 additions & 0 deletions doc/cmds_net.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
= Connection Commands
:toc:

== /connect

Connect to `network` by name.

If `network` does not correspond to the name of a server in the config,
it is treated as a hostname.

== /reconnect

(Re)connect to the currently-focused server.

== /quit

Gracefully disconnect the current network connection,
optionally sending the provided reason.

See also: disconnect, exit

== /disconnect

Immediately terminate the current network connection.

See also: quit, exit

== /cert

Show the TLS certificate for the current connection.

== /umode

Apply a user-mode change.
Loading

0 comments on commit b55db41

Please sign in to comment.