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: 26 days 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 (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-27T19:46:37.000Z (about 1 month ago)
- Last Synced: 2024-05-28T05:20:17.433Z (about 1 month ago)
- Language: Rust
- Size: 38.5 MB
- Stars: 52
- Watchers: 3
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- 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:
- `fonts`: Copied from the repo. ~~Make sure you have Git LFS set up so the fonts are downloaded properly.~~ The fonts no longer use LFS due to GitHub's new transfer limits.
- `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.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
## License
AGPL. Use `?source` to get a link to the source from deployments of the bot.