This is an XMPP Bot written in Python. It's currently in the "alpha" stage of development and is being actively worked on. It is currently in a working state and can be deployed to servers, but there may be breaking changes in subsequent versions so read the release notes carefully.
There isn't really a procedure to install the bot at the moment. You will need
to clone this repo,
pip install xmpppy pytz (or similar), fill out the config
file and rename it to
botconfig.json, and then run the bot on your server.
Make sure you have already created an account on your XMPP server for your bot.
The bot can be invited to an XMPP group chat the same way one would invite any
other person. Once the bot is in the chat, run
.tbhelp for a list of commands
the bot can do.
The users who have been configured as admins in the
botconfig.json file can
also see additional commands by messaging the bot directly with the
command. Admin users can run these additional commands by messaging the bot
directly (they will not work from within a group chat).
Here is a list of features I plan to add:
.tbnot hardcoded; can be configured)
<prefix>restart: [ADMIN] Proper script restarting (using os.execv or something)
<prefix>configreload: [ADMIN] Config file reloading
<prefix>reconnect: [ADMIN] Simple disconnect/reconnect
<prefix>pollcreate <pollName> <duration> <multipleChoice=True|False> <option1> <option2> ... <optionN>: Create a poll. The poll will only accept votes from the group chat in which it was created.
<prefix>polllist: List all ongoing polls for the current room.
<prefix>polllistall: [ADMIN] List all ongoing polls.
<prefix>pollend <pollName>: Prematurely end a poll.
<prefix>pollview <pollName>: View details about a poll running in the current room (name, remaining duration, options, number of votes, etc.)
<prefix>pollviewall <pollName>: [ADMIN] Like above but can see all polls.
<prefix>pollvote <pollName> <option1> <option2> ... <optionN>: Vote in a poll in the current room (only one option accepted if not multiple choice).
<prefix>pollresults <pollName>: Print the results of a poll from the current room which has ended including highlighting the winner.
<prefix>pollresultsall <pollName>: [ADMIN] Like above but can see all polls.