go-lemmy/README.md

59 lines
1.0 KiB
Markdown

# Go-Lemmy
[![Go Reference](https://pkg.go.dev/badge/go.arsenm.dev/go-lemmy.svg)](https://pkg.go.dev/go.arsenm.dev/go-lemmy)
Go bindings to the [Lemmy](https://join-lemmy.org) API, automatically generated directly from Lemmy's source code using the generator in [cmd/gen](cmd/gen).
Example:
```go
ctx := context.Background()
c, err := lemmy.New("https://lemmygrad.ml")
if err != nil {
panic(err)
}
err = c.ClientLogin(ctx, types.Login{
UsernameOrEmail: "user@example.com",
Password: `TestPwd`,
})
if err != nil {
panic(err)
}
_, err = c.SaveUserSettings(ctx, types.SaveUserSettings{
BotAccount: types.NewOptional(true),
})
if err != nil {
panic(err)
}
```
### How to generate
First, build the generator:
```bash
go build ./cmd/gen
```
Clone Lemmy's source code at whatever version you need:
```bash
git clone https://github.com/LemmyNet/lemmy -b 0.16.7
```
Remove all the existing generated code:
```bash
rm **/*.gen.go
```
Execute the generator:
```bash
./gen -out-dir .
```
And that's it! Your generated code should be ready for use.