Chocobozzz/PeerTube

View on GitHub
packages/models/src/nodeinfo/nodeinfo.model.ts

Summary

Maintainability
A
2 hrs
Test Coverage
/**
 * NodeInfo schema version 2.0.
 */
export interface HttpNodeinfoDiasporaSoftwareNsSchema20 {
  /**
   * The schema version, must be 2.0.
   */
  version: '2.0'
  /**
   * Metadata about server software in use.
   */
  software: {
    /**
     * The canonical name of this server software.
     */
    name: string
    /**
     * The version of this server software.
     */
    version: string
  }
  /**
   * The protocols supported on this server.
   */
  protocols: (
    | 'activitypub'
    | 'buddycloud'
    | 'dfrn'
    | 'diaspora'
    | 'libertree'
    | 'ostatus'
    | 'pumpio'
    | 'tent'
    | 'xmpp'
    | 'zot')[]
  /**
   * The third party sites this server can connect to via their application API.
   */
  services: {
    /**
     * The third party sites this server can retrieve messages from for combined display with regular traffic.
     */
    inbound: ('atom1.0' | 'gnusocial' | 'imap' | 'pnut' | 'pop3' | 'pumpio' | 'rss2.0' | 'twitter')[]
    /**
     * The third party sites this server can publish messages to on the behalf of a user.
     */
    outbound: (
      | 'atom1.0'
      | 'blogger'
      | 'buddycloud'
      | 'diaspora'
      | 'dreamwidth'
      | 'drupal'
      | 'facebook'
      | 'friendica'
      | 'gnusocial'
      | 'google'
      | 'insanejournal'
      | 'libertree'
      | 'linkedin'
      | 'livejournal'
      | 'mediagoblin'
      | 'myspace'
      | 'pinterest'
      | 'pnut'
      | 'posterous'
      | 'pumpio'
      | 'redmatrix'
      | 'rss2.0'
      | 'smtp'
      | 'tent'
      | 'tumblr'
      | 'twitter'
      | 'wordpress'
      | 'xmpp')[]
  }
  /**
   * Whether this server allows open self-registration.
   */
  openRegistrations: boolean
  /**
   * Usage statistics for this server.
   */
  usage: {
    /**
     * statistics about the users of this server.
     */
    users: {
      /**
       * The total amount of on this server registered users.
       */
      total?: number
      /**
       * The amount of users that signed in at least once in the last 180 days.
       */
      activeHalfyear?: number
      /**
       * The amount of users that signed in at least once in the last 30 days.
       */
      activeMonth?: number
    }
    /**
     * The amount of posts that were made by users that are registered on this server.
     */
    localPosts?: number
    /**
     * The amount of comments that were made by users that are registered on this server.
     */
    localComments?: number
  }
  /**
   * Free form key value pairs for software specific values. Clients should not rely on any specific key present.
   */
  metadata: {
    [k: string]: any
  }
}