aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 3babafbe0f8cc2f15a1c449fbd970d3219ce1134 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# idalius

idalius started out as a novelty IRC bot. Its original functionality has now
been moved into an optional module, "tittilate", while the remainder of the
bot's functionality is mostly configurable and extensible.

## Commands

Arbitrary commands can be registered by any module. Commands (currently
separate from admin commands) are issued in-channel, prefixed with the string
configured in the `bot.conf` parameter `prefix`. This is `%` by default, and
this default will be used in this README.

## Module: URL Title

idalius can pick a URL out of any channel message and respond in-channel with
the title of the link, followed by the hostname so you know roughly what link
the title is for.

	<phillid> Testing the URL title thingy https://sighup.nz/ and presuming it works
	<idalius> Ahoy-hoy β˜ƒ SIGHUP (sighup.nz)


## Module: Tittilate

The tittilate module is one which will ask idalius to check all channel
messages for special keywords, and for each message containing some of those
keywords, respond with a message with as many user-set responses to those
keywords, in order. It's kind of hard to get your head around with plain
words, so I'll give an example.

Under the default configuration, idalius will trigger on 'sax', 'trumpet'
and 'snake', replying with '🎷', '🎺' and '🐍' respectively. Take a look at
this IRC log:

	<someuser> sax
	<somebot> 🎷 
	<someuser> sax snake
	<somebot> 🎷 🐍 
	<someuser> saxaphone woosaxsnakeSAXalright trumpetTRUMPET
	<somebot> 🎷 🎷 🐍 🎷 🎺 🎺 

Simple eh.

## Module: Antiflood

This module will kick someone who send more than 5 messages in 11 seconds on
a channel. It's on the to-do list to make these parameters configurable.

## Module: Echo

This module adds a command to echo strings on-channel. Example:

	<someone> %echo woo stuff
	<somebot> woo stuff

## Module: Map

This module allows simplistic mapping of a function across a list of arguments.
At the moment, array syntax is just prototypical, and uses regex to split on
commas. Thus, nesting of , within arguments is not yet possible. Examples:

	<someone> %map echo foo,bar, foobar
	<somebot> [foo, bar, foobar]

## Module: Timezone

This module allows timezones to be associated with words (intended for use
with nicks) so that the command `%time foo` will return the current time,
adjusted for the timezone associated with `foo`. Example:

	<person1> %time person1
	<somebot> person1: person1's clock reads 2018-04-10T06:39:44

## Admin commands

idalius also supports some basic administration commands. These should be sent
in a private message to the bot by someone with a hostmask configured to be an
administrator's hostmask.

At the moment these commands comprise:

### Nick change

	nick fooeybot

Attempt to change the bot's IRC nick name to fooeybot.

### Part/leave from channels

	part #channel
	part #channel some part message
	part #channel #anotherone
	part #channel #anotherone witty part message here

Leave/part from one or more channels, giving an optional part message. This
part message will be used for the parts sent to each channel specified.

### Join channels

	join #channel
	join #channel #someotherchannel #omganotherchannel #holymoly

Join one or more channels

### Say something to a channel or person

	say nick I'm here for you, Jack
	say #channel Hey hi hello howdy

Tell a person or a channel something, perferably something useful. Useful for
puppeting if you are not on a channel, or you could talk to yourself through
an idalius bot if you get lonely. Additionally, it might be useful for your
idalius to contact services like nickserv, memoserv, chanserv etc.

### Perform a CTCP action to a channel or person

	action nick slaps you with a fish
	action #channel stares down everyone in the room

Not really useful apart from having a laugh in a channel. Really not sure why
I added this except for a lame gag or two. Worth it.

### Set channel topic

	topic #channel new topic

Does what it says on the tin.

### Set channel/user modes

	mode #channel +v someone
	mode #channel +vo someone opguy
	mode #channel +n
	mode #channel +l 5

So on and so forth. What comes after "mode" is sent verbatim to the IRC client
idalius wraps, which (as far as I know) sends it verbatim to the server. So
you're really down to whatever the IRC server you're on will understand.

### Kick someone from a channel

	kick #channel badPerson
	kick #channel badPerson You've been very naughty!

Kicks badPerson from #channel, and optionally takes your specified kick reason
to relay with the kick. If you do not specify a kick reason, then idalius will
use a default message "Requested by <yourNameHere!>".

### Reconnect

	reconnect
	reconnect witty message

Code isn't bug-free, and idalius is far from it. If you manage to break your
idalius beyond repair, you might want to look at asking it remotely to
disconnect from the IRC server and connect back to it again to start from a
clean slate.

Your idalius will ask the IRC server to use a witty quit message if you
specify one, otherwise it will fall back on the default quit message specified
in the config file (quit_msg)