Horo is a modular IRC bot written in C++.
It is extremely fast, lightweight (takes only 2MiB of RAM) and extendable
- libpcre-dev for regexp handling
- python-dev (at least 2.7) for python modules
start.sh builds and runs Horo. Don't forget to declare host and port.
Also make your changes in
Horo makes many processes with
fork(). You can watch for processes with
ps cx command in your terminal.
Typical output of this command with explanation:
1237 pts/9 S+ 0:00 horo | main process 1246 pts/9 S+ 0:00 horo:c/lorng.py | process that calls core-module lorng.py with a time interval 1250 pts/9 S+ 0:00 horo:m/fib.py | process that waits for a response from standart module fib.py 1253 pts/9 S+ 0:00 horo:e/twit.py | process that waits for a response from module twit.py called by an event 1255 pts/9 S+ 0:00 horo: url title | process that gets title from an URL
Modules are all written in Python. You can see a typical module structure in file
Put all modules, except modules from
core directory, to the
Core-modules are called every
x seconds. For each of core-module you need an entry in
mod.conf in a format:
Put modules from repo's
core directory into the horo's
core directory and change variables
CHANNEL in modules source code.
You can retrieve list of loaded modules by
%lsmod command on any channel.
Documentation for any module can be retrieved by:
horo: <module_name> --help/-h