Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mattfbacon/typst-bot
A discord bot to render Typst code
https://github.com/mattfbacon/typst-bot
Last synced: 3 months ago
JSON representation
A discord bot to render Typst code
- Host: GitHub
- URL: https://github.com/mattfbacon/typst-bot
- Owner: mattfbacon
- License: agpl-3.0
- Created: 2023-03-22T08:24:36.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-05T00:44:16.000Z (5 months ago)
- Last Synced: 2024-09-07T08:12:39.005Z (5 months ago)
- Language: Rust
- Size: 38.5 MB
- Stars: 56
- Watchers: 3
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-typst - typst-bot - A discord bot to render Typst code (Integrations & Tools / Chatbots)
- awesome-typst-cn - typst-bot
README
# Typst Bot
A Discord bot that renders Typst code.
Built with poise so it has all the goodies like edit tracking, typing status, and automatic help generation.
## Hosting
The bot uses two binaries:
- `bot`: connects to Discord and processes messages
- `worker`: receives requests, interacts with Typst, responds`bot` will automatically spawn `worker`, so you only need to run `bot`.
To set up the working environment, create a directory with the following items:
- `worker`: The worker binary, copied/hardlinked from the target directory after building.
- `bot`: The bot binary, copied/hardlinked from the target directory after building. (This doesn't need to be in this directory, but having everything in one place simplifies things.)
- `db.sqlite`: You can just `touch` this, but the bot needs to be able to write to it.
(Legacy note: you don't need `fonts` anymore because we use `typst-assets` now.)To run, CD into this directory, set `DISCORD_TOKEN` to your bot token, set `CACHE_DIRECTORY` and `DB_PATH` to suitable locations, and run the `bot` binary (not the `worker` binary that's also in the directory).
### Docker
There is a `Dockerfile` and `docker-compose.yml` for running the bot inside a Docker container.
To set up the bot with Docker, create a `.env` file like the following:
```
DISCORD_TOKEN=YourBotTokenHere
```and start the container with `docker compose up -d`.
### Public Instance
Here is a link you can use to invite a public instance run by [@frozolotl](https://github.com/frozolotl): https://discord.com/oauth2/authorize?client_id=1183804211264225301&permissions=3072&scope=bot
Note: the bot may be limited from joining more servers because we require the message content (since slash commands don't support code blocks) and Discord denied verification, so we are limited to 100 servers. Accordingly, we request that you remove the bot from your servers if you are not using it anymore.
## License
AGPL. Use `?source` to get a link to the source from deployments of the bot.