110 lines
3.1 KiB
TypeScript
110 lines
3.1 KiB
TypeScript
import { BaseItemKind, SortOrder } from '@jellyfin/sdk/lib/generated-client';
|
|
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
|
|
import { CardOptions } from './cardOptions';
|
|
import { SectionsView } from './libraryTabContent';
|
|
|
|
export interface ParametersOptions {
|
|
sortBy?: ItemSortBy[];
|
|
sortOrder?: SortOrder[];
|
|
includeItemTypes?: BaseItemKind[];
|
|
isAiring?: boolean;
|
|
hasAired?: boolean;
|
|
isMovie?: boolean;
|
|
isSports?: boolean;
|
|
isKids?: boolean;
|
|
isNews?: boolean;
|
|
isSeries?: boolean;
|
|
isInProgress?: boolean;
|
|
IsActive?: boolean;
|
|
IsScheduled?: boolean;
|
|
limit?: number;
|
|
imageTypeLimit?: number;
|
|
}
|
|
|
|
export enum SectionApiMethod {
|
|
ResumeItems = 'resumeItems',
|
|
LatestMedia = 'latestMedia',
|
|
NextUp = 'nextUp',
|
|
RecommendedPrograms = 'RecommendedPrograms',
|
|
LiveTvPrograms = 'liveTvPrograms',
|
|
Recordings = 'Recordings',
|
|
RecordingFolders = 'RecordingFolders'
|
|
}
|
|
|
|
export enum SectionType {
|
|
ContinueWatchingMovies = 'continuewatchingmovies',
|
|
LatestMovies = 'latestmovies',
|
|
ContinueWatchingEpisode = 'continuewatchingepisode',
|
|
LatestEpisode = 'latestepisode',
|
|
NextUp = 'nextUp',
|
|
LatestMusic = 'latestmusic',
|
|
RecentlyPlayedMusic = 'recentlyplayedmusic',
|
|
FrequentlyPlayedMusic = 'frequentlyplayedmusic',
|
|
ActivePrograms = 'ActivePrograms',
|
|
UpcomingEpisodes = 'UpcomingEpisodes',
|
|
UpcomingMovies = 'UpcomingMovies',
|
|
UpcomingSports = 'UpcomingSports',
|
|
UpcomingKids = 'UpcomingKids',
|
|
UpcomingNews = 'UpcomingNews',
|
|
LatestRecordings = 'LatestRecordings',
|
|
RecordingFolders = 'RecordingFolders',
|
|
ActiveRecordings = 'ActiveRecordings',
|
|
UpcomingRecordings = 'UpcomingRecordings'
|
|
}
|
|
|
|
export interface Section {
|
|
name: string;
|
|
type: SectionType;
|
|
apiMethod?: SectionApiMethod;
|
|
itemTypes: string;
|
|
parametersOptions?: ParametersOptions;
|
|
cardOptions: CardOptions;
|
|
}
|
|
|
|
export const MovieSuggestionsSectionsView: SectionsView = {
|
|
suggestionSections: [
|
|
SectionType.ContinueWatchingMovies,
|
|
SectionType.LatestMovies
|
|
],
|
|
isMovieRecommendations: true
|
|
};
|
|
|
|
export const TvShowSuggestionsSectionsView: SectionsView = {
|
|
suggestionSections: [
|
|
SectionType.ContinueWatchingEpisode,
|
|
SectionType.LatestEpisode,
|
|
SectionType.NextUp
|
|
]
|
|
};
|
|
|
|
export const MusicSuggestionsSectionsView: SectionsView = {
|
|
suggestionSections: [
|
|
SectionType.LatestMusic,
|
|
SectionType.FrequentlyPlayedMusic,
|
|
SectionType.RecentlyPlayedMusic
|
|
]
|
|
};
|
|
|
|
export const ProgramSectionsView: SectionsView = {
|
|
programSections: [
|
|
SectionType.ActivePrograms,
|
|
SectionType.UpcomingEpisodes,
|
|
SectionType.UpcomingMovies,
|
|
SectionType.UpcomingSports,
|
|
SectionType.UpcomingKids,
|
|
SectionType.UpcomingNews
|
|
]
|
|
};
|
|
|
|
export const RecordingsSectionsView: SectionsView = {
|
|
programSections: [
|
|
SectionType.LatestRecordings,
|
|
SectionType.RecordingFolders
|
|
]
|
|
};
|
|
|
|
export const ScheduleSectionsView: SectionsView = {
|
|
programSections: [SectionType.ActiveRecordings],
|
|
isLiveTvUpcomingRecordings: true
|
|
};
|