BOTLIB #31 released - https://pypi.python.org/pypi/botlib
BOTLIB is a python3 framework to use if you want to program CLI, IRC or XMPP
bots.
features
BOTLIB provides the following features:
::
object class save/load to/from a json file.
rest serverserve saved object’s over http.
rss fetcherecho rss feeds to irc channels.
udp server udp to bot to irc channel.
watcher server run tail -f and have output send to IRC channel.
email scanning scan mbox format to searchable botlib objects.
json backend objects are stored as json string in files on the fs.
db iteration over stored objects.
timestamp time based filenames gives logging capabilities
future future sensors should provide entry to the logger.
install
===
Clone the source:
::
bart@okdan:~$ hg clone https://bitbucket.org/bthate/botlib
You might need to do one of the following if the bot doesn't work:
bart@okdan:~/botlib$ export PYTHONPATH="."
bart@okdan:~/botlib$ export PYTHONIOENCODING="utf-8"
Another option is to download with pip3 and install globally:
::
bart@okdan:~$ pip3 install botlib --upgrade
irc
===
Use -n , -s , -c options to make the bot join the
network:
::
bart@okdan:~$ bot -i irc -n botlib -s irc.freenode.net -c \#botlib
You can use the -w option to write config values to ~/.bot/config/irc
xmpp
For the xmpp server use a ~/.sleekpass file with the password in it:
::
bart@okdan:~$ cat "password" > ~/.sleekpass
bart@okdan:~$ bot -i xmpp,rss --room=test@conference.localhost
users
=
One needs to add a users origin to be able to give the bot commands. One can
add a user with the meet command:
::
bart@okdan:~$ bot meet user@server
user user@server created
To give the user a permission you can use the perm command:
::
bart@okdan:~$ bot perm user@server ps
ok user@server
The u command show the json dump of a user object:
::
bart@okdan:~$ bot u user@server
{
"_container": {
"default": "",
"path": "/home/bart/.bot/user/2017-10-12/21:05:52.095737",
"prefix": "object",
"saved": "Thu Oct 12 21:07:03 2017",
"signature": "c113c4125f8c2a88d5b312e283792ae019c61a52"
},
"_type": "",
"origin": "user@server",
"perms": [
"USER",
"PS"
],
"user": "user@server"
}
The default shell user is root@shell and give all the commands that are
available.
commands
The following commands are available:
::
alias key, value alias.
announce announce text on all channels in fleet.
begin begin stopwatch.
cfg edit config files.
cmnds show list of commands.
deleted show deleted records.
delperm delete permissions of an user.
dump dump objects matching the given criteria.
edit edit and save objects.
end stop stopwatch.
exit stop the bot.
fetcher fetch all rss feeds.
find present a list of objects based on prompt input.
first show the first record matching the given criteria.
fix fix a object by loading and saving it.
idle see how long a channel/nick has been idle.
last show last objectect matching the criteria.
license display BOTLIB license.
load force a plugin reload.
log log some text.
loglevel set loglevel.
loud disable silent mode of a bot.
lsshow subdirs in working directory.
man show descriptions of the available commands.
mbox convert emails to botlib objects.
meet create an user record.
nick change bot nick on IRC.
perm add/change permissions of an user.
permissions show permissions granted to a user.
perms show permission of user.
pid show pid of the BOTLIB bot.
psshow running threads.
rebootreboot the bot, allowing statefull reboot (keeping
connections alive).
reloadreload a plugin.
restore set deleted=False in selected records.
rmset deleted flag on objects.
rss add a rss url.
save make a kernel dump.
shop add a shopitem to the shopping list.
show show dumps of basic objects.
silentput a bot into silent mode.
start start a plugin.
stop stop a plugin.
synchronize synchronize rss feeds (fetch but don't show).
test echo origin.
timer ti