fix: [WIP] update About page types

This commit is contained in:
upsiflu 2025-03-24 10:23:13 +01:00
parent 940e1e7189
commit 8267a3e716
1 changed files with 72 additions and 71 deletions

View File

@ -1,5 +1,6 @@
import type { Module } from 'vuex' import type { Module } from 'vuex'
import type { RootState } from '~/store/index' import type { RootState } from '~/store/index'
import type { components } from '~/generated/types'
import axios from 'axios' import axios from 'axios'
import { merge } from 'lodash-es' import { merge } from 'lodash-es'
@ -11,7 +12,7 @@ export interface State {
frontSettings: FrontendSettings frontSettings: FrontendSettings
instanceUrl?: string instanceUrl?: string
knownInstances: string[] knownInstances: string[]
nodeinfo: NodeInfo | null nodeinfo: components['schemas']['NodeInfo20'] | null
settings: Settings settings: Settings
} }
@ -19,76 +20,76 @@ type TotalCount = {
total: number total: number
} }
export interface NodeInfo { // export interface NodeInfo {
version: string; // version: string;
software: { // software: {
name: string; // name: string;
version: string; // version: string;
} // }
protocols: any[]; // protocols: any[];
services?: { // services?: {
inbound?: string[]; // inbound?: string[];
outbound?: string[]; // outbound?: string[];
} // }
openRegistrations: boolean; // openRegistrations: boolean;
usage: { // usage: {
users: { // users: {
total: number; // total: number;
activeHalfyear: number; // activeHalfyear: number;
activeMonth: number; // activeMonth: number;
} // }
} // }
metadata: { // metadata: {
actorId: string // actorId: string
'private': boolean // 'private': boolean
shortDescription: string // shortDescription: string
longDescription: string // longDescription: string
rules: string // rules: string
contactEmail: string // contactEmail: string
terms: string // terms: string
nodeName: string // nodeName: string
banner: string // banner: string
defaultUploadQuota: number // defaultUploadQuota: number
content: { // content: {
federationEnabled: boolean // federationEnabled: boolean
anonymousCanListen: boolean // anonymousCanListen: boolean
local: { // local: {
tracks?: TotalCount // tracks?: TotalCount
artists?: TotalCount // artists?: TotalCount
albums?: TotalCount // albums?: TotalCount
hoursOfContent?: number } // hoursOfContent?: number }
} // }
topMusicCategories: [] // topMusicCategories: []
topPodcastCategories: [] // topPodcastCategories: []
federation: { // federation: {
followedInstances: number // followedInstances: number
followingInstances: number // followingInstances: number
} // }
supportedUploadExtensions: string[] // supportedUploadExtensions: string[]
allowList: { // allowList: {
enabled: boolean // enabled: boolean
domains: string[] // domains: string[]
} // }
reportTypes: { // reportTypes: {
'type': string // 'type': string
label: string // label: string
anonymous: boolean // anonymous: boolean
}[] // }[]
funkwhaleSupportMessageEnabled: boolean // funkwhaleSupportMessageEnabled: boolean
instanceSupportMessage: string // instanceSupportMessage: string
endpoints: { // endpoints: {
knownNodes?: string // knownNodes?: string
channels?: string // channels?: string
libraries?: string // libraries?: string
} // }
usage: { // usage: {
favorites: { tracks: TotalCount } // favorites: { tracks: TotalCount }
listenings: TotalCount // listenings: TotalCount
downloads: TotalCount // downloads: TotalCount
} // }
features:[] // features:[]
} // }
} // }
interface FrontendSettings { interface FrontendSettings {
defaultServerUrl: string defaultServerUrl: string