THIS BOT IS DEPRECATED IN FAVOR OF WORFBOT3
A simple IRC Bot written in Python
To start it just cd
to the src
directory and type ./ircbot.py
, although
before using the bot it's recommended to check the config first.
The bot can handle multiple channels at a time, also if you want to have a
private discussion it can be queried (/query WorfBot
).
IRC Protocol reference: [RFC 1459](http://www.irchelp.org/irchelp/rfc/rfc.html "IRC Protocol")
Sphinx docs to come
!about
!bible <Bible Reference>
!define <Word>
!google <search term>
!help
!heretic [Person]
!heretics [count]
!hono(u)r <phrase>
!mball
!uptime
!weather <city>
or !weather <city>, <state or country>
!wiki <search term>
!xkcd [<number>, <search term>]
!add <word>:[Honorable,Dishonorable]
!channels
!join <#channel >+
!quit [#channel ]+
!quit #foo #bar
- quits from #foo and #barTotal: 13 commands
add_heretic
- Listens to people being called heretics and takes noteauto_bible
- Listens for bible references in [square brackets] and quotes the ESV bible in responseremove_heretic
- Listens to people being called non-heretics and takes noteTotal: 3 auto-commands
src/config.py
you must add the name of the command to the cmds_list
's
end(without !)src/cmds/
directory you must create a file named after your commandE.g.:
If you want to create a command !ncmd
, you must follow these steps:
cmds_list
in src/config.py
src/cmds/ncmd.py
src/cmds/ncmd.py
define def dance(param):
, param
will hold the users
command components(see src/parser.py
) in case you must do some checkings,
it must return a message(eg. return 'Dance time!'
, in this
case src/ircbot.py
will automatically add PRIVMSG
at the beginning and
\r\n
at the end) or a list(eg. return ['JOIN ', '#chan1,#chan2']
, in this
case the list will be joined and \r\n
added at the end)If you want to create a command that the bot should execute if something happens
on the chat (not if the command is manually triggered) you should add the
command name to the auto_cmds_list
insead of cmds_list
.
See src/config.py
:
owner
- the users who are allowed to send a specific command to the bot
(for example the !quit
command)log
- path to the logging directory, all logs are stored hereserver
- server to connect to (default: chat.freenode.net)port
- port number to use (default: 6667)channels
- a list of channels to connect tonicks
- a list of strings, the bot's name will be the first unused nick from
this list or the first nick in the list and a random sequence appended if all
nicks are usedreal_name
- bot's "real name"cmds_list
- a list of strings that the bot knows to answer toauto_cmds_list
- a list of commands defined as regular commands with the
only difference that they cannot be invoked by users, the bot executes them as
result of an event!bible
, !weather
, and !wiki
module depends on
BeautifulSoup
!weather
depends on BeautifulStoneSoup (XML)!bible
and !wiki
depends on BeautifulSoup (HTML)!google
module depends on
Google Custom Search API
!bible
, auto_bible
, etc. depend on customized versions of python-bible and python-scriptures
(C) Copyright 2011-2014 Barbu Paul - Gheorghe
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.