N A M E
TOB - bot in reverse !
S Y N O P S I S
tob [key=val] [key==val]
tob -cvaw [init=mod1,mod2]
tob -d
tob -s
D E S C R I P T I O N
TOB has all you need to program a unix cli program, such as disk
perisistence for configuration files, event handler to handle the
client/server connection, easy programming of your own commands, etc.
TOB contains python3 code to program objects in a functional way.
it provides an "clean namespace" Object class that only has dunder
methods, so the namespace is not cluttered with method names. This
makes storing and reading to/from json possible.
TOB is a python3 IRC bot, it can connect to IRC, fetch and
display RSS feeds, take todo notes, keep a shopping list and log
text. You can run it under systemd for 24/7 presence in a IRC channel.
TOB is Public Domain.
I N S T A L L
installation is done with pipx
$ pipx install tob
$ pipx ensurepath
$ tob srv > tob.service
$ sudo mv tob.service /etc/systemd/system/
$ sudo systemctl enable tob --now
joins #tob on localhost
U S A G E
use tob to control the program, default it does nothing
$ tob
$
see list of commands
$ tob cmd
cfg,cmd,dne,dpl,err,exp,imp,log,mod,mre,nme,
pwd,rem,req,res,rss,srv,syn,tdo,thr,upt
start console
$ tob -c
start console and run irc and rss
$ tob -c init=irc,rss
list available modules
$ tob mod
err,flt,fnd,irc,llm,log,mbx,mdl,mod,req,rss,
rst,slg,tdo,thr,tmr,udp,upt``
start daemon
$ tob -d
$
start service
$ tob -s
C O M M A N D S
here is a list of available commands
cfg - irc configuration
cmd - commands
dpl - sets display items
err - show errors
exp - export opml (stdout)
imp - import opml
log - log text
mre - display cached output
pwd - sasl nickserv name/pass
rem - removes a rss feed
res - restore deleted feeds
rss - add a feed
syn - sync rss feeds
tdo - add todo item
thr - show running threads
upt - show uptime
C O N F I G U R A T I O N
irc
$ tob cfg server=
$ tob cfg channel=
$ tob cfg nick=
sasl
$ tob pwd
$ tob cfg password=
rss
$ tob rss
$ tob dpl
$ tob rem
$ tob nme
opml
$ tob exp
$ tob imp
P R O G R A M M I N G
tob has it's user modules in the ~/.tob/mods directory so for a
hello world command you would edit a file in ~/.tob/mods/hello.py
and add the following
def hello(event):
event.reply("hello world !!")
typing the hello command would result into a nice hello world !!
$ tob hello
hello world !!
commands run in their own thread and the program borks on exit to enable a
short debug cycle, output gets flushed on print so exceptions appear in the
systemd logs. modules can contain your own written python3 code.
F I L E S
~/.tob
~/.local/bin/tob
~/.local/pipx/venvs/tob/*
A U T H O R
Bart Thate
C O P Y R I G H T
TOB is Public Domain