Chat commands¶
Introduction¶
Sevabot supports commands you can type into group chat. All commands begin with !.
You can create your own commands easily as Sevabot happily executes any UNIX executable script.
Out of the box commands¶
Here are commands sevabot honours out of the box.
You can type them into the sevabot group chat.
- !reload: Reload current command scripts and print the list of available commands
- !ping: Check the bot is alive
- !sad: No woman, no cry
- !weather: Get weather by a city from openweathermap.org. Example:
!weather Toholampi
- !timeout: Test timeouting commands
- !soundcloud: Get your soundclound playlist (edit soundcloud.rb to make it work)
- !dice: Throw a dice
- !tasks: A simple ah-hoc group task manager for virtual team sprints
- !call: Conference call manager. Type
!call help
for more info.
Creating custom commands¶
The bot can use any UNIX executables printing to stdout as commands
- Shell scripts
- Python scripts, Ruby scripts, etc.
All commands must be in one of modules folders of the bot. The bot comes with some built-in
commands like ping
, but you can add your own custom commands by
There is a
custom/
folder where you can place your own modulesEnable
custom
folder in settings.pyCreate a a script in
custom
folder. Examplemyscript.sh
:#!/bin/sh echo "Hello world from my sevabot command"
Add UNIX execution bit on the script using
chmod u+x myscript.sh
In Sevabot chat, type command
!reload
to relaod all scriptsNow you should see command
!myscript
in the command listThe following environment variables are exposed to scripts
SKYPE_USERNAME
,SKYPE_FULLNAME
from the person who executed the command
Stateful modules¶
You can have Python modules which maintain their state and have full access to Skype4Py instance. These modules can e.g.
- Perform timed background tasks with Skype
- Parse full Skype chat text, not just !commands
- Reach to calls, initiate calls
- Send SMS, etc.
Further info
Running commands on remote servers¶
The best way to execute commands on remote servers on UNIX is over SSH. Please read first the `basics how to setup SSH keys for the bot <http://opensourcehacker.com/2012/10/24/ssh-key-and-passwordless-login-basics-for-developers/>´_.
Below is an example backup.sh
which checks
- disk space usage
- the timestamp
of backup folders on a backup server over SSH.
backup.sh
:
#!/bin/sh
ssh root@example.com '
LOCATION="/srv/backup/backup/duply"
for l in $LOCATION/*; do
S=`du -sh $l`
TIME=`stat -c %y $l | cut -d " " -f1`
BPATH=`echo $S | cut -f2`
SIZE=`echo $S | cut -f1`
echo -e "$SIZE\t$TIME\t$BPATH"
done
'#
You you need to install SSH keys on skype
user to contact these servers:
ssh -a skype@sevabotserver.example.com
# Create key for the bot if one doesn't exist in .ssh/id_rsa
# Note: For safety reasons set passpharse. See reboot-seva script
# how passphrase enabled key is handled
ssh-keygen
# Copy the key to the remote server where you indent to run SSH commands
ssh-copy-id targetuser@targetserver.com