|
- package nodeinfo
-
- type (
- NodeProtocol string
- NodeService string
- )
-
- const (
- // Protocols that can be supported by this node.
- ProtocolActivityPub NodeProtocol = "activitypub"
- ProtocolBuddyCloud = "buddycloud"
- ProtocolDFRN = "dfrn"
- ProtocolDisaspora = "diaspora"
- ProtocolLibertree = "libertree"
- ProtocolOStatus = "ostatus"
- ProtocolPumpIO = "pumpio"
- ProtocolTent = "tent"
- ProtocolXMPP = "xmpp"
- ProtocolZot = "zot"
-
- // Services that can be supported (inbound or outbound) by this node's API.
- ServiceAtom NodeService = "atom1.0"
- ServiceGNUSocial = "gnusocial"
- ServiceIMAP = "imap"
- ServicePnut = "pnut"
- ServicePOP3 = "pop3"
- ServicePumpIO = "pumpio"
- ServiceRSS = "rss2.0"
- ServiceTwitter = "twitter"
- ServiceTumblr = "tumblr"
- )
-
- type Config struct {
- BaseURL string
- InfoURL string
- Metadata Metadata
- Protocols []NodeProtocol
- Services Services
- Software SoftwareInfo
- }
-
- type (
- // NodeInfo includes all required node info.
- NodeInfo struct {
- Metadata Metadata `json:"metadata"`
- OpenRegistrations bool `json:"openRegistrations"`
- Protocols []NodeProtocol `json:"protocols"`
- Services Services `json:"services"`
- Software SoftwareInfo `json:"software"`
- Usage Usage `json:"usage"`
- Version string `json:"version"`
- }
-
- // Metadata for nodeinfo. Properties are based on what Pleroma uses.
- //
- // From the spec: Free form key value pairs for software specific values.
- // Clients should not rely on any specific key present.
- Metadata struct {
- NodeName string `json:"nodeName,omitempty"`
- NodeDescription string `json:"nodeDescription,omitempty"`
- Private bool `json:"private,omitempty"`
- Software SoftwareMeta `json:"software,omitempty"`
- }
-
- Services struct {
- Inbound []NodeService `json:"inbound"`
- Outbound []NodeService `json:"outbound"`
- }
-
- SoftwareInfo struct {
- // Name (canonical) of this server software.
- Name string `json:"name"`
- // Version of this server software.
- Version string `json:"version"`
- }
-
- SoftwareMeta struct {
- HomePage string `json:"homepage"`
- GitHub string `json:"github"`
- Follow string `json:"follow"`
- }
-
- // Usage is usage statistics for this server.
- Usage struct {
- Users UsageUsers `json:"users"`
- LocalPosts int `json:"localPosts,omitempty"`
- LocalComments int `json:"localComments,omitempty"`
- }
-
- UsageUsers struct {
- Total int `json:"total,omitempty"`
- ActiveHalfYear int `json:"activeHalfyear,omitempty"`
- ActiveMonth int `json:"activeMonth,omitempty"`
- }
- )
|