iridaceae

module
v0.0.0-...-99e36ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2021 License: MIT

README

~ 虹彩 ~


golang Go Report Card Codecov GitHub issues GitHub commit checks state


A general purpose discord bot that focuses on readability and developer-friendly

install. VimL Go Heroku git

$ go install github.com/Iridaceae/iridaceae/cmd/iridaceae-server

folder structures.

.
├── bin
├── cmd           # bot cli, including both iridaceae and concertina        # lg: Go
├── internal      # internal schenanigans                                   # lg: Go
├── pkg           # bot logics, including message queries with configstore  # lg: Go
├── web           # bots front-facing api,                                  # lg: Rust
└── scripts

check each folder readme for more information

inspirations.

why Go not TS/JS?
  • TypeScript and JavaScripts are amazing, and the fact that web elements for iridaceae will use React and Next.js, refers to here
  • Why Go then? Go is an awesome language with its interface and concurrency I just want to build a bot in Go 😄
  • Also, front-facing API will be written in Rust as a way to learn the language.
why iridaceae when we already had yagpdb?
  • yagpdb are pretty clunky and bloated in the sense that the maintainer uses a lot of boilerplate, whereas iridaceae goals are to stay minimal and bloat-free as possible
  • yagpdb structures are pretty messy and harder for development and thus iridaceae aims to make it more developer-friendly as well as user-friendly
  • iridaceae got a lot of inspirations from yagpdb but takes a more lightweight approaches considering structures and deployments, refers to here for more details
  • iridaceae is pretty much WIP so any help are appreciated

Directories

Path Synopsis
cmd
internal
components
Package components contains all static and support variables for iris.
Package components contains all static and support variables for iris.
database
Package database handles all database configuration
Package database handles all database configuration
testutils/cbor
Package cbor provides primitives for storing different data in the CBOR (binary) format.
Package cbor provides primitives for storing different data in the CBOR (binary) format.
pkg
acceptmsg
Package acceptmsg provides a message models for discordgo which can be either accepted or declined via reactions.
Package acceptmsg provides a message models for discordgo which can be either accepted or declined via reactions.
configmanager
Package configparser defines some default configs handler including a configparser parser with ability to update value dynamically
Package configparser defines some default configs handler including a configparser parser with ability to update value dynamically
deprecatedrunner
Package deprecatedrunner contains v1 bot functionality, deprecated in next update.
Package deprecatedrunner contains v1 bot functionality, deprecated in next update.
helpers
Package helpers contains helpers functions that can be use globally.
Package helpers contains helpers functions that can be use globally.
log
Package log provides a structured context logger.
Package log provides a structured context logger.
pomodoro
Package pomodoro provides functionality for pomodoro techniques.
Package pomodoro provides functionality for pomodoro techniques.
rosetta
Package rosetta is iridaceae internal command parser.
Package rosetta is iridaceae internal command parser.
rosetta/ratelimit
Package ratelimit provides a basic token-bucket limiter for rosetta router.
Package ratelimit provides a basic token-bucket limiter for rosetta router.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL