GoBlog/nodeinfo.go

56 lines
1.2 KiB
Go

package main
import "github.com/writeas/go-nodeinfo"
var (
nodeInfoConfig *nodeinfo.Config
nodeInfoService *nodeinfo.Service
)
func initNodeInfo() {
nodeInfoConfig = &nodeinfo.Config{
BaseURL: appConfig.Server.PublicAddress,
InfoURL: "/nodeinfo",
Metadata: nodeinfo.Metadata{
NodeName: appConfig.Blogs[appConfig.DefaultBlog].Title,
NodeDescription: appConfig.Blogs[appConfig.DefaultBlog].Description,
},
Protocols: []nodeinfo.NodeProtocol{
nodeinfo.ProtocolActivityPub,
"micropub",
"webmention",
},
Services: nodeinfo.Services{
Inbound: []nodeinfo.NodeService{},
Outbound: []nodeinfo.NodeService{
nodeinfo.ServiceAtom,
nodeinfo.ServiceRSS,
"jsonfeed",
"activitystreams2.0",
"telegram",
},
},
Software: nodeinfo.SoftwareInfo{
Name: appUserAgent,
},
}
nodeInfoService = nodeinfo.NewService(*nodeInfoConfig, &nodeInfoResolver{})
}
type nodeInfoResolver struct{}
func (r *nodeInfoResolver) IsOpenRegistration() (bool, error) {
return false, nil
}
func (r *nodeInfoResolver) Usage() (nodeinfo.Usage, error) {
postCount, _ := countPosts(&postsRequestConfig{})
u := nodeinfo.Usage{
Users: nodeinfo.UsageUsers{
Total: len(appConfig.Blogs),
},
LocalPosts: postCount,
}
return u, nil
}