Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sylv/atlas
A Discord bot to unlock your creativity.
https://github.com/sylv/atlas
atlas atlas-bot discord discord-bot docker hacktoberfest javascript nodejs rust typescript whatareyoudoinghere
Last synced: 2 days ago
JSON representation
A Discord bot to unlock your creativity.
- Host: GitHub
- URL: https://github.com/sylv/atlas
- Owner: sylv
- License: agpl-3.0
- Created: 2023-08-05T13:33:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-10T20:35:04.000Z (29 days ago)
- Last Synced: 2024-12-26T20:32:14.157Z (13 days ago)
- Topics: atlas, atlas-bot, discord, discord-bot, docker, hacktoberfest, javascript, nodejs, rust, typescript, whatareyoudoinghere
- Language: TypeScript
- Homepage: https://atlas.bot
- Size: 1.41 MB
- Stars: 21
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# atlas
> [!NOTE]
> Atlas is not and will never be self-hostable. If that's what you're here for, you're out of luck.> [!WARNING]
> This repo is missing some parts of the bot, but over time most will be added.A Discord bot to unlock your creativity and unify your community.
## how
`pandora` connects to Discord and caches data from events, then dumps them into a nats queue. `bot` consumes those events and processes them. When the worker needs cached info, it talks to `pandora` over gRPC, in production through `eridium` so it can talk to the right `pandora` instance. When the worker needs to send data to Discord, it uses the `elpis` library which goes through a proxy service handling ratelimiting aross the whole bot.
The GraphQL API `api` for the dashboard `web` both talk to `pandora` over gRPC for cached data and in the future, some realtime capabiltiies.
libraries or services with links are open source. the rest are *currently* closed source, but may be open sourced in the future.
### services
- `api` - the GraphQL API for the dashboard
- `bot` - the worker service that consumes events from `pandora` and processes them using `elpis`
- `eridium` - a grpc proxy that takes requests from `bot` and sends them to the `pandora` instance that has the relevant cache
- `pandora` - the gateway service that connects to Discord and caches data
- `web` - the dashboard### libraries
- [colour](./packages/colour) - colour utilities and presets
- [configs](./packages/configs) - eslint and tsconfig files
- [core](./packages/core) - reusable generic utilities used in many places, including the web
- [discord-utilities](./packages/discord-utilities) - utilities for Discord, closely tied to elpis but can run in browsers
- [emoji](./packages/emoji) - emoji sheets and utilities for dealing with ~~an abomination~~ emojis
- [parsers](./packages/parsers) - does this need an explanation? numbers, booleans, time - dealing with humans is hard.
- [razorback](./packages/razorback) - an experimental reimplementation of our scripting language `pella`
- `common` - [core](./packages/core) but specific to server-side code.
- `elpis` - wraps discords API and pulls from pandora for cached data instead of having its own cache. also handles ratelimiting through a proxy.
- `pella` - our custom scripting language.
- `logging` - wraps pino and makes it easier to reuse.