This repository has been archived by the owner on Nov 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
README
175 lines (147 loc) · 7.37 KB
/
README
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
163
164
165
166
167
168
169
170
171
172
173
174
175
-------
THIS PROJECT IS NO LONGER MAINTAINED
-------
/'
/'
____ /' ____ ____ . ,
/' / /' )--/' /' ) /' ) /' / \ /
/' /' /' /' /' /(___,/' /' /' /' /' \'
(___,/(__(___,/' (__(________(___,/(__(___,/(____/' \_
/'
/ /'
(___,/'
Yoleaux is a brand spankin' new utilikilt-wearin' Internet Relay Chat
robot for the internet. Yoleaux is written in Ruby, has a clean(-ish),
modular(-ish) preforking architecture and is generally steamin' cool.
_______________________________
( Sounds good. How do I use it? )
-------------------------------
o ^__^
o (oo)\_______
(__)\ )\/\
||----w |
|| ||
Yoleaux requires the Nokogiri XML parsing library and the tzinfo and
tzinfo-data libraries for user-specific timezone information. Use
"gem install nokogiri tzinfo tzinfo-data" to install these before
running Yoleaux. (Nokogiri in turn depends on having libxml2 installed
on your system.)
Assuming that you've downloaded the bot, which can be done from this
'ere link: <http://dpk.io/yoleaux.tar.gz> -- the process of installing
it is actually quite simple. Having unpacked that archive, you should
`cd` into the directory therein and type `./yoleaux create`, which will
set up the initial configuration and pop open your favourite text editor
on the configuration file. The configuration file is written in YAML, so
it's easy to read and write. You will probably wish to change the bot's
nick and add some channels for him to join. Some administrative commands
are built into the bot which will edit the configuration file for you
once the bot is running. See CONFIG for a list of all the things you can
change in the configuration file.
Having set things up just so in the config file, typing `./yoleaux run`
will kick things off and get the bot running. Yoleaux always runs in the
foreground; use an external script if you want to daemonise the bot.
Likewise, logs cannot be printed anywhere other than standard-out; use
a pipe to write them to a file.
____________________________
( No, but how do I *use* it? )
----------------------------
^__^ o
_______/(oo) o
\/\( /(__)
| w----||
|| ||
Here's a summary of some of the commands available in Yoleaux by default:
command what in the heck it does
g Searches Google
wik Searches Wikipedia
wa Queries Wolfram Alpha
c Calculates with Google
title Gets the title of a link
in Sets a reminder for you
to/tell/ask Sends a message to someone when they're next available
u Searches for a Unicode character
A complete list is available at <http://dpk.io/yoleaux>.
There's also a very nifty services system, whereby any user of the bot
can add their own commands, provided that they don't trample on any
existing command names.
<dpk> .add-command something http://example.com/service.cgi
<yoleaux> Added command something: oblique service. (Please add a
help string with ".command-help something ...")
<dpk> .something
<yoleaux> This is the output of the web service!
The URL can be any valid oblique service URL:
https://github.com/nslater/oblique
____________________________________
( Can I make commands elsewise, too? )
------------------------------------
o ^__^
o (oo)\_______
(__)\ )\/\
||----w |
|| ||
Yes! Commands are divided into 'command sets' or 'packages'. Think up a
name for your package, say, xyzzy, and make a file in the commands
directory called xyzzy. Put something like this in it:
command_set :xyzzy do
helpers do
def plugh
"Plugh!"
end
end
command :do_something, 'This is the command help string' do
respond plugh
end
end
You can look at the existing packages to see the sorts of things you can
do with commands.
______________________________________
( What's the story of this 'ere robot? )
--------------------------------------
^__^ o
_______/(oo) o
\/\( /(__)
| w----||
|| ||
Once there was a bot called Phenny. She was written in Python 2, she
used threads all over the shop, and her creator was Sean B. Palmer, also
known as sbp. Then, PYTHON3™ happened. sbp sent a decree through the
land, "NIHIL FILUM TUTUM EST", and set to work on a PYTHON3™ version of
Phenny. The new bot, the knight Duxlot, was much ador'd, but sbp was
unhappy because, by his reckoning, his process-based architecture was
just as bad as the thread-based architecture which Phenny had used. He
cast them both off, declaring himself disgusted with them.
David P. Kendal had an idea for how to resolve these issues. He made a
bot called Fauxlot, which also used a process-based architecture, but in
a very different way, which seemed not to exhibit those problems. He
worked a little more on it, then, one day, the bot we know as Yoleaux
popped out of his keyboard and into his computer.
_______________________________________
( What are people saying about Yoleaux? )
---------------------------------------
o ^__^
o (oo)\_______
(__)\ )\/\
||----w |
|| ||
Acclaim for Yoleaux:
<sbp> yoleaux doesn't do some things
<sbp> such as work
<sbp> it's all mostly bubblegum and moonbeams, held together with
knicker elastic
______________________________
( Who made this thing, anyway? )
------------------------------
^__^ o
_______/(oo) o
\/\( /(__)
| w----||
|| ||
Yoleaux was principally written by David Kendal. However, many parts where
inspired by the sbpware which preceded it, and as such dpk owes a huge thanks to
Sean B. Palmer: many of the commands are direct Ruby translations of sbp's
original Python code for Phenny and Duxlot. dpk also owes Noah Slater a
megathank for complaining at him about things which are broken / changed
compared to Phenny and Duxlot, which he undoubtedly will do. Noah also
inadvertently named the bot. I must also credit Noah, Matt Read, Mark E.
Shoulson, Björn Höhrmann, Aaron Mathews, and Albert Kult for helping me
to debug.