mirror of https://github.com/Ombi-app/Ombi
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
361 lines
7.8 KiB
361 lines
7.8 KiB
import { ISettings } from "./ICommon";
|
|
import { RequestLimitType } from ".";
|
|
|
|
export interface IExternalSettings extends ISettings {
|
|
ssl: boolean;
|
|
subDir: string;
|
|
ip: string;
|
|
port: number;
|
|
}
|
|
|
|
export interface IOmbiSettings extends ISettings {
|
|
baseUrl: string;
|
|
collectAnalyticData: boolean;
|
|
wizard: boolean;
|
|
apiKey: string;
|
|
doNotSendNotificationsForAutoApprove: boolean;
|
|
hideRequestsUsers: boolean;
|
|
defaultLanguageCode: string;
|
|
disableHealthChecks: boolean;
|
|
autoDeleteAvailableRequests: boolean;
|
|
autoDeleteAfterDays: number;
|
|
branch: Branch;
|
|
}
|
|
|
|
export enum Branch {
|
|
Stable = 1,
|
|
Develop = 0
|
|
}
|
|
|
|
export interface IUpdateSettings extends ISettings {
|
|
autoUpdateEnabled: boolean;
|
|
username: string;
|
|
password: string;
|
|
processName: string;
|
|
useScript: boolean;
|
|
scriptLocation: string;
|
|
windowsService: boolean;
|
|
windowsServiceName: string;
|
|
isWindows: boolean;
|
|
testMode: boolean;
|
|
}
|
|
|
|
export interface IEmbySettings extends ISettings {
|
|
enable: boolean;
|
|
servers: IEmbyServer[];
|
|
}
|
|
|
|
export interface IEmbyServer extends IExternalSettings {
|
|
serverId: string;
|
|
name: string;
|
|
apiKey: string;
|
|
administratorId: string;
|
|
enableEpisodeSearching: boolean;
|
|
serverHostname: string;
|
|
embySelectedLibraries: IEmbyLibrariesSettings[];
|
|
}
|
|
|
|
export interface IPublicInfo {
|
|
id: string;
|
|
serverName: string;
|
|
}
|
|
|
|
export interface IJellyfinSettings extends ISettings {
|
|
enable: boolean;
|
|
servers: IJellyfinServer[];
|
|
}
|
|
|
|
export interface IJellyfinServer extends IExternalSettings {
|
|
serverId: string;
|
|
name: string;
|
|
apiKey: string;
|
|
administratorId: string;
|
|
enableEpisodeSearching: boolean;
|
|
serverHostname: string;
|
|
jellyfinSelectedLibraries: IJellyfinLibrariesSettings[];
|
|
}
|
|
export interface IJellyfinLibrariesSettings {
|
|
key: string;
|
|
title: string;
|
|
enabled: boolean;
|
|
collectionType: string;
|
|
}
|
|
export interface IEmbyLibrariesSettings {
|
|
key: string;
|
|
title: string;
|
|
enabled: boolean;
|
|
collectionType: string;
|
|
}
|
|
|
|
export interface IMediaServerMediaContainer<T> {
|
|
items: T[];
|
|
totalRecordCount: number;
|
|
}
|
|
|
|
export interface IJellyfinLibrary {
|
|
name: string;
|
|
serverId: string;
|
|
id: string;
|
|
collectionType: string;
|
|
}
|
|
export interface IEmbyLibrary {
|
|
name: string;
|
|
serverId: string;
|
|
id: string;
|
|
collectionType: string;
|
|
}
|
|
|
|
export interface IPublicInfo {
|
|
id: string;
|
|
serverName: string;
|
|
}
|
|
|
|
export interface IPlexSettings extends ISettings {
|
|
enable: boolean;
|
|
enableWatchlistImport: boolean;
|
|
servers: IPlexServer[];
|
|
}
|
|
|
|
export interface IPlexServer extends IExternalSettings {
|
|
name: string;
|
|
enableEpisodeSearching: boolean;
|
|
plexAuthToken: string;
|
|
machineIdentifier: string;
|
|
episodeBatchSize: number;
|
|
plexSelectedLibraries: IPlexLibrariesSettings[];
|
|
serverHostname: string;
|
|
}
|
|
|
|
export interface IPlexLibrariesSettings {
|
|
key: string;
|
|
title: string;
|
|
enabled: boolean;
|
|
}
|
|
|
|
export interface ISonarrSettings extends IExternalSettings {
|
|
apiKey: string;
|
|
enabled: boolean;
|
|
qualityProfile: string;
|
|
qualityProfileAnime: string;
|
|
seasonFolders: boolean;
|
|
rootPath: string;
|
|
rootPathAnime: string;
|
|
fullRootPath: string;
|
|
addOnly: boolean;
|
|
v3: boolean;
|
|
languageProfile: number;
|
|
languageProfileAnime: number;
|
|
scanForAvailability: boolean;
|
|
}
|
|
|
|
export interface IRadarrSettings extends IExternalSettings {
|
|
enabled: boolean;
|
|
apiKey: string;
|
|
defaultQualityProfile: number;
|
|
defaultRootPath: string;
|
|
fullRootPath: string;
|
|
addOnly: boolean;
|
|
minimumAvailability: string;
|
|
scanForAvailability: boolean;
|
|
}
|
|
|
|
export interface IRadarrCombined {
|
|
radarr: IRadarrSettings;
|
|
radarr4K: IRadarrSettings;
|
|
}
|
|
|
|
export interface ILidarrSettings extends IExternalSettings {
|
|
enabled: boolean;
|
|
apiKey: string;
|
|
defaultQualityProfile: string;
|
|
defaultRootPath: string;
|
|
fullRootPath: string;
|
|
metadataProfileId: number;
|
|
languageProfileId: number;
|
|
albumFolder: boolean;
|
|
addOnly: boolean;
|
|
}
|
|
|
|
export interface ILandingPageSettings extends ISettings {
|
|
enabled: boolean;
|
|
|
|
noticeEnabled: boolean;
|
|
noticeText: string;
|
|
|
|
timeLimit: boolean;
|
|
startDateTime: Date;
|
|
endDateTime: Date;
|
|
expired: boolean;
|
|
}
|
|
|
|
export interface ICustomizationSettings extends ISettings {
|
|
applicationName: string;
|
|
applicationUrl: string;
|
|
logo: string;
|
|
customCss: string;
|
|
enableCustomDonations: boolean;
|
|
customDonationUrl: string;
|
|
customDonationMessage: string;
|
|
recentlyAddedPage: boolean;
|
|
useCustomPage: boolean;
|
|
hideAvailableFromDiscover: boolean;
|
|
favicon: string;
|
|
}
|
|
|
|
export interface IJobSettings {
|
|
embyContentSync: string;
|
|
jellyfinContentSync: string;
|
|
sonarrSync: string;
|
|
radarrSync: string;
|
|
plexContentSync: string;
|
|
couchPotatoSync: string;
|
|
automaticUpdater: string;
|
|
userImporter: string;
|
|
sickRageSync: string;
|
|
newsletter: string;
|
|
plexRecentlyAddedSync: string;
|
|
lidarrArtistSync: string;
|
|
issuesPurge: string;
|
|
retryRequests: string;
|
|
mediaDatabaseRefresh: string;
|
|
autoDeleteRequests: string;
|
|
embyRecentlyAddedSync: string;
|
|
plexWatchlistImport: string;
|
|
}
|
|
|
|
export interface IIssueSettings extends ISettings {
|
|
enabled: boolean;
|
|
enableInProgress: boolean;
|
|
deleteIssues: boolean;
|
|
daysAfterResolvedToDelete: number;
|
|
}
|
|
|
|
export interface IAuthenticationSettings extends ISettings {
|
|
allowNoPassword: boolean;
|
|
// Password
|
|
|
|
requiredDigit: boolean;
|
|
requiredLength: number;
|
|
requiredLowercase: boolean;
|
|
requireNonAlphanumeric: boolean;
|
|
requireUppercase: boolean;
|
|
enableOAuth: boolean;
|
|
enableHeaderAuth: boolean;
|
|
headerAuthVariable: string;
|
|
}
|
|
|
|
export interface ICustomPage extends ISettings {
|
|
enabled: boolean;
|
|
fontAwesomeIcon: string;
|
|
title: string;
|
|
html: any;
|
|
}
|
|
|
|
export interface IUserManagementSettings extends ISettings {
|
|
importPlexUsers: boolean;
|
|
importPlexAdmin: boolean;
|
|
importEmbyUsers: boolean;
|
|
importJellyfinUsers: boolean;
|
|
defaultRoles: string[];
|
|
movieRequestLimit: number;
|
|
episodeRequestLimit: number;
|
|
musicRequestLimit: number;
|
|
bannedPlexUserIds: string[];
|
|
bannedEmbyUserIds: string[];
|
|
bannedJellyfinUserIds: string[];
|
|
defaultStreamingCountry: string;
|
|
movieRequestLimitType: RequestLimitType;
|
|
episodeRequestLimitType: RequestLimitType;
|
|
musicRequestLimitType: RequestLimitType;
|
|
}
|
|
|
|
export interface IAbout {
|
|
version: string;
|
|
branch: string;
|
|
osArchitecture: string;
|
|
osDescription: string;
|
|
processArchitecture: string;
|
|
applicationBasePath: string;
|
|
ombiDatabaseType: string;
|
|
externalDatabaseType: string;
|
|
settingsDatabaseType: string;
|
|
storagePath: string;
|
|
notSupported: boolean;
|
|
}
|
|
|
|
export interface ICouchPotatoSettings extends IExternalSettings {
|
|
enabled: boolean;
|
|
apiKey: string;
|
|
defaultProfileId: string;
|
|
username: string;
|
|
password: string;
|
|
}
|
|
|
|
export interface ISickRageSettings extends IExternalSettings {
|
|
enabled: boolean;
|
|
apiKey: string;
|
|
qualityProfile: string;
|
|
qualities: IDropDownModel[];
|
|
}
|
|
|
|
export interface IDropDownModel {
|
|
value: string;
|
|
display: string;
|
|
}
|
|
|
|
export interface IDogNzbSettings extends ISettings {
|
|
enabled: boolean;
|
|
apiKey: string;
|
|
movies: boolean;
|
|
tvShows: boolean;
|
|
}
|
|
|
|
export interface IIssueCategory extends ISettings {
|
|
value: string;
|
|
}
|
|
|
|
export interface ICronTestModel {
|
|
success: boolean;
|
|
message: string;
|
|
}
|
|
|
|
export interface ICronViewModelBody {
|
|
expression: string;
|
|
}
|
|
|
|
export interface IJobSettingsViewModel {
|
|
result: boolean;
|
|
message: string;
|
|
}
|
|
|
|
export interface IVoteSettings extends ISettings {
|
|
enabled: boolean;
|
|
movieVoteMax: number;
|
|
musicVoteMax: number;
|
|
tvShowVoteMax: number;
|
|
}
|
|
|
|
export interface ITheMovieDbSettings extends ISettings {
|
|
showAdultMovies: boolean;
|
|
excludedKeywordIds: number[];
|
|
excludedMovieGenreIds: number[];
|
|
excludedTvGenreIds: number[];
|
|
originalLanguages: string[];
|
|
}
|
|
|
|
export interface IUpdateModel
|
|
{
|
|
updateVersionString: string;
|
|
updateVersion: number;
|
|
updateDate: Date,
|
|
updateAvailable: boolean;
|
|
changeLogs: string;
|
|
downloads: IUpdateDonloads[];
|
|
}
|
|
|
|
export interface IUpdateDonloads
|
|
{
|
|
name: string;
|
|
url: string
|
|
}
|