mirror of
https://github.com/diamondburned/arikawa.git
synced 2025-07-27 07:50:55 +00:00
Compare commits
No commits in common. "f4635803eec573e2ba6a692b0b7dd7f0d3556908" and "3230916c4588ef2f869a43137d52bbaddfcea23c" have entirely different histories.
f4635803ee
...
3230916c45
58
README.md
58
README.md
|
@ -1,43 +1,21 @@
|
|||
# arikawa
|
||||
|
||||
[![ Pipeline Status ][pipeline_img ]][pipeline ]
|
||||
[![ Coverage ][coverage_img ]][pipeline ]
|
||||
[![ Report Card ][goreportcard_img]][goreportcard]
|
||||
[![ Godoc Reference ][pkg.go.dev_img ]][pkg.go.dev ]
|
||||
[![ Examples ][examples_img ]][examples ]
|
||||
[![ Discord Gophers ][dgophers_img ]][dgophers ]
|
||||
[![ Hime Arikawa ][himeArikawa_img ]][himeArikawa ]
|
||||
[](https://gitlab.com/diamondburned/arikawa/pipelines )
|
||||
[](https://gitlab.com/diamondburned/arikawa/commits/v2 )
|
||||
[](https://goreportcard.com/report/github.com/diamondburned/arikawa)
|
||||
[](https://pkg.go.dev/github.com/diamondburned/arikawa )
|
||||
[](https://github.com/diamondburned/arikawa/tree/v2/_example )
|
||||
[](https://discord.gg/7jSf85J )
|
||||
[](https://hime-goto.fandom.com/wiki/Hime_Arikawa )
|
||||
|
||||
A Golang library for the Discord API.
|
||||
|
||||
[dgophers]: https://discord.gg/7jSf85J
|
||||
[dgophers_img]: https://img.shields.io/badge/Discord%20Gophers-%23arikawa-%237289da?style=flat-square
|
||||
|
||||
[examples]: https://github.com/diamondburned/arikawa/tree/v2/_example
|
||||
[examples_img]: https://img.shields.io/badge/Example-__example%2F-blueviolet?style=flat-square
|
||||
|
||||
[pipeline]: https://gitlab.com/diamondburned/arikawa/pipelines
|
||||
[pipeline_img]: https://gitlab.com/diamondburned/arikawa/badges/v2/pipeline.svg?style=flat-square
|
||||
[coverage_img]: https://gitlab.com/diamondburned/arikawa/badges/v2/coverage.svg?style=flat-square
|
||||
|
||||
[pkg.go.dev]: https://pkg.go.dev/github.com/diamondburned/arikawa/v2
|
||||
[pkg.go.dev_img]: https://pkg.go.dev/badge/github.com/diamondburned/arikawa/v2
|
||||
|
||||
[himeArikawa]: https://hime-goto.fandom.com/wiki/Hime_Arikawa
|
||||
[himeArikawa_img]: https://img.shields.io/badge/Hime-Arikawa-ea75a2?style=flat-square
|
||||
|
||||
[goreportcard]: https://goreportcard.com/report/github.com/diamondburned/arikawa
|
||||
[goreportcard_img]: https://goreportcard.com/badge/github.com/diamondburned/arikawa?style=flat-square
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
### [Simple](https://github.com/diamondburned/arikawa/tree/master/_example/simple)
|
||||
|
||||
Simple bot example without any state. All it does is logging messages sent into
|
||||
the console. Run with `BOT_TOKEN="TOKEN" go run .`. This example only
|
||||
demonstrates the most simple needs; in most cases, bots should use the state or
|
||||
the bot router.
|
||||
the console. Run with `BOT_TOKEN="TOKEN" go run .`.
|
||||
|
||||
### [Undeleter](https://github.com/diamondburned/arikawa/tree/master/_example/undeleter)
|
||||
|
||||
|
@ -45,19 +23,18 @@ A slightly more complicated example. This bot uses a local state to cache
|
|||
everything, including messages. It detects when someone deletes a message,
|
||||
logging the content into the console.
|
||||
|
||||
This example demonstrates the PreHandler feature of the state library.
|
||||
PreHandler calls all handlers that are registered (separately from the session),
|
||||
calling them before the state is updated.
|
||||
This example demonstrates the PreHandler feature of this library. PreHandler
|
||||
calls all handlers that are registered (separately from the session), calling
|
||||
them before the state is updated.
|
||||
|
||||
### [Advanced Bot](https://github.com/diamondburned/arikawa/tree/master/_example/advanced_bot)
|
||||
|
||||
A complex example demonstrating the reflect-based command router that's
|
||||
built-in. The router turns exported struct methods into commands, its arguments
|
||||
into command arguments, and more.
|
||||
|
||||
The library is documented in details in the [package
|
||||
documentation](https://pkg.go.dev/github.com/diamondburned/arikawa/bot).
|
||||
A pretty complicated example demonstrating the reflect-based command router
|
||||
that's built-in. The router turns exported struct methods into commands, its
|
||||
arguments into command arguments, and more.
|
||||
|
||||
The library has a pretty detailed documentation available in [GoDoc
|
||||
Reference](https://pkg.go.dev/github.com/diamondburned/arikawa/bot).
|
||||
|
||||
## Comparison: Why not discordgo?
|
||||
|
||||
|
@ -86,7 +63,6 @@ custom remote or local state storage.
|
|||
things in the state, which is useful for keeping it updated.
|
||||
- No code generation: just so the library is a lot easier to maintain.
|
||||
|
||||
|
||||
## Testing
|
||||
|
||||
The package includes integration tests that require `$BOT_TOKEN`. To run these
|
||||
|
@ -94,5 +70,5 @@ tests, do:
|
|||
|
||||
```sh
|
||||
export BOT_TOKEN="<BOT_TOKEN>"
|
||||
go test -tags integration -race ./...
|
||||
go test -tags integration ./...
|
||||
```
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// Package main demonstrates an advanced bot that uses the bot router library to
|
||||
// make commands.
|
||||
package main
|
||||
|
||||
import (
|
||||
|
@ -26,10 +24,6 @@ func main() {
|
|||
// Subcommand demo, but this can be in another package.
|
||||
ctx.MustRegisterSubcommand(&Debug{})
|
||||
|
||||
// The bot package will automatically derive out Gateway intents. It
|
||||
// might not catch everything though, so a ctx.Gateway.AddIntents is
|
||||
// always available.
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// Package main demonstrates a bare simple bot without a state cache. It logs
|
||||
// all messages it sees into stderr.
|
||||
package main
|
||||
|
||||
import (
|
||||
|
@ -32,10 +30,6 @@ func main() {
|
|||
}
|
||||
defer s.Close()
|
||||
|
||||
// Add the needed Gateway intents.
|
||||
s.Gateway.AddIntents(gateway.IntentGuildMessages)
|
||||
s.Gateway.AddIntents(gateway.IntentDirectMessages)
|
||||
|
||||
u, err := s.Me()
|
||||
if err != nil {
|
||||
log.Fatalln("Failed to get myself:", err)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
// Package main demonstrates the PreHandler API of the State.
|
||||
package main
|
||||
|
||||
import (
|
||||
|
@ -36,10 +35,6 @@ func main() {
|
|||
}
|
||||
})
|
||||
|
||||
// Add the needed Gateway intents.
|
||||
s.Gateway.AddIntents(gateway.IntentGuildMessages)
|
||||
s.Gateway.AddIntents(gateway.IntentDirectMessages)
|
||||
|
||||
if err := s.Open(); err != nil {
|
||||
log.Fatalln("Failed to connect:", err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue