yitsushi / go-misskey

Misskey Go SDK
GNU General Public License v3.0
48 stars 12 forks source link
golang hacktoberfest misskey misskey-client sdk

Go Report Card Coverage Status GoDoc Chat on Matrix

Misskey Go SDK

Misskey API Documentation: https://slippy.xyz/api-doc

Check the docs directory for more information.

For examples on given endpoints, please check the corresponding _test.go file, they have at least one ExampleService_XYZ function, examples:

Progress

Status Endpoint Group Implementation Issue Note
:white_check_mark: antennas #3
:white_check_mark: app #5
:white_check_mark: clips #8
:white_check_mark: drive #9
:white_check_mark: federation #4
:white_check_mark: following #10
:white_check_mark: groups #19
:white_check_mark: hashtags #12
:white_check_mark: meta
:white_check_mark: notes #6
:white_check_mark: notifications #15
:white_check_mark: reactions #14
:warning: admin #21 In Progress (84%)
:x: account
:x: auth
:x: channels
:x: charts #7
:x: list #20
:x: messaging #13
:x: pages #16
:x: users #17

How to use

For detailed examples, check the example directory.

package main

import (
    "log"
    "os"

    "github.com/sirupsen/logrus"
    "github.com/yitsushi/go-misskey"
    "github.com/yitsushi/go-misskey/core"
    "github.com/yitsushi/go-misskey/services/meta"
)

func main() {
    client, err := misskey.NewClientWithOptions(
        misskey.WithAPIToken(os.Getenv("MISSKEY_TOKEN")),
        misskey.WithBaseURL("https", "slippy.xyz", ""),
        misskey.WithLogLevel(logrus.DebugLevel),
    )
    if err != nil {
        logrus.Error(err.Error())
    }

    stats, err := client.Meta().Stats()
    if err != nil {
        log.Printf("[Meta] Error happened: %s", err)
        return
    }

    log.Printf("[Stats] Instances:          %d", stats.Instances)
    log.Printf("[Stats] NotesCount:         %d", stats.NotesCount)
    log.Printf("[Stats] UsersCount:         %d", stats.UsersCount)
    log.Printf("[Stats] OriginalNotesCount: %d", stats.OriginalNotesCount)
    log.Printf("[Stats] OriginalUsersCount: %d", stats.OriginalUsersCount)
}

How can I get a Misskey Token?

Navigate to Settings > API and there you generate a new token.

How can I debug what's wrong?

There is a logging system, right now it's not very wide spread in the codebase, but if you turn it on, you will be able to see:

To enable debug mode, just change the LogLevel to DebugLevel:

client, _ := misskey.NewClientWithOptions(
    misskey.WithAPIToken(os.Getenv("MISSKEY_TOKEN")),
    misskey.WithBaseURL("https", "slippy.xyz", ""),
    misskey.WithLogLevel(logrus.DebugLevel),
)

The output should look like this:

DEBU[0000] POST https://slippy.xyz/api/antennas/show     _type=request
DEBU[0000] {"antennaId":"8dbpybhulw","i":"my misskey token"}  _type=request
DEBU[0000] {"id":"8dbpybhulw","createdAt":"2020-10-13T16:03:22.674Z","name":"Genshin Impact","keywords":[["genshin"]],"excludeKeywords":[[""]],"src":"all","userListId":null,"userGroupId":null,"users":[""],"caseSensitive":false,"notify":false,"withReplies":true,"withFile":false,"hasUnreadNote":false}  _type=response code=200 from="https://slippy.xyz/api/antennas/show"