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)
|