Home

Awesome

releaseCIDependencies
devCIDependencies

Open Issues License

for-science

A small Discord bot that you can send Clojure code to, to experiment with the language, demonstrate core language principles, or just mess about. Note: only supports the subset of Clojure's core provided by the Small Clojure Interpreter.

Please review the privacy policy before interacting with the bot.

Adding the Bot to Your Discord Server

If you're an administrator of a server, click here and follow the instructions. You will also need to ensure that the bot has permissions to read messages from other people, and create messages in every channel you want to use it in. The !move command also requires permission to delete other people's messages.

Using the Bot

The bot provides these commands in any channel or a DM:

It also provides these commands in a DM only:

Running Your Own Copy of the Bot

Obtaining API Keys

Configure a Discord bot using the Discord developer portal, obtaining an API key. Detailed instructions on this process are provided in the discljord project.

Running the Bot

Currently the bot is only distributed in source form, so regardless of how you intend to deploy it, you'll need to clone this repository locally.

Direct Execution

  1. Either set environment variables as described in the default config.edn file, or copy that file somewhere else and hardcode the values in the file directly.
  2. If you set the environment variables in the previous step run clj -M:run, otherwise run clj -M:run -c /path/to/your/config.edn

Contributor Information

Contributing Guidelines

Bug Tracker

Code of Conduct

Developer Workflow

This project uses the git-flow branching strategy, and the permanent branches are called release and dev, and any changes to the release branch are considered a release and auto-deployed (to Digital Ocean).

For this reason, all development must occur either in branch dev, or (preferably) in temporary branches off of dev. All PRs from forked repos must also be submitted against dev; the release branch is only updated from dev via PRs created by the core development team. All other changes submitted to release will be rejected.

License

Copyright © 2021 Peter Monks

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0