59 lines
1.0 KiB
Markdown
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. |