radiobrowser-api-client
Version:
Client for Radio Browser API
428 lines (298 loc) • 10.3 kB
text/typescript
import { JsonProperty, JsonObject } from 'typescript-json-serializer';
export class Server {
public name: string;
public ip: string;
}
export class Station {
public changeUUID: string;
public stationUUID: string;
public serverUUID: string;
public name: string;
public url: string;
public urlResolved: string;
public homepageUrl: string;
public faviconUrl: string | null;
public tags: string[];
public countryName: string;
public countryCode: string;
public state: string;
public languageNames: string;
public languageCodes: string;
public votes: number;
public lastChangeTime: Date;
public codec: string;
public bitrate: number;
public hls: boolean;
public lastCheckOk: boolean;
public lastCheckDate: Date;
public lastCheckOkDate: Date;
public lastClickDate: Date;
public clickCount: number;
public clickTrend: number;
public sslError: boolean;
public geoLat: number | null;
public geoLong: number | null;
public hasExtendedInfo: boolean | null;
}
export class Country {
public name: string;
public code: string;
public stationCount: number;
}
export class Codec {
public name: string;
public stationCount: number;
}
export class State {
public name: string;
public countryName: string;
public stationCount: number;
}
export class Language {
public name: string;
public code: string | null;
public stationCount: number;
}
export class Tag {
public name: string;
public stationCount: number;
}
export class StationCheck {
public checkUUID: string;
public stationUUID: string;
public source: string;
public codec: string;
public bitrate: number;
public hls: boolean;
public ok: boolean;
public date: Date;
public urlCache: string;
public metainfoOverridesDatabase: boolean;
public public: boolean | null;
public name: string | null;
public description: string | null;
public tags: string[] | null;
public countryCode: string | null;
public countrySubdivisionCode: string | null;
public homepageUrl: string | null;
public faviconUrl: string | null;
public loadBalancer: string | null;
public serverSoftware: string | null;
public sampling: number | null;
public timingMs: number;
public languageCodes: string[] | null;
public sslError: boolean;
public geoLat: number | null;
public geoLong: number | null;
}
export class StationCheckStep {
public stepUUID: string;
public parentStepUUID: string | null;
public checkUUID: string;
public stationUUID: string;
public url: string;
public urlType: 'STREAM' | 'REDIRECT' | 'PLAYLIST' | null;
public error: string | null;
public createdAt: Date;
}
export class ServerStats {
public supportedVersion: number;
public softwareVersion: string;
public status: string;
public stations: number;
public brokenStations: number;
public tags: number;
public clicksLastHour: number;
public clicksLastDay: number;
public languages: number;
public countries: number;
}
export class ServerConfig {
public checkEnabled: boolean;
public prometheusExporterEnabled: boolean;
public pullServers: string[];
public tcpTimeoutSeconds: number;
public brokenStationsNeverWorkingTimeoutSeconds: number;
public brokenStationsTimeoutSeconds: number;
public checksTimeoutSeconds: number;
public clickValidTimeoutSeconds: number;
public clicksTimeoutSeconds: number;
public mirrorPullIntervalSeconds: number;
public updateCachesIntervalSeconds: number;
public serverName: string;
public serverLocation: string;
public serverCountryCode: string;
public checkRetries: number;
public checkBatchsize: number;
public checkPauseSeconds: number;
public apiThreads: number;
public cacheType: string;
public cacheTtl: number;
public languageReplaceFilepath: string;
public languageToCodeFilepath: string;
}
export class StationOldVersion {
public changeUUID: string;
public stationUUID: string;
public name: string;
public url: string;
public homepageUrl: string;
public faviconUrl: string | null;
public tags: string[];
public countryName: string;
public countryCode: string;
public state: string;
public languageNames: string;
public languageCodes: string;
public votes: number;
public lastChangeTime: Date;
public geoLat: number | null;
public geoLong: number | null;
}
export class StationClick {
public stationUUID: string;
public clickUUID: string;
public clickDate: Date;
}