Skip to content

Repository files navigation

go-nodeinfo

GoDocDiscuss on our forum

go-nodeinfo is an implementation of NodeInfo, a standard metadata format for federated social networks, in Go (golang).

This fork contains extra metadata specifically for WriteFreely.

Usage

nodeinfo.Service integrates with your existing net/http server.

package main
import (
"github.com/writefreely/go-nodeinfo""net/http"
)
funcmain() {
cfg:= nodeinfo.Config{
BaseURL: "http://localhost:8080",
InfoURL: "/api/nodeinfo",
Metadata: nodeinfo.Metadata{
NodeName: "Agora",
NodeDescription: "A federated something-something.",
Private: false,
},
Protocols: []nodeinfo.NodeProtocol{
nodeinfo.ProtocolActivityPub,
},
Services: nodeinfo.Services{
Inbound: []nodeinfo.NodeService{},
Outbound: []nodeinfo.NodeService{
nodeinfo.ServiceTwitter,
nodeinfo.ServiceTumblr,
},
},
Software: nodeinfo.SoftwareInfo{
Name: "Agora",
Version: "1.0",
},
}
ni:=nodeinfo.NewService(cfg, nodeInfoResolver{})
http.Handle(nodeinfo.NodeInfoPath, http.HandlerFunc(ni.NodeInfoDiscover))
http.Handle(cfg.InfoURL, http.HandlerFunc(ni.NodeInfo))
http.ListenAndServe(":8080", nil)
}
typenodeInfoResolverstruct{}
func (rnodeInfoResolver) IsOpenRegistration() (bool, error) {
returntrue, nil
}
func (rnodeInfoResolver) Usage() (nodeinfo.Usage, error) {
u:= nodeinfo.Usage{
Users: nodeinfo.UsageUsers{
Total: 1,
},
LocalPosts: 1,
}
returnu, nil
}

About

NodeInfo server implemented in Go

Topics

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages