Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Merge pull request #3 from valera-rozuvan/patch-1

Update README.rst
latest commit 81c4d3171b
Sean B. Palmer authored November 19, 2013
Octocat-spinner-32 data Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 standard Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 test Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 LICENSE Initial commit September 09, 2012
Octocat-spinner-32 MANIFEST Better defined process-safe and command-safe interfaces September 19, 2012
Octocat-spinner-32 Makefile Better defined process-safe and command-safe interfaces September 19, 2012
Octocat-spinner-32 README.rst Update README.rst November 19, 2013
Octocat-spinner-32 __init__.py Initial commit September 09, 2012
Octocat-spinner-32 __main__.py Initial commit September 09, 2012
Octocat-spinner-32 api.py Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 config.py Added dynamic configration file options September 17, 2012
Octocat-spinner-32 console.py Push it to the API, Patrick! September 15, 2012
Octocat-spinner-32 duxlot New process manager, scheduler, and test framework September 13, 2012
Octocat-spinner-32 duxlot.py Added dynamic configration file options September 17, 2012
Octocat-spinner-32 functions.py New process manager, scheduler, and test framework September 13, 2012
Octocat-spinner-32 irc.py Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 options.py Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 prepare.py New process manager, scheduler, and test framework September 13, 2012
Octocat-spinner-32 process.py Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 publish.sh Added dynamic configration file options September 17, 2012
Octocat-spinner-32 script.py Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 setup.py Fixed module importing, added rfc command, cleaned up admin.py September 21, 2012
Octocat-spinner-32 storage.py New process manager, scheduler, and test framework September 13, 2012
README.rst

Duxlot, the IRC Bot

Duxlot is a new IRC bot created by Sean B. Palmer, the maker of the popular Phenny. Features include a fast multiprocess architecture, modularity, and ease of use. Duxlot has no dependencies except Python 3, and will even work without having to be installed as a package.

Install

WARNING: This is an pre-release alpha version of Duxlot. The API and features may change, and the bot may not be stable.

Get Python 3.2 or later.

You may use either of these methods:

  • Download the latest source:

    duxlot-0.9.21-1653.tar.bz2

    Unpack it and enter duxlot-0.9.21-1653/

    Optionally install using:

    python3 setup.py install
    
  • OR: Install from pypi using pip:

    pip install duxlot
    

Optionally use virtualenv for either of these methods.

You can now use the duxlot script—either the one in the package that you downloaded, or the one that should be on your $PATH from installation.

Use

WARNING: The entire Duxlot API is not yet stable, including the configuration file. Early adopters will find themselves having to change the configuration files often, with undocumented changes occurring.

Duxlot works by loading a JSON configuration file specified by the user. To create a default configuration file with some options filled in to work from, do:

duxlot create

This will create a file at ~/.duxlot/duxlot.json, which is the default configuration file. You can also create this file manually, if you prefer. You can then edit the file with various options recognised by Duxlot. Here's an example:

{
    "address": "barjavel.freenode.net:6667",
    "nick": "duxlot001",
    "prefix": "^",
    "admin-owner": "you",
    "start-channels": ["#duxlot-test"]
}

A summary of all allowed options is given in the section below.

You can then run the bot either as a daemon:

duxlot start

Or in the foreground:

duxlot --foreground start

If you run the bot as a daemon, you will be told the PID of the daemon. You can stop the bot using the stop action:

duxlot stop

Or by sending a SIGTERM signal to the PID manually.

To find out what else the duxlot script can do, try these commands:

duxlot --help
duxlot --usage

Options

These are the allowed option fields for the configuration file:

address: Server to connect to, as "[ssl ]<hostname>[:<port>]"
nick: Nick for the bot to use for itself
prefix: Default prefix used across all channels for commands
admin-channels: Channels in which some admin commands can be used
admin-owner: Owner of the bot, allowed to use owner commands
admin-users: Users who are allowed to use admin commands
core-private: Private channels where seen data should not be recorded
start-channels: List of channels to join on connecting to the server
start-nickserv: Password to send to the NickServ services bot
start-password: Password to send to the server

Story

People love Phenny, the predecessor of Duxlot. Some of them have wondered how Duxlot relates to Phenny. Stay tuned for information!

Pronunciation

Duxlot is pronounced djuːksləʊ, or dʌksləʊ, in IPA.

Credits

  • David P. Kendal (@dpkendal), who helped me to debug
  • Smedley Butler (@epivalent), who helped me to maintain bug isostasy
  • Björn Höhrmann (@hoehrmann), who confused me into adding bugs
Something went wrong with that request. Please try again.