feedsmith
Version:
Fast, all‑in‑one feed parser and generator for RSS, Atom, RDF, and JSON Feed, with support for Podcast, iTunes, Dublin Core, and OPML files.
180 lines • 3.66 kB
TypeScript
//#region src/namespaces/media/common/types.d.ts
declare namespace MediaNs {
type Rating = {
value: string;
scheme?: string;
};
type TitleOrDescription = {
value: string;
type?: string;
};
type Thumbnail = {
url: string;
height?: number;
width?: number;
time?: string;
};
type Category = {
name: string;
scheme?: string;
label?: string;
};
type Hash = {
value: string;
algo?: string;
};
type Player = {
url: string;
height?: number;
width?: number;
};
type Credit = {
value: string;
role?: string;
scheme?: string;
};
type Copyright = {
value: string;
url?: string;
};
type Text = {
value: string;
type?: string;
lang?: string;
start?: string;
end?: string;
};
type Restriction = {
value: string;
relationship: string;
type?: string;
};
type Community = {
starRating?: StarRating;
statistics?: Statistics;
tags?: Array<Tag>;
};
type StarRating = {
average?: number;
count?: number;
min?: number;
max?: number;
};
type Statistics = {
views?: number;
favorites?: number;
};
type Tag = {
name: string;
weight?: number;
};
type Embed = {
url: string;
width?: number;
height?: number;
params?: Array<Param>;
};
type Param = {
name: string;
value: string;
};
type Status = {
state: string;
reason?: string;
};
type Price = {
type?: string;
info?: string;
price?: number;
currency?: string;
};
type License = {
name?: string;
type?: string;
href?: string;
} & ({
name: string;
} | {
href: string;
});
type SubTitle = {
type?: string;
lang?: string;
href: string;
};
type PeerLink = {
type?: string;
href: string;
};
type Rights = {
status?: string;
};
type Scene = {
title?: string;
description?: string;
startTime?: string;
endTime?: string;
};
type Location = {
description?: string;
start?: string;
end?: string;
lat?: number;
lng?: number;
};
/** @internal Shared elements available across Content, Group, ItemOrFeed types. */
type CommonElements = {
ratings?: Array<Rating>;
title?: TitleOrDescription;
description?: TitleOrDescription;
keywords?: Array<string>;
thumbnails?: Array<Thumbnail>;
categories?: Array<Category>;
hashes?: Array<Hash>;
player?: Player;
credits?: Array<Credit>;
copyright?: Copyright;
texts?: Array<Text>;
restrictions?: Array<Restriction>;
community?: Community;
comments?: Array<string>;
embed?: Embed;
responses?: Array<string>;
backLinks?: Array<string>;
status?: Status;
prices?: Array<Price>;
licenses?: Array<License>;
subTitles?: Array<SubTitle>;
peerLinks?: Array<PeerLink>;
locations?: Array<Location>;
rights?: Rights;
scenes?: Array<Scene>;
};
type Content = {
url?: string;
fileSize?: number;
type?: string;
medium?: string;
isDefault?: boolean;
expression?: string;
bitrate?: number;
framerate?: number;
samplingrate?: number;
channels?: number;
duration?: number;
height?: number;
width?: number;
lang?: string;
} & CommonElements;
type Group = {
contents?: Array<Content>;
} & CommonElements;
type ItemOrFeed = {
groups?: Array<Group>;
contents?: Array<Content>;
/** @deprecated Use `groups` (array) instead. Multiple media:group elements are allowed per specification. */
group?: Group;
} & CommonElements;
}
//#endregion
export { MediaNs };