78 lines
3.1 KiB
Swift
78 lines
3.1 KiB
Swift
//
|
|
// JellyfinItemField.swift
|
|
//
|
|
// Copyright 2026 Brendan Szymanski <hello@bscubed.dev>
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
//
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
//
|
|
|
|
/// Optional metadata a Jellyfin server only populates when explicitly asked for.
|
|
///
|
|
/// Item responses are lean by default: overviews, genres, media streams, and similar heavy fields
|
|
/// stay `nil` unless the corresponding field is requested. Request only what a screen renders --
|
|
/// every added field costs server work and response size.
|
|
package enum JellyfinItemField: String, CaseIterable, Hashable, Sendable {
|
|
/// The long-form synopsis.
|
|
case overview = "Overview"
|
|
/// The genres attached to the item.
|
|
case genres = "Genres"
|
|
/// Marketing taglines.
|
|
case taglines = "Taglines"
|
|
/// Free-form tags.
|
|
case tags = "Tags"
|
|
/// The producing studios.
|
|
case studios = "Studios"
|
|
/// Cast and crew.
|
|
case people = "People"
|
|
/// External database identifiers such as IMDb or TMDb.
|
|
case providerIDs = "ProviderIds"
|
|
/// The playable media sources, including container and bitrate.
|
|
case mediaSources = "MediaSources"
|
|
/// The audio, video, and subtitle streams of each media source.
|
|
case mediaStreams = "MediaStreams"
|
|
/// Chapter markers.
|
|
case chapters = "Chapters"
|
|
/// Trickplay tile metadata used for seek previews.
|
|
case trickplay = "Trickplay"
|
|
/// Whether the current user may play the item.
|
|
case playAccess = "PlayAccess"
|
|
/// The identifier of the containing item.
|
|
case parentID = "ParentId"
|
|
/// The studio of the parent series, for episodes.
|
|
case seriesStudio = "SeriesStudio"
|
|
/// The title in the original production language.
|
|
case originalTitle = "OriginalTitle"
|
|
/// How many direct children the item has.
|
|
case childCount = "ChildCount"
|
|
/// How many descendants the item has in total.
|
|
case recursiveItemCount = "RecursiveItemCount"
|
|
/// Whether the current user may delete the item.
|
|
case canDelete = "CanDelete"
|
|
/// Whether the current user may download the item.
|
|
case canDownload = "CanDownload"
|
|
/// The video width in pixels.
|
|
case width = "Width"
|
|
/// The video height in pixels.
|
|
case height = "Height"
|
|
/// Whether the item is high definition.
|
|
case isHighDefinition = "IsHD"
|
|
/// When the item was added to the library.
|
|
case dateCreated = "DateCreated"
|
|
/// The server-computed sort title.
|
|
case sortName = "SortName"
|
|
/// The aspect ratio of the primary image.
|
|
case primaryImageAspectRatio = "PrimaryImageAspectRatio"
|
|
}
|