A simple python-based XMPP bot.
git clone
Log | Files | Refs | README | LICENSE (2992B)

      1 # Python XMPP Bot
      3 This is an XMPP Bot written in Python. It's currently in the "alpha" stage of
      4 development and is being actively worked on. It is currently in a working state
      5 and can be deployed to servers, but there may be breaking changes in subsequent
      6 versions so read the release notes carefully.
      8 ## Installation
     10 There isn't really a procedure to install the bot at the moment. You will need
     11 to clone this repo, `pip install xmpppy pytz` (or similar), fill out the config
     12 file and rename it to `botconfig.json`, and then run the bot on your server.
     13 Make sure you have already created an account on your XMPP server for your bot.
     15 ## Using
     17 The bot can be invited to an XMPP group chat the same way one would invite any
     18 other person. Once the bot is in the chat, run `.tbhelp` for a list of commands
     19 the bot can do.
     21 The users who have been configured as admins in the `botconfig.json` file can
     22 also see additional commands by messaging the bot directly with the `.tbhelp`
     23 command. Admin users can run these additional commands by messaging the bot
     24 directly (they will not work from within a group chat).
     26 ## Roadmap
     28 Here is a list of features I plan to add:
     30 * Implement command prefix config (i.e. `.tb` not hardcoded; can be configured)
     31 * Differentiate .tbrestart command into:
     32     * `<prefix>restart`: [ADMIN] Proper script restarting (using os.execv or something)
     33     * `<prefix>configreload`: [ADMIN] Config file reloading
     34     * `<prefix>reconnect`: [ADMIN] Simple disconnect/reconnect
     35 * Add more feature-full dice roller (e.g. ability to specify number of dice)
     36 * Add ability to add quotes to the quotes file (perhaps restrict to room
     37     owners/moderators).
     38 * Implement poll capabilities:
     39     * `<prefix>pollcreate <pollName> <duration> <multipleChoice=True|False>
     40         <option1> <option2> ... <optionN>`: Create a poll. The poll will only
     41         accept votes from the group chat in which it was created.
     42     * `<prefix>polllist`: List all ongoing polls for the current room.
     43     * `<prefix>polllistall`: [ADMIN] List all ongoing polls.
     44     * `<prefix>pollend <pollName>`: Prematurely end a poll.
     45     * `<prefix>pollview <pollName>`: View details about a poll running in the
     46         current room (name, remaining duration, options, number of votes, etc.)
     47     * `<prefix>pollviewall <pollName>`: [ADMIN] Like above but can see all polls.
     48     * `<prefix>pollvote <pollName> <option1> <option2> ... <optionN>`: Vote in a
     49         poll in the current room (only one option accepted if not multiple
     50         choice).
     51     * `<prefix>pollresults <pollName>`: Print the results of a poll from the
     52         current room which has ended including highlighting the winner.
     53     * `<prefix>pollresultsall <pollName>`: [ADMIN] Like above but can see all
     54         polls.
     55     * _Maybe_ ranked polls with specification of method used to determine the
     56         winner?
     57 * Expand bot documentation:
     58     * Comment class functions.
     59     * Add to README a detailed overview of the commands available.