python-xmpp-bot

A simple python-based XMPP bot.
git clone https://git.sr.ht/~jbauer/python-xmpp-bot
Log | Files | Refs | README | LICENSE

README.md (2992B)


      1 # Python XMPP Bot
      2 
      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.
      7 
      8 ## Installation
      9 
     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.
     14 
     15 ## Using
     16 
     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.
     20 
     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).
     25 
     26 ## Roadmap
     27 
     28 Here is a list of features I plan to add:
     29 
     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.