3898 lines
108 KiB
Rust
3898 lines
108 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
use std::collections::BTreeMap;
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AccessSchedule {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub id: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub user_id: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub day_of_week: Option<DayOfWeek>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub start_hour: Option<f64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub end_hour: Option<f64>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ActivityLogEntry {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub id: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub name: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub overview: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub short_overview: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub r#type: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub item_id: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub date: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub user_id: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub user_primary_image_tag: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub severity: Option<LogLevel>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ActivityLogEntryMessage {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub data: Option<Vec<ActivityLogEntry>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub message_id: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub message_type: Option<SessionMessageType>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ActivityLogEntryQueryResult {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub items: Option<Vec<ActivityLogEntry>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub total_record_count: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub start_index: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ActivityLogEntryStartMessage {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub data: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub message_type: Option<SessionMessageType>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ActivityLogEntryStopMessage {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub message_type: Option<SessionMessageType>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AddVirtualFolderDto {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub library_options: Option<LibraryOptions>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AlbumInfo {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub name: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub original_title: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub path: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata_language: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata_country_code: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub year: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub index_number: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub parent_index_number: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub premiere_date: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub is_automated: Option<bool>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub album_artists: Option<Vec<String>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub artist_provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub song_infos: Option<Vec<SongInfo>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AlbumInfoRemoteSearchQuery {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub search_info: Option<AlbumInfo>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub item_id: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub search_provider_name: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub include_disabled_providers: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AllThemeMediaResult {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub theme_videos_result: Option<ThemeMediaResult>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub theme_songs_result: Option<ThemeMediaResult>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub soundtrack_songs_result: Option<ThemeMediaResult>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ApiName(pub String);
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ArtistInfo {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub name: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub original_title: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub path: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata_language: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata_country_code: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub year: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub index_number: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub parent_index_number: Option<i32>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub premiere_date: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub is_automated: Option<bool>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub song_infos: Option<Vec<SongInfo>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ArtistInfoRemoteSearchQuery {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub search_info: Option<ArtistInfo>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub item_id: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub search_provider_name: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub include_disabled_providers: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum AudioSpatialFormat {
|
|
None,
|
|
DolbyAtmos,
|
|
DTSX,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AuthenticateUserByName {
|
|
pub username: Option<String>,
|
|
pub pw: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AuthenticationInfo {
|
|
pub id: Option<i64>,
|
|
pub access_token: Option<String>,
|
|
pub device_id: Option<String>,
|
|
pub app_name: Option<String>,
|
|
pub app_version: Option<String>,
|
|
pub device_name: Option<String>,
|
|
pub user_id: Option<String>,
|
|
pub is_active: Option<bool>,
|
|
pub date_created: Option<String>,
|
|
pub date_revoked: Option<String>,
|
|
pub date_last_activity: Option<String>,
|
|
pub user_name: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AuthenticationInfoQueryResult {
|
|
pub items: Option<Vec<AuthenticationInfo>>,
|
|
pub total_record_count: Option<i32>,
|
|
pub start_index: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AuthenticationResult {
|
|
pub user: Option<UserDto>,
|
|
pub session_info: Option<SessionInfoDto>,
|
|
pub access_token: Option<String>,
|
|
pub server_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BaseItemDto {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub server_id: Option<String>,
|
|
pub id: String,
|
|
pub etag: Option<String>,
|
|
pub source_type: Option<String>,
|
|
pub playlist_item_id: Option<String>,
|
|
pub date_created: Option<String>,
|
|
pub date_last_media_added: Option<String>,
|
|
pub extra_type: Option<ExtraType>,
|
|
pub airs_before_season_number: Option<i32>,
|
|
pub airs_after_season_number: Option<i32>,
|
|
pub airs_before_episode_number: Option<i32>,
|
|
pub can_delete: Option<bool>,
|
|
pub can_download: Option<bool>,
|
|
pub has_lyrics: Option<bool>,
|
|
pub has_subtitles: Option<bool>,
|
|
pub preferred_metadata_language: Option<String>,
|
|
pub preferred_metadata_country_code: Option<String>,
|
|
pub container: Option<String>,
|
|
pub sort_name: Option<String>,
|
|
pub forced_sort_name: Option<String>,
|
|
pub video_3_d_format: Option<Video3DFormat>,
|
|
pub premiere_date: Option<String>,
|
|
pub external_urls: Option<Vec<ExternalUrl>>,
|
|
pub media_sources: Option<Vec<MediaSourceInfo>>,
|
|
pub critic_rating: Option<f32>,
|
|
pub production_locations: Option<Vec<String>>,
|
|
pub path: Option<String>,
|
|
pub enable_media_source_display: Option<bool>,
|
|
pub official_rating: Option<String>,
|
|
pub custom_rating: Option<String>,
|
|
pub channel_id: Option<String>,
|
|
pub channel_name: Option<String>,
|
|
pub overview: Option<String>,
|
|
pub taglines: Option<Vec<String>>,
|
|
pub genres: Option<Vec<String>>,
|
|
pub community_rating: Option<f32>,
|
|
pub cumulative_run_time_ticks: Option<i64>,
|
|
pub run_time_ticks: Option<i64>,
|
|
pub play_access: Option<PlayAccess>,
|
|
pub aspect_ratio: Option<String>,
|
|
pub production_year: Option<i32>,
|
|
pub is_placeholder: Option<bool>,
|
|
pub number: Option<String>,
|
|
pub channel_number: Option<String>,
|
|
pub index_number: Option<i32>,
|
|
pub index_number_end: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub remote_trailers: Option<Vec<MediaUrl>>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub is_hd: Option<bool>,
|
|
pub is_folder: Option<bool>,
|
|
pub parent_id: Option<String>,
|
|
pub r#type: Option<BaseItemKind>,
|
|
pub people: Option<Vec<BaseItemPerson>>,
|
|
pub studios: Option<Vec<NameGuidPair>>,
|
|
pub genre_items: Option<Vec<NameGuidPair>>,
|
|
pub parent_logo_item_id: Option<String>,
|
|
pub parent_backdrop_item_id: Option<String>,
|
|
pub parent_backdrop_image_tags: Option<Vec<String>>,
|
|
pub local_trailer_count: Option<i32>,
|
|
pub user_data: Option<UserItemDataDto>,
|
|
pub recursive_item_count: Option<i32>,
|
|
pub child_count: Option<i32>,
|
|
pub series_name: Option<String>,
|
|
pub series_id: Option<String>,
|
|
pub season_id: Option<String>,
|
|
pub special_feature_count: Option<i32>,
|
|
pub display_preferences_id: Option<String>,
|
|
pub status: Option<String>,
|
|
pub air_time: Option<String>,
|
|
pub air_days: Option<Vec<DayOfWeek>>,
|
|
pub tags: Option<Vec<String>>,
|
|
pub primary_image_aspect_ratio: Option<f64>,
|
|
pub artists: Option<Vec<String>>,
|
|
pub artist_items: Option<Vec<NameGuidPair>>,
|
|
pub album: Option<String>,
|
|
pub collection_type: Option<CollectionType>,
|
|
pub display_order: Option<String>,
|
|
pub album_id: Option<String>,
|
|
pub album_primary_image_tag: Option<String>,
|
|
pub series_primary_image_tag: Option<String>,
|
|
pub album_artist: Option<String>,
|
|
pub album_artists: Option<Vec<NameGuidPair>>,
|
|
pub season_name: Option<String>,
|
|
pub media_streams: Option<Vec<MediaStream>>,
|
|
pub video_type: Option<VideoType>,
|
|
pub part_count: Option<i32>,
|
|
pub media_source_count: Option<i32>,
|
|
pub image_tags: Option<BTreeMap<String, String>>,
|
|
pub backdrop_image_tags: Option<Vec<String>>,
|
|
pub screenshot_image_tags: Option<Vec<String>>,
|
|
pub parent_logo_image_tag: Option<String>,
|
|
pub parent_art_item_id: Option<String>,
|
|
pub parent_art_image_tag: Option<String>,
|
|
pub series_thumb_image_tag: Option<String>,
|
|
pub image_blur_hashes: Option<ImageBlurHashes>,
|
|
pub series_studio: Option<String>,
|
|
pub parent_thumb_item_id: Option<String>,
|
|
pub parent_thumb_image_tag: Option<String>,
|
|
pub parent_primary_image_item_id: Option<String>,
|
|
pub parent_primary_image_tag: Option<String>,
|
|
pub chapters: Option<Vec<ChapterInfo>>,
|
|
pub trickplay: Option<BTreeMap<String, BTreeMap<String, TrickplayInfo>>>,
|
|
pub location_type: Option<LocationType>,
|
|
pub iso_type: Option<IsoType>,
|
|
pub media_type: Option<MediaType>,
|
|
pub end_date: Option<String>,
|
|
pub locked_fields: Option<Vec<MetadataField>>,
|
|
pub trailer_count: Option<i32>,
|
|
pub movie_count: Option<i32>,
|
|
pub series_count: Option<i32>,
|
|
pub program_count: Option<i32>,
|
|
pub episode_count: Option<i32>,
|
|
pub song_count: Option<i32>,
|
|
pub album_count: Option<i32>,
|
|
pub artist_count: Option<i32>,
|
|
pub music_video_count: Option<i32>,
|
|
pub lock_data: Option<bool>,
|
|
pub width: Option<i32>,
|
|
pub height: Option<i32>,
|
|
pub camera_make: Option<String>,
|
|
pub camera_model: Option<String>,
|
|
pub software: Option<String>,
|
|
pub exposure_time: Option<f64>,
|
|
pub focal_length: Option<f64>,
|
|
pub image_orientation: Option<ImageOrientation>,
|
|
pub aperture: Option<f64>,
|
|
pub shutter_speed: Option<f64>,
|
|
pub latitude: Option<f64>,
|
|
pub longitude: Option<f64>,
|
|
pub altitude: Option<f64>,
|
|
pub iso_speed_rating: Option<i32>,
|
|
pub series_timer_id: Option<String>,
|
|
pub program_id: Option<String>,
|
|
pub channel_primary_image_tag: Option<String>,
|
|
pub start_date: Option<String>,
|
|
pub completion_percentage: Option<f64>,
|
|
pub is_repeat: Option<bool>,
|
|
pub episode_title: Option<String>,
|
|
pub channel_type: Option<ChannelType>,
|
|
pub audio: Option<ProgramAudio>,
|
|
pub is_movie: Option<bool>,
|
|
pub is_sports: Option<bool>,
|
|
pub is_series: Option<bool>,
|
|
pub is_live: Option<bool>,
|
|
pub is_news: Option<bool>,
|
|
pub is_kids: Option<bool>,
|
|
pub is_premiere: Option<bool>,
|
|
pub timer_id: Option<String>,
|
|
pub normalization_gain: Option<f32>,
|
|
pub current_program: Option<BaseItemDto>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BaseItemDtoQueryResult {
|
|
pub items: Option<Vec<BaseItemDto>>,
|
|
pub total_record_count: Option<i32>,
|
|
pub start_index: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum BaseItemKind {
|
|
AggregateFolder,
|
|
Audio,
|
|
AudioBook,
|
|
BasePluginFolder,
|
|
Book,
|
|
BoxSet,
|
|
Channel,
|
|
ChannelFolderItem,
|
|
CollectionFolder,
|
|
Episode,
|
|
Folder,
|
|
Genre,
|
|
ManualPlaylistsFolder,
|
|
Movie,
|
|
LiveTvChannel,
|
|
LiveTvProgram,
|
|
MusicAlbum,
|
|
MusicArtist,
|
|
MusicGenre,
|
|
MusicVideo,
|
|
Person,
|
|
Photo,
|
|
PhotoAlbum,
|
|
Playlist,
|
|
PlaylistsFolder,
|
|
Program,
|
|
Recording,
|
|
Season,
|
|
Series,
|
|
Studio,
|
|
Trailer,
|
|
TvChannel,
|
|
TvProgram,
|
|
UserRootFolder,
|
|
UserView,
|
|
Video,
|
|
Year,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BaseItemPerson {
|
|
pub name: Option<String>,
|
|
pub id: String,
|
|
pub role: Option<String>,
|
|
pub r#type: Option<PersonKind>,
|
|
pub primary_image_tag: Option<String>,
|
|
pub image_blur_hashes: Option<ImageBlurHashes>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BasePluginConfiguration {
|
|
// no properties
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BookInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: Option<bool>,
|
|
pub series_name: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BookInfoRemoteSearchQuery {
|
|
pub search_info: Option<BookInfo>,
|
|
pub item_id: Option<String>,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BoxSetInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BoxSetInfoRemoteSearchQuery {
|
|
pub search_info: Option<BoxSetInfo>,
|
|
pub item_id: Option<String>,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BrandingOptions {
|
|
pub login_disclaimer: Option<String>,
|
|
pub custom_css: Option<String>,
|
|
pub splashscreen_enabled: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct BufferRequestDto {
|
|
pub when: Option<String>,
|
|
pub position_ticks: Option<i64>,
|
|
pub is_playing: Option<bool>,
|
|
pub playlist_item_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CastReceiverApplication {
|
|
pub id: String,
|
|
pub name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ChannelFeatures {
|
|
pub name: String,
|
|
pub id: String,
|
|
pub can_search: Option<bool>,
|
|
pub media_types: Option<Vec<ChannelMediaType>>,
|
|
pub content_types: Option<Vec<ChannelMediaContentType>>,
|
|
pub max_page_size: Option<i32>,
|
|
pub auto_refresh_levels: Option<i32>,
|
|
pub default_sort_fields: Option<Vec<ChannelItemSortField>>,
|
|
pub supports_sort_order_toggle: Option<bool>,
|
|
pub supports_latest_media: Option<bool>,
|
|
pub can_filter: Option<bool>,
|
|
pub supports_content_downloading: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ChannelItemSortField {
|
|
Name,
|
|
CommunityRating,
|
|
PremiereDate,
|
|
DateCreated,
|
|
Runtime,
|
|
PlayCount,
|
|
CommunityPlayCount,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ChannelMappingOptionsDto {
|
|
pub tuner_channels: Option<Vec<TunerChannelMapping>>,
|
|
pub provider_channels: Option<Vec<NameIdPair>>,
|
|
pub mappings: Option<Vec<NameValuePair>>,
|
|
pub provider_name: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ChannelMediaContentType {
|
|
Clip,
|
|
Podcast,
|
|
Trailer,
|
|
Movie,
|
|
Episode,
|
|
Song,
|
|
MovieExtra,
|
|
TvExtra,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ChannelMediaType {
|
|
Audio,
|
|
Video,
|
|
Photo,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ChannelType {
|
|
TV,
|
|
Radio,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ChapterInfo {
|
|
pub start_position_ticks: Option<i64>,
|
|
pub name: Option<String>,
|
|
pub image_path: Option<String>,
|
|
pub image_date_modified: Option<String>,
|
|
pub image_tag: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CheckpointId {
|
|
pub id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ClientCapabilitiesDto {
|
|
pub playable_media_types: Option<Vec<MediaType>>,
|
|
pub supported_commands: Option<Vec<GeneralCommandType>>,
|
|
pub supports_media_control: Option<bool>,
|
|
pub supports_persistent_identifier: Option<bool>,
|
|
pub device_profile: Option<DeviceProfile>,
|
|
pub app_store_url: Option<String>,
|
|
pub icon_url: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ClientLogDocumentResponseDto {
|
|
pub file_name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CodecProfile {
|
|
pub r#type: Option<CodecType>,
|
|
pub conditions: Option<Vec<ProfileCondition>>,
|
|
pub apply_conditions: Option<Vec<ProfileCondition>>,
|
|
pub codec: Option<String>,
|
|
pub container: Option<String>,
|
|
pub sub_container: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum CodecType {
|
|
Video,
|
|
VideoAudio,
|
|
Audio,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CollectionCreationResult {
|
|
pub id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum CollectionType {
|
|
Unknown,
|
|
Movies,
|
|
Tvshows,
|
|
Music,
|
|
Musicvideos,
|
|
Trailers,
|
|
Homevideos,
|
|
Boxsets,
|
|
Books,
|
|
Photos,
|
|
Livetv,
|
|
Playlists,
|
|
Folders,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum CollectionTypeOptions {
|
|
Movies,
|
|
Tvshows,
|
|
Music,
|
|
Musicvideos,
|
|
Homevideos,
|
|
Boxsets,
|
|
Books,
|
|
Mixed,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ConfigImageTypes {
|
|
pub backdrop_sizes: Option<Vec<String>>,
|
|
pub base_url: Option<String>,
|
|
pub logo_sizes: Option<Vec<String>>,
|
|
pub poster_sizes: Option<Vec<String>>,
|
|
pub profile_sizes: Option<Vec<String>>,
|
|
pub secure_base_url: Option<String>,
|
|
pub still_sizes: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ConfigurationPageInfo {
|
|
pub name: String,
|
|
pub enable_in_main_menu: Option<bool>,
|
|
pub menu_section: Option<String>,
|
|
pub menu_icon: Option<String>,
|
|
pub display_name: Option<String>,
|
|
pub plugin_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ContainerProfile {
|
|
pub r#type: Option<DlnaProfileType>,
|
|
pub conditions: Option<Vec<ProfileCondition>>,
|
|
pub container: Option<String>,
|
|
pub sub_container: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum CountryInfo {
|
|
Name(String),
|
|
DisplayName(String),
|
|
TwoLetterISORegionName(String),
|
|
ThreeLetterISORegionName(String),
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CreatePlaylistDto {
|
|
pub name: String,
|
|
pub ids: Option<Vec<String>>,
|
|
pub user_id: Option<String>,
|
|
pub media_type: Option<MediaType>,
|
|
pub users: Option<Vec<PlaylistUserPermissions>>,
|
|
pub is_public: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CreateUserByName {
|
|
pub name: String,
|
|
pub password: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CultureDto {
|
|
pub name: String,
|
|
pub display_name: String,
|
|
pub two_letter_i_s_o_language_name: String,
|
|
pub three_letter_i_s_o_language_name: Option<String>,
|
|
pub three_letter_i_s_o_language_names: Vec<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum DayOfWeek {
|
|
Sunday,
|
|
Monday,
|
|
Tuesday,
|
|
Wednesday,
|
|
Thursday,
|
|
Friday,
|
|
Saturday,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum DayPattern {
|
|
Daily,
|
|
Weekdays,
|
|
Weekends,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct DefaultDirectoryBrowserInfoDto {
|
|
pub path: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum DeinterlaceMethod {
|
|
Yadif,
|
|
Bwdif,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum DeviceInfoDto {
|
|
Name: Option<String>,
|
|
CustomName: Option<String>,
|
|
AccessToken: Option<String>,
|
|
Id: Option<String>,
|
|
LastUserName: Option<String>,
|
|
AppName: Option<String>,
|
|
AppVersion: Option<String>,
|
|
LastUserId: Option<String>,
|
|
DateLastActivity: Option<String>,
|
|
Capabilities: Option<ClientCapabilitiesDto>,
|
|
IconUrl: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct DeviceInfoDtoQueryResult {
|
|
pub items: Option<Vec<DeviceInfoDto>>,
|
|
pub total_record_count: Option<i32>,
|
|
pub start_index: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct DeviceOptionsDto {
|
|
pub id: Option<i32>,
|
|
pub device_id: Option<String>,
|
|
pub custom_name: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct DeviceProfile {
|
|
pub name: Option<String>,
|
|
pub id: Option<String>,
|
|
pub max_streaming_bitrate: Option<i32>,
|
|
pub max_static_bitrate: Option<i32>,
|
|
pub music_streaming_transcoding_bitrate: Option<i32>,
|
|
pub max_static_music_bitrate: Option<i32>,
|
|
pub direct_play_profiles: Option<Vec<DirectPlayProfile>>,
|
|
pub transcoding_profiles: Option<Vec<TranscodingProfile>>,
|
|
pub container_profiles: Option<Vec<ContainerProfile>>,
|
|
pub codec_profiles: Option<Vec<CodecProfile>>,
|
|
pub subtitle_profiles: Option<Vec<SubtitleProfile>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct DirectPlayProfile {
|
|
pub container: Option<String>,
|
|
pub audio_codec: Option<String>,
|
|
pub video_codec: Option<String>,
|
|
pub r#type: Option<DlnaProfileType>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct DisplayPreferencesDto {
|
|
pub id: Option<String>,
|
|
pub view_type: Option<String>,
|
|
pub sort_by: Option<String>,
|
|
pub index_by: Option<String>,
|
|
pub remember_indexing: Option<bool>,
|
|
pub primary_image_height: Option<i32>,
|
|
pub primary_image_width: Option<i32>,
|
|
pub custom_prefs: Option<BTreeMap<String, Option<String>>>,
|
|
pub scroll_direction: Option<ScrollDirection>,
|
|
pub show_backdrop: Option<bool>,
|
|
pub remember_sorting: Option<bool>,
|
|
pub sort_order: Option<SortOrder>,
|
|
pub show_sidebar: Option<bool>,
|
|
pub client: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum DlnaProfileType {
|
|
Audio,
|
|
Video,
|
|
Photo,
|
|
Subtitle,
|
|
Lyric,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum DownMixStereoAlgorithms {
|
|
None,
|
|
Dave750,
|
|
NightmodeDialogue,
|
|
Rfc7845,
|
|
Ac4,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum EmbeddedSubtitleOptions {
|
|
AllowAll,
|
|
AllowText,
|
|
AllowImage,
|
|
AllowNone,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum EncoderPreset {
|
|
Auto,
|
|
Placebo,
|
|
Varieslow,
|
|
Slower,
|
|
Slow,
|
|
Medium,
|
|
Fast,
|
|
Faster,
|
|
Veryfast,
|
|
Superfast,
|
|
Ultrafast,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum EncodingContext {
|
|
Streaming,
|
|
Static,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct EncodingOptions {
|
|
pub encoding_thread_count: Option<i32>,
|
|
pub transcoding_temp_path: Option<String>,
|
|
pub fallback_font_path: Option<String>,
|
|
pub enable_fallback_font: Option<bool>,
|
|
pub enable_audio_vbr: Option<bool>,
|
|
pub down_mix_audio_boost: Option<f64>,
|
|
pub down_mix_stereo_algorithm: Option<DownMixStereoAlgorithms>,
|
|
pub max_muxing_queue_size: Option<i32>,
|
|
pub enable_throttling: Option<bool>,
|
|
pub throttle_delay_seconds: Option<i32>,
|
|
pub enable_segment_deletion: Option<bool>,
|
|
pub segment_keep_seconds: Option<i32>,
|
|
pub hardware_acceleration_type: Option<HardwareAccelerationType>,
|
|
pub encoder_app_path: Option<String>,
|
|
pub encoder_app_path_display: Option<String>,
|
|
pub vaapi_device: Option<String>,
|
|
pub qsv_device: Option<String>,
|
|
pub enable_tonemapping: Option<bool>,
|
|
pub enable_vpp_tonemapping: Option<bool>,
|
|
pub enable_video_toolbox_tonemapping: Option<bool>,
|
|
pub tonemapping_algorithm: Option<TonemappingAlgorithm>,
|
|
pub tonemapping_mode: Option<TonemappingMode>,
|
|
pub tonemapping_range: Option<TonemappingRange>,
|
|
pub tonemapping_desat: Option<f64>,
|
|
pub tonemapping_peak: Option<f64>,
|
|
pub tonemapping_param: Option<f64>,
|
|
pub vpp_tonemapping_brightness: Option<f64>,
|
|
pub vpp_tonemapping_contrast: Option<f64>,
|
|
pub h264_crf: Option<i32>,
|
|
pub h265_crf: Option<i32>,
|
|
pub encoder_preset: Option<EncoderPreset>,
|
|
pub deinterlace_double_rate: Option<bool>,
|
|
pub deinterlace_method: Option<DeinterlaceMethod>,
|
|
pub enable_decoding_color_depth_10_hevc: Option<bool>,
|
|
pub enable_decoding_color_depth_10_vp9: Option<bool>,
|
|
pub enable_decoding_color_depth_10_hevc_rext: Option<bool>,
|
|
pub enable_decoding_color_depth_12_hevc_rext: Option<bool>,
|
|
pub enable_enhanced_nvdec_decoder: Option<bool>,
|
|
pub prefer_system_native_hw_decoder: Option<bool>,
|
|
pub enable_intel_low_power_h264_hw_encoder: Option<bool>,
|
|
pub enable_intel_low_power_hevc_hw_encoder: Option<bool>,
|
|
pub enable_hardware_encoding: Option<bool>,
|
|
pub allow_hevc_encoding: Option<bool>,
|
|
pub allow_av1_encoding: Option<bool>,
|
|
pub enable_subtitle_extraction: Option<bool>,
|
|
pub hardware_decoding_codecs: Option<Vec<String>>,
|
|
pub allow_on_demand_metadata_based_keyframe_extraction_for_extensions: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum EndPointInfo {
|
|
is_local: Option<bool>,
|
|
is_in_network: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ExternalIdInfo {
|
|
pub name: String,
|
|
pub key: String,
|
|
pub r#type: Option<ExternalIdMediaType>,
|
|
pub url_format_string: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ExternalIdMediaType {
|
|
Album,
|
|
AlbumArtist,
|
|
Artist,
|
|
BoxSet,
|
|
Episode,
|
|
Movie,
|
|
OtherArtist,
|
|
Person,
|
|
ReleaseGroup,
|
|
Season,
|
|
Series,
|
|
Track,
|
|
Book,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ExternalUrl {
|
|
pub name: Option<String>,
|
|
pub url: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ExtraType {
|
|
Unknown,
|
|
Clip,
|
|
Trailer,
|
|
BehindTheScenes,
|
|
DeletedScene,
|
|
Interview,
|
|
Scene,
|
|
Sample,
|
|
ThemeSong,
|
|
ThemeVideo,
|
|
Featurette,
|
|
Short,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct FileSystemEntryInfo {
|
|
pub name: String,
|
|
pub path: String,
|
|
pub r#type: Option<FileSystemEntryType>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum FileSystemEntryType {
|
|
File,
|
|
Directory,
|
|
NetworkComputer,
|
|
NetworkShare,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct FontFile {
|
|
pub name: Option<String>,
|
|
pub size: i64,
|
|
pub date_created: String,
|
|
pub date_modified: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ForceKeepAliveMessage {
|
|
Data: Option<i32>,
|
|
MessageId: String,
|
|
MessageType: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ForgotPasswordAction {
|
|
ContactAdmin,
|
|
PinCode,
|
|
InNetworkRequired,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ForgotPasswordDto {
|
|
pub entered_username: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ForgotPasswordPinDto {
|
|
pub pin: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ForgotPasswordResult {
|
|
pub action: ForgotPasswordAction,
|
|
pub pin_file: Option<String>,
|
|
pub pin_expiration_date: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GeneralCommand {
|
|
pub name: GeneralCommandType,
|
|
pub controlling_user_id: Option<String>,
|
|
pub arguments: Option<BTreeMap<String, Option<String>>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GeneralCommandMessage {
|
|
pub data: Option<GeneralCommand>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum GeneralCommandType {
|
|
MoveUp,
|
|
MoveDown,
|
|
MoveLeft,
|
|
MoveRight,
|
|
PageUp,
|
|
PageDown,
|
|
PreviousLetter,
|
|
NextLetter,
|
|
ToggleOsd,
|
|
ToggleContextMenu,
|
|
Select,
|
|
Back,
|
|
TakeScreenshot,
|
|
SendKey,
|
|
SendString,
|
|
GoHome,
|
|
GoToSettings,
|
|
VolumeUp,
|
|
VolumeDown,
|
|
Mute,
|
|
Unmute,
|
|
ToggleMute,
|
|
SetVolume,
|
|
SetAudioStreamIndex,
|
|
SetSubtitleStreamIndex,
|
|
ToggleFullscreen,
|
|
DisplayContent,
|
|
GoToSearch,
|
|
DisplayMessage,
|
|
SetRepeatMode,
|
|
ChannelUp,
|
|
ChannelDown,
|
|
Guide,
|
|
ToggleStats,
|
|
PlayMediaSource,
|
|
PlayTrailers,
|
|
SetShuffleQueue,
|
|
PlayState,
|
|
PlayNext,
|
|
ToggleOsdMenu,
|
|
Play,
|
|
SetMaxStreamingBitrate,
|
|
SetPlaybackOrder,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GetProgramsDto {
|
|
pub channel_ids: Option<Vec<String>>,
|
|
pub user_id: Option<String>,
|
|
pub min_start_date: Option<String>,
|
|
pub has_aired: Option<bool>,
|
|
pub is_airing: Option<bool>,
|
|
pub max_start_date: Option<String>,
|
|
pub min_end_date: Option<String>,
|
|
pub max_end_date: Option<String>,
|
|
pub is_movie: Option<bool>,
|
|
pub is_series: Option<bool>,
|
|
pub is_news: Option<bool>,
|
|
pub is_kids: Option<bool>,
|
|
pub is_sports: Option<bool>,
|
|
pub start_index: Option<i32>,
|
|
pub limit: Option<i32>,
|
|
pub sort_by: Option<Vec<ItemSortBy>>,
|
|
pub sort_order: Option<Vec<SortOrder>>,
|
|
pub genres: Option<Vec<String>>,
|
|
pub genre_ids: Option<Vec<String>>,
|
|
pub enable_images: Option<bool>,
|
|
pub enable_total_record_count: Option<bool>,
|
|
pub image_type_limit: Option<i32>,
|
|
pub enable_image_types: Option<Vec<ImageType>>,
|
|
pub enable_user_data: Option<bool>,
|
|
pub series_timer_id: Option<String>,
|
|
pub library_series_id: Option<String>,
|
|
pub fields: Option<Vec<ItemFields>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GroupInfoDto {
|
|
pub group_id: String,
|
|
pub group_name: String,
|
|
pub state: GroupStateType,
|
|
pub participants: Vec<String>,
|
|
pub last_updated_at: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GroupInfoDtoGroupUpdate {
|
|
pub group_id: String,
|
|
pub r#type: GroupUpdateType,
|
|
pub data: Option<GroupInfoDto>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum GroupQueueMode {
|
|
Queue,
|
|
QueueNext,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum GroupRepeatMode {
|
|
RepeatOne,
|
|
RepeatAll,
|
|
RepeatNone,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum GroupShuffleMode {
|
|
Sorted,
|
|
Shuffle,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum GroupStateType {
|
|
Idle,
|
|
Waiting,
|
|
Paused,
|
|
Playing,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GroupStateUpdate {
|
|
pub state: GroupStateType,
|
|
pub reason: PlaybackRequestType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GroupStateUpdateGroupUpdate {
|
|
pub group_id: String,
|
|
pub r#type: GroupUpdateType,
|
|
pub data: Option<GroupStateUpdate>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum GroupUpdateType {
|
|
UserJoined,
|
|
UserLeft,
|
|
GroupJoined,
|
|
GroupLeft,
|
|
StateUpdate,
|
|
PlayQueue,
|
|
NotInGroup,
|
|
GroupDoesNotExist,
|
|
CreateGroupDenied,
|
|
JoinGroupDenied,
|
|
LibraryAccessDenied,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct GuideInfo {
|
|
pub start_date: String,
|
|
pub end_date: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum HardwareAccelerationType {
|
|
None,
|
|
Amf,
|
|
Qsv,
|
|
Nvenc,
|
|
V4l2m2m,
|
|
Vaapi,
|
|
Videotoolbox,
|
|
Rkmpp,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct IgnoreWaitRequestDto {
|
|
pub ignore_wait: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ImageFormat {
|
|
Bmp,
|
|
Gif,
|
|
Jpg,
|
|
Png,
|
|
Webp,
|
|
Svg,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ImageInfo {
|
|
pub image_type: ImageType,
|
|
pub image_index: Option<i32>,
|
|
pub image_tag: Option<String>,
|
|
pub path: Option<String>,
|
|
pub blur_hash: Option<String>,
|
|
pub height: Option<i32>,
|
|
pub width: Option<i32>,
|
|
pub size: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ImageOption {
|
|
pub r#type: ImageType,
|
|
pub limit: Option<i32>,
|
|
pub min_width: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ImageOrientation {
|
|
TopLeft,
|
|
TopRight,
|
|
BottomRight,
|
|
BottomLeft,
|
|
LeftTop,
|
|
RightTop,
|
|
RightBottom,
|
|
LeftBottom,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ImageProviderInfo {
|
|
pub name: String,
|
|
pub supported_images: Vec<ImageType>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ImageResolution {
|
|
MatchSource,
|
|
P144,
|
|
P240,
|
|
P360,
|
|
P480,
|
|
P720,
|
|
P1080,
|
|
P1440,
|
|
P2160,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ImageSavingConvention {
|
|
Legacy,
|
|
Compatible,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ImageType {
|
|
Primary,
|
|
Art,
|
|
Backdrop,
|
|
Banner,
|
|
Logo,
|
|
Thumb,
|
|
Disc,
|
|
Box,
|
|
Screenshot,
|
|
Menu,
|
|
Chapter,
|
|
BoxRear,
|
|
Profile,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct InboundKeepAliveMessage {
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct InboundWebSocketMessage {
|
|
#[serde(flatten)]
|
|
pub message: WebSocketMessage,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct InstallationInfo {
|
|
pub guid: String,
|
|
pub name: Option<String>,
|
|
pub version: Option<String>,
|
|
pub changelog: Option<String>,
|
|
pub source_url: Option<String>,
|
|
pub checksum: Option<String>,
|
|
pub package_info: Option<PackageInfo>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct IPlugin {
|
|
pub name: Option<String>,
|
|
pub description: Option<String>,
|
|
pub id: String,
|
|
pub version: Option<String>,
|
|
pub assembly_file_path: Option<String>,
|
|
pub can_uninstall: bool,
|
|
pub data_folder_path: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum IsoType {
|
|
Dvd,
|
|
BluRay,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ItemCounts {
|
|
pub movie_count: i32,
|
|
pub series_count: i32,
|
|
pub episode_count: i32,
|
|
pub artist_count: i32,
|
|
pub program_count: i32,
|
|
pub trailer_count: i32,
|
|
pub song_count: i32,
|
|
pub album_count: i32,
|
|
pub music_video_count: i32,
|
|
pub box_set_count: i32,
|
|
pub book_count: i32,
|
|
pub item_count: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ItemFields {
|
|
AirTime,
|
|
CanDelete,
|
|
CanDownload,
|
|
ChannelInfo,
|
|
Chapters,
|
|
Trickplay,
|
|
ChildCount,
|
|
CumulativeRunTimeTicks,
|
|
CustomRating,
|
|
DateCreated,
|
|
DateLastMediaAdded,
|
|
DisplayPreferencesId,
|
|
Etag,
|
|
ExternalUrls,
|
|
Genres,
|
|
HomePageUrl,
|
|
ItemCounts,
|
|
MediaSourceCount,
|
|
MediaSources,
|
|
OriginalTitle,
|
|
Overview,
|
|
ParentId,
|
|
Path,
|
|
People,
|
|
PlayAccess,
|
|
ProductionLocations,
|
|
ProviderIds,
|
|
PrimaryImageAspectRatio,
|
|
RecursiveItemCount,
|
|
Settings,
|
|
ScreenshotImageTags,
|
|
SeriesPrimaryImage,
|
|
SeriesStudio,
|
|
SortName,
|
|
SpecialEpisodeNumbers,
|
|
Studios,
|
|
Taglines,
|
|
Tags,
|
|
RemoteTrailers,
|
|
MediaStreams,
|
|
SeasonUserData,
|
|
ServiceName,
|
|
ThemeSongIds,
|
|
ThemeVideoIds,
|
|
ExternalEtag,
|
|
PresentationUniqueKey,
|
|
InheritedParentalRatingValue,
|
|
ExternalSeriesId,
|
|
SeriesPresentationUniqueKey,
|
|
DateLastRefreshed,
|
|
DateLastSaved,
|
|
RefreshState,
|
|
ChannelImage,
|
|
EnableMediaSourceDisplay,
|
|
Width,
|
|
Height,
|
|
ExtraIds,
|
|
LocalTrailerCount,
|
|
IsHD,
|
|
SpecialFeatureCount,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ItemFilter {
|
|
IsFolder,
|
|
IsNotFolder,
|
|
IsUnplayed,
|
|
IsPlayed,
|
|
IsFavorite,
|
|
IsResumable,
|
|
Likes,
|
|
Dislikes,
|
|
IsFavoriteOrLikes,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ItemSortBy {
|
|
Default,
|
|
AiredEpisodeOrder,
|
|
Album,
|
|
AlbumArtist,
|
|
Artist,
|
|
DateCreated,
|
|
OfficialRating,
|
|
DatePlayed,
|
|
PremiereDate,
|
|
StartDate,
|
|
SortName,
|
|
Name,
|
|
Random,
|
|
Runtime,
|
|
CommunityRating,
|
|
ProductionYear,
|
|
PlayCount,
|
|
CriticRating,
|
|
IsFolder,
|
|
IsUnplayed,
|
|
IsPlayed,
|
|
SeriesSortName,
|
|
VideoBitRate,
|
|
AirTime,
|
|
Studio,
|
|
IsFavoriteOrLiked,
|
|
DateLastContentAdded,
|
|
SeriesDatePlayed,
|
|
ParentIndexNumber,
|
|
IndexNumber,
|
|
SimilarityScore,
|
|
SearchScore,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct JoinGroupRequestDto {
|
|
pub group_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum KeepUntil {
|
|
UntilDeleted,
|
|
UntilSpaceNeeded,
|
|
UntilWatched,
|
|
UntilDate,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LibraryChangedMessage {
|
|
pub data: Option<LibraryUpdateInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LibraryOptionInfoDto {
|
|
pub name: Option<String>,
|
|
pub default_enabled: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LibraryOptions {
|
|
pub enabled: bool,
|
|
pub enable_photos: bool,
|
|
pub enable_realtime_monitor: bool,
|
|
pub enable_lufs_scan: bool,
|
|
pub enable_chapter_image_extraction: bool,
|
|
pub extract_chapter_images_during_library_scan: bool,
|
|
pub enable_trickplay_image_extraction: bool,
|
|
pub extract_trickplay_images_during_library_scan: bool,
|
|
pub path_infos: Option<Vec<MediaPathInfo>>,
|
|
pub save_local_metadata: bool,
|
|
pub enable_internet_providers: bool,
|
|
pub enable_automatic_series_grouping: bool,
|
|
pub enable_embedded_titles: bool,
|
|
pub enable_embedded_extras_titles: bool,
|
|
pub enable_embedded_episode_infos: bool,
|
|
pub automatic_refresh_interval_days: Option<i32>,
|
|
pub preferred_metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub season_zero_display_name: String,
|
|
pub metadata_savers: Option<Vec<String>>,
|
|
pub disabled_local_metadata_readers: Vec<String>,
|
|
pub local_metadata_reader_order: Option<Vec<String>>,
|
|
pub disabled_subtitle_fetchers: Vec<String>,
|
|
pub subtitle_fetcher_order: Vec<String>,
|
|
pub disabled_media_segment_providers: Vec<String>,
|
|
pub media_segment_provide_order: Vec<String>,
|
|
pub skip_subtitles_if_embedded_subtitles_present: bool,
|
|
pub skip_subtitles_if_audio_track_matches: bool,
|
|
pub subtitle_download_languages: Option<Vec<String>>,
|
|
pub require_perfect_subtitle_match: bool,
|
|
pub save_subtitles_with_media: bool,
|
|
pub save_lyrics_with_media: bool,
|
|
pub save_trickplay_with_media: bool,
|
|
pub disabled_lyric_fetchers: Vec<String>,
|
|
pub lyric_fetcher_order: Vec<String>,
|
|
pub prefer_nonstandard_artists_tag: bool,
|
|
pub use_custom_tag_delimiters: bool,
|
|
pub custom_tag_delimiters: Option<Vec<String>>,
|
|
pub delimiter_whitelist: Option<Vec<String>>,
|
|
pub automatically_add_to_collection: bool,
|
|
pub allow_embedded_subtitles: EmbeddedSubtitleOptions,
|
|
pub type_options: Option<Vec<TypeOptions>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LibraryOptionsResultDto {
|
|
pub metadata_savers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub metadata_readers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub subtitle_fetchers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub lyric_fetchers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub type_options: Option<Vec<LibraryTypeOptionsDto>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LibraryTypeOptionsDto {
|
|
pub r#type: Option<String>,
|
|
pub metadata_fetchers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub image_fetchers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub supported_image_types: Option<Vec<ImageType>>,
|
|
pub default_image_options: Option<Vec<ImageOption>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LibraryUpdateInfo {
|
|
pub folders_added_to: Option<Vec<String>>,
|
|
pub folders_removed_from: Option<Vec<String>>,
|
|
pub items_added: Option<Vec<String>>,
|
|
pub items_removed: Option<Vec<String>>,
|
|
pub items_updated: Option<Vec<String>>,
|
|
pub collection_folders: Option<Vec<String>>,
|
|
pub is_empty: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ListingsProviderInfo {
|
|
pub id: Option<String>,
|
|
pub r#type: Option<String>,
|
|
pub username: Option<String>,
|
|
pub password: Option<String>,
|
|
pub listings_id: Option<String>,
|
|
pub zip_code: Option<String>,
|
|
pub country: Option<String>,
|
|
pub path: Option<String>,
|
|
pub enabled_tuners: Option<Vec<String>>,
|
|
pub enable_all_tuners: bool,
|
|
pub news_categories: Option<Vec<String>>,
|
|
pub sports_categories: Option<Vec<String>>,
|
|
pub kids_categories: Option<Vec<String>>,
|
|
pub movie_categories: Option<Vec<String>>,
|
|
pub channel_mappings: Option<Vec<NameValuePair>>,
|
|
pub movie_prefix: Option<String>,
|
|
pub preferred_language: Option<String>,
|
|
pub user_agent: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LiveStreamResponse {
|
|
pub media_source: MediaSourceInfo,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LiveTvInfo {
|
|
pub services: Vec<LiveTvServiceInfo>,
|
|
pub is_enabled: bool,
|
|
pub enabled_users: Vec<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LiveTvOptions {
|
|
pub guide_days: Option<i32>,
|
|
pub recording_path: Option<String>,
|
|
pub movie_recording_path: Option<String>,
|
|
pub series_recording_path: Option<String>,
|
|
pub enable_recording_subfolders: bool,
|
|
pub enable_original_audio_with_encoded_recordings: bool,
|
|
pub tuner_hosts: Option<Vec<TunerHostInfo>>,
|
|
pub listing_providers: Option<Vec<ListingsProviderInfo>>,
|
|
pub pre_padding_seconds: i32,
|
|
pub post_padding_seconds: i32,
|
|
pub media_locations_created: Option<Vec<String>>,
|
|
pub recording_post_processor: Option<String>,
|
|
pub recording_post_processor_arguments: Option<String>,
|
|
pub save_recording_nfo: bool,
|
|
pub save_recording_images: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LiveTvServiceInfo {
|
|
pub name: Option<String>,
|
|
pub home_page_url: Option<String>,
|
|
pub status: LiveTvServiceStatus,
|
|
pub status_message: Option<String>,
|
|
pub version: Option<String>,
|
|
pub has_update_available: bool,
|
|
pub is_visible: bool,
|
|
pub tuners: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum LiveTvServiceStatus {
|
|
Ok,
|
|
Unavailable,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LocalizationOption {
|
|
pub name: Option<String>,
|
|
pub value: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LocationType {
|
|
pub r#type: LocationTypeEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum LocationTypeEnum {
|
|
FileSystem,
|
|
Remote,
|
|
Virtual,
|
|
Offline,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LogFile {
|
|
pub date_created: String,
|
|
pub date_modified: String,
|
|
pub size: i64,
|
|
pub name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LoginInfoInput {
|
|
pub username: String,
|
|
pub password: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LyricDto {
|
|
pub metadata: LyricMetadata,
|
|
pub lyrics: Vec<LyricLine>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LyricLine {
|
|
pub text: String,
|
|
pub start: Option<i64>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LyricMetadata {
|
|
pub artist: Option<String>,
|
|
pub album: Option<String>,
|
|
pub title: Option<String>,
|
|
pub author: Option<String>,
|
|
pub length: Option<i64>,
|
|
pub by: Option<String>,
|
|
pub offset: Option<i64>,
|
|
pub creator: Option<String>,
|
|
pub version: Option<String>,
|
|
pub is_synced: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaAttachment {
|
|
pub codec: Option<String>,
|
|
pub codec_tag: Option<String>,
|
|
pub comment: Option<String>,
|
|
pub index: i32,
|
|
pub file_name: Option<String>,
|
|
pub mime_type: Option<String>,
|
|
pub delivery_url: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaPathDto {
|
|
pub name: String,
|
|
pub path: Option<String>,
|
|
pub path_info: Option<MediaPathInfo>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaPathInfo {
|
|
pub path: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MediaProtocol {
|
|
File,
|
|
Http,
|
|
Rtmp,
|
|
Rtsp,
|
|
Udp,
|
|
Rtp,
|
|
Ftp,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaSegmentDto {
|
|
pub id: String,
|
|
pub item_id: String,
|
|
pub r#type: MediaSegmentType,
|
|
pub start_ticks: i64,
|
|
pub end_ticks: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MediaSegmentType {
|
|
Unknown,
|
|
Commercial,
|
|
Preview,
|
|
Recap,
|
|
Outro,
|
|
Intro,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaSegmentDtoQueryResult {
|
|
pub items: Option<Vec<MediaSegmentDto>>,
|
|
pub total_record_count: Option<i32>,
|
|
pub start_index: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaSourceInfo {
|
|
pub protocol: MediaProtocol,
|
|
pub id: Option<String>,
|
|
pub path: Option<String>,
|
|
pub encoder_path: Option<String>,
|
|
pub encoder_protocol: Option<MediaProtocol>,
|
|
pub r#type: MediaSourceType,
|
|
pub container: Option<String>,
|
|
pub size: Option<i64>,
|
|
pub name: Option<String>,
|
|
pub is_remote: bool,
|
|
pub etag: Option<String>,
|
|
pub run_time_ticks: Option<i64>,
|
|
pub read_at_native_framerate: bool,
|
|
pub ignore_dts: bool,
|
|
pub ignore_index: bool,
|
|
pub gen_pts_input: bool,
|
|
pub supports_transcoding: bool,
|
|
pub supports_direct_stream: bool,
|
|
pub supports_direct_play: bool,
|
|
pub is_infinite_stream: bool,
|
|
pub use_most_compatible_transcoding_profile: bool,
|
|
pub requires_opening: bool,
|
|
pub open_token: Option<String>,
|
|
pub requires_closing: bool,
|
|
pub live_stream_id: Option<String>,
|
|
pub buffer_ms: Option<i32>,
|
|
pub requires_looping: bool,
|
|
pub supports_probing: bool,
|
|
pub video_type: Option<VideoType>,
|
|
pub iso_type: Option<IsoType>,
|
|
pub video_3_d_format: Option<Video3DFormat>,
|
|
pub media_streams: Option<Vec<MediaStream>>,
|
|
pub media_attachments: Option<Vec<MediaAttachment>>,
|
|
pub formats: Option<Vec<String>>,
|
|
pub bitrate: Option<i32>,
|
|
pub fallback_max_streaming_bitrate: Option<i32>,
|
|
pub timestamp: Option<TransportStreamTimestamp>,
|
|
pub required_http_headers: Option<BTreeMap<String, Option<String>>>,
|
|
pub transcoding_url: Option<String>,
|
|
pub transcoding_sub_protocol: Option<MediaStreamProtocol>,
|
|
pub transcoding_container: Option<String>,
|
|
pub analyze_duration_ms: Option<i32>,
|
|
pub default_audio_stream_index: Option<i32>,
|
|
pub default_subtitle_stream_index: Option<i32>,
|
|
pub has_segments: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MediaSourceType {
|
|
Default,
|
|
Grouping,
|
|
Placeholder,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaStream {
|
|
pub codec: Option<String>,
|
|
pub codec_tag: Option<String>,
|
|
pub language: Option<String>,
|
|
pub color_range: Option<String>,
|
|
pub color_space: Option<String>,
|
|
pub color_transfer: Option<String>,
|
|
pub color_primaries: Option<String>,
|
|
pub dv_version_major: Option<i32>,
|
|
pub dv_version_minor: Option<i32>,
|
|
pub dv_profile: Option<i32>,
|
|
pub dv_level: Option<i32>,
|
|
pub rpu_present_flag: Option<i32>,
|
|
pub el_present_flag: Option<i32>,
|
|
pub bl_present_flag: Option<i32>,
|
|
pub dv_bl_signal_compatibility_id: Option<i32>,
|
|
pub rotation: Option<i32>,
|
|
pub comment: Option<String>,
|
|
pub time_base: Option<String>,
|
|
pub codec_time_base: Option<String>,
|
|
pub title: Option<String>,
|
|
pub video_range: VideoRange,
|
|
pub video_range_type: VideoRangeType,
|
|
pub video_do_vi_title: Option<String>,
|
|
pub audio_spatial_format: AudioSpatialFormat,
|
|
pub localized_undefined: Option<String>,
|
|
pub localized_default: Option<String>,
|
|
pub localized_forced: Option<String>,
|
|
pub localized_external: Option<String>,
|
|
pub localized_hearing_impaired: Option<String>,
|
|
pub display_title: Option<String>,
|
|
pub nal_length_size: Option<String>,
|
|
pub is_interlaced: bool,
|
|
pub is_avc: Option<bool>,
|
|
pub channel_layout: Option<String>,
|
|
pub bitrate: Option<i32>,
|
|
pub bit_depth: Option<i32>,
|
|
pub ref_frames: Option<i32>,
|
|
pub packet_length: Option<i32>,
|
|
pub channels: Option<i32>,
|
|
pub sample_rate: Option<i32>,
|
|
pub is_default: bool,
|
|
pub is_forced: bool,
|
|
pub is_hearing_impaired: bool,
|
|
pub height: Option<i32>,
|
|
pub width: Option<i32>,
|
|
pub average_framerate: Option<f32>,
|
|
pub real_framerate: Option<f32>,
|
|
pub reference_framerate: Option<f32>,
|
|
pub profile: Option<String>,
|
|
pub r#type: MediaStreamType,
|
|
pub aspect_ratio: Option<String>,
|
|
pub index: i32,
|
|
pub score: Option<i32>,
|
|
pub is_external: bool,
|
|
pub delivery_method: Option<SubtitleDeliveryMethod>,
|
|
pub delivery_url: Option<String>,
|
|
pub is_external_url: Option<bool>,
|
|
pub is_text_subtitle_stream: bool,
|
|
pub supports_external_stream: bool,
|
|
pub path: Option<String>,
|
|
pub pixel_format: Option<String>,
|
|
pub level: Option<f64>,
|
|
pub is_anamorphic: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MediaStreamProtocol {
|
|
Http,
|
|
Hls,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MediaStreamType {
|
|
Audio,
|
|
Video,
|
|
Subtitle,
|
|
EmbeddedImage,
|
|
Data,
|
|
Lyric,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MediaType {
|
|
Unknown,
|
|
Video,
|
|
Audio,
|
|
Photo,
|
|
Book,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaUpdateInfoDto {
|
|
pub updates: Option<Vec<MediaUpdateInfoPathDto>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaUpdateInfoPathDto {
|
|
pub path: Option<String>,
|
|
pub update_type: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MediaUrl {
|
|
pub url: Option<String>,
|
|
pub name: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MessageCommand {
|
|
pub header: Option<String>,
|
|
pub text: String,
|
|
pub timeout_ms: Option<i64>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MetadataConfiguration {
|
|
pub use_file_creation_time_for_date_added: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MetadataEditorInfo {
|
|
pub parental_rating_options: Vec<ParentalRating>,
|
|
pub countries: Vec<CountryInfo>,
|
|
pub cultures: Vec<CultureDto>,
|
|
pub external_id_infos: Vec<ExternalIdInfo>,
|
|
pub content_type: Option<CollectionType>,
|
|
pub content_type_options: Vec<NameValuePair>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MetadataField {
|
|
pub r#type: MetadataFieldEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MetadataFieldEnum {
|
|
Cast,
|
|
Genres,
|
|
ProductionLocations,
|
|
Studios,
|
|
Tags,
|
|
Name,
|
|
Overview,
|
|
Runtime,
|
|
OfficialRating,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MetadataOptions {
|
|
pub item_type: Option<String>,
|
|
pub disabled_metadata_savers: Option<Vec<String>>,
|
|
pub local_metadata_reader_order: Option<Vec<String>>,
|
|
pub disabled_metadata_fetchers: Option<Vec<String>>,
|
|
pub metadata_fetcher_order: Option<Vec<String>>,
|
|
pub disabled_image_fetchers: Option<Vec<String>>,
|
|
pub image_fetcher_order: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum MetadataRefreshMode {
|
|
None,
|
|
ValidationOnly,
|
|
Default,
|
|
FullRefresh,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MovePlaylistItemRequestDto {
|
|
pub playlist_item_id: String,
|
|
pub new_index: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MovieInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MovieInfoRemoteSearchQuery {
|
|
pub search_info: Option<MovieInfo>,
|
|
pub item_id: String,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MusicVideoInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: bool,
|
|
pub artists: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct MusicVideoInfoRemoteSearchQuery {
|
|
pub search_info: Option<MusicVideoInfo>,
|
|
pub item_id: String,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct NameGuidPair {
|
|
pub name: Option<String>,
|
|
pub id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct NameIdPair {
|
|
pub name: Option<String>,
|
|
pub id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct NameValuePair {
|
|
pub name: Option<String>,
|
|
pub value: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct NetworkConfiguration {
|
|
pub base_url: String,
|
|
pub enable_https: bool,
|
|
pub require_https: bool,
|
|
pub certificate_path: String,
|
|
pub certificate_password: String,
|
|
pub internal_http_port: i32,
|
|
pub internal_https_port: i32,
|
|
pub public_http_port: i32,
|
|
pub public_https_port: i32,
|
|
pub auto_discovery: bool,
|
|
pub enable_upnp: bool,
|
|
pub enable_ipv4: bool,
|
|
pub enable_ipv6: bool,
|
|
pub enable_remote_access: bool,
|
|
pub local_network_subnets: Vec<String>,
|
|
pub local_network_addresses: Vec<String>,
|
|
pub known_proxies: Vec<String>,
|
|
pub ignore_virtual_interfaces: bool,
|
|
pub virtual_interface_names: Vec<String>,
|
|
pub enable_published_server_uri_by_request: bool,
|
|
pub published_server_uri_by_subnet: Vec<String>,
|
|
pub remote_ip_filter: Vec<String>,
|
|
pub is_remote_ip_filter_blacklist: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct NewGroupRequestDto {
|
|
pub group_name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct NextItemRequestDto {
|
|
pub playlist_item_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct OpenLiveStreamDto {
|
|
pub open_token: Option<String>,
|
|
pub user_id: Option<String>,
|
|
pub play_session_id: Option<String>,
|
|
pub max_streaming_bitrate: Option<i32>,
|
|
pub start_time_ticks: Option<i64>,
|
|
pub audio_stream_index: Option<i32>,
|
|
pub subtitle_stream_index: Option<i32>,
|
|
pub max_audio_channels: Option<i32>,
|
|
pub item_id: Option<String>,
|
|
pub enable_direct_play: Option<bool>,
|
|
pub enable_direct_stream: Option<bool>,
|
|
pub always_burn_in_subtitle_when_transcoding: Option<bool>,
|
|
pub device_profile: Option<DeviceProfile>,
|
|
pub direct_play_protocols: Option<Vec<MediaProtocol>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct OutboundKeepAliveMessage {
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct OutboundWebSocketMessage {
|
|
#[serde(flatten)]
|
|
pub message: WebSocketMessage,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PackageInfo {
|
|
pub name: String,
|
|
pub description: String,
|
|
pub overview: String,
|
|
pub owner: String,
|
|
pub category: String,
|
|
pub guid: String,
|
|
pub versions: Vec<VersionInfo>,
|
|
pub image_url: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ParameterInclude {
|
|
pub r#type: ParameterIncludeEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ParameterIncludeEnum {
|
|
ProviderList,
|
|
LocalIpAddress,
|
|
LocalPort,
|
|
Https,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ParentalRating {
|
|
pub name: Option<String>,
|
|
pub value: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PathSubstitution {
|
|
pub from: String,
|
|
pub to: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PersonKind {
|
|
pub r#type: PersonKindEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PersonKindEnum {
|
|
Unknown,
|
|
Actor,
|
|
Director,
|
|
Composer,
|
|
Writer,
|
|
GuestStar,
|
|
Producer,
|
|
Conductor,
|
|
Lyricist,
|
|
Arranger,
|
|
Engineer,
|
|
Mixer,
|
|
Remixer,
|
|
Creator,
|
|
Artist,
|
|
AlbumArtist,
|
|
Author,
|
|
Illustrator,
|
|
Penciller,
|
|
Inker,
|
|
Colorist,
|
|
Letterer,
|
|
CoverArtist,
|
|
Editor,
|
|
Translator,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PersonLookupInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PersonLookupInfoRemoteSearchQuery {
|
|
pub search_info: Option<PersonLookupInfo>,
|
|
pub item_id: String,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PingRequestDto {
|
|
pub ping: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PinRedeemResult {
|
|
pub success: bool,
|
|
pub users_reset: Vec<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlayAccess {
|
|
Full,
|
|
None,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlaybackErrorCode {
|
|
NotAllowed,
|
|
NoCompatibleStream,
|
|
RateLimitExceeded,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlaybackInfoDto {
|
|
pub user_id: Option<String>,
|
|
pub max_streaming_bitrate: Option<i32>,
|
|
pub start_time_ticks: Option<i64>,
|
|
pub audio_stream_index: Option<i32>,
|
|
pub subtitle_stream_index: Option<i32>,
|
|
pub max_audio_channels: Option<i32>,
|
|
pub media_source_id: Option<String>,
|
|
pub live_stream_id: Option<String>,
|
|
pub device_profile: Option<DeviceProfile>,
|
|
pub enable_direct_play: Option<bool>,
|
|
pub enable_direct_stream: Option<bool>,
|
|
pub enable_transcoding: Option<bool>,
|
|
pub allow_video_stream_copy: Option<bool>,
|
|
pub allow_audio_stream_copy: Option<bool>,
|
|
pub auto_open_live_stream: Option<bool>,
|
|
pub always_burn_in_subtitle_when_transcoding: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlaybackInfoResponse {
|
|
pub media_sources: Vec<MediaSourceInfo>,
|
|
pub play_session_id: Option<String>,
|
|
pub error_code: Option<PlaybackErrorCode>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlaybackOrder {
|
|
Default,
|
|
Shuffle,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlaybackProgressInfo {
|
|
pub can_seek: bool,
|
|
pub item: Option<BaseItemDto>,
|
|
pub item_id: String,
|
|
pub session_id: Option<String>,
|
|
pub media_source_id: Option<String>,
|
|
pub audio_stream_index: Option<i32>,
|
|
pub subtitle_stream_index: Option<i32>,
|
|
pub is_paused: bool,
|
|
pub is_muted: bool,
|
|
pub position_ticks: Option<i64>,
|
|
pub playback_start_time_ticks: Option<i64>,
|
|
pub volume_level: Option<i32>,
|
|
pub brightness: Option<i32>,
|
|
pub aspect_ratio: Option<String>,
|
|
pub play_method: PlayMethod,
|
|
pub live_stream_id: Option<String>,
|
|
pub play_session_id: Option<String>,
|
|
pub repeat_mode: RepeatMode,
|
|
pub playback_order: PlaybackOrder,
|
|
pub now_playing_queue: Option<Vec<QueueItem>>,
|
|
pub playlist_item_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlaybackRequestType {
|
|
Play,
|
|
SetPlaylistItem,
|
|
RemoveFromPlaylist,
|
|
MovePlaylistItem,
|
|
Queue,
|
|
Unpause,
|
|
Pause,
|
|
Stop,
|
|
Seek,
|
|
Buffer,
|
|
Ready,
|
|
NextItem,
|
|
PreviousItem,
|
|
SetRepeatMode,
|
|
SetShuffleMode,
|
|
Ping,
|
|
IgnoreWait,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlaybackStartInfo {
|
|
pub can_seek: bool,
|
|
pub item: Option<BaseItemDto>,
|
|
pub item_id: String,
|
|
pub session_id: Option<String>,
|
|
pub media_source_id: Option<String>,
|
|
pub audio_stream_index: Option<i32>,
|
|
pub subtitle_stream_index: Option<i32>,
|
|
pub is_paused: bool,
|
|
pub is_muted: bool,
|
|
pub position_ticks: Option<i64>,
|
|
pub playback_start_time_ticks: Option<i64>,
|
|
pub volume_level: Option<i32>,
|
|
pub brightness: Option<i32>,
|
|
pub aspect_ratio: Option<String>,
|
|
pub play_method: PlayMethod,
|
|
pub live_stream_id: Option<String>,
|
|
pub play_session_id: Option<String>,
|
|
pub repeat_mode: RepeatMode,
|
|
pub playback_order: PlaybackOrder,
|
|
pub now_playing_queue: Option<Vec<QueueItem>>,
|
|
pub playlist_item_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlaybackStopInfo {
|
|
pub item: Option<BaseItemDto>,
|
|
pub item_id: String,
|
|
pub session_id: Option<String>,
|
|
pub media_source_id: Option<String>,
|
|
pub position_ticks: Option<i64>,
|
|
pub live_stream_id: Option<String>,
|
|
pub play_session_id: Option<String>,
|
|
pub failed: bool,
|
|
pub next_media_type: Option<String>,
|
|
pub playlist_item_id: Option<String>,
|
|
pub now_playing_queue: Option<Vec<QueueItem>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlayCommand {
|
|
PlayNow,
|
|
PlayNext,
|
|
PlayLast,
|
|
PlayInstantMix,
|
|
PlayShuffle,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlayQueueUpdate {
|
|
pub reason: PlayQueueUpdateReason,
|
|
pub last_update: String,
|
|
pub playlist: Vec<SyncPlayQueueItem>,
|
|
pub playing_item_index: i32,
|
|
pub start_position_ticks: i64,
|
|
pub is_playing: bool,
|
|
pub shuffle_mode: GroupShuffleMode,
|
|
pub repeat_mode: GroupRepeatMode,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlayQueueUpdateGroupUpdate {
|
|
pub group_id: String,
|
|
pub r#type: GroupUpdateType,
|
|
pub data: Option<PlayQueueUpdate>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlayQueueUpdateReason {
|
|
NewPlaylist,
|
|
SetCurrentItem,
|
|
RemoveItems,
|
|
MoveItem,
|
|
Queue,
|
|
QueueNext,
|
|
NextItem,
|
|
PreviousItem,
|
|
RepeatMode,
|
|
ShuffleMode,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlayRequest {
|
|
pub item_ids: Option<Vec<String>>,
|
|
pub start_position_ticks: Option<i64>,
|
|
pub play_command: Option<PlayCommand>,
|
|
pub controlling_user_id: Option<String>,
|
|
pub subtitle_stream_index: Option<i32>,
|
|
pub audio_stream_index: Option<i32>,
|
|
pub media_source_id: Option<String>,
|
|
pub start_index: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlayRequestDto {
|
|
pub playing_queue: Vec<String>,
|
|
pub playing_item_position: i32,
|
|
pub start_position_ticks: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PlaystateCommand {
|
|
Stop,
|
|
Pause,
|
|
Unpause,
|
|
NextTrack,
|
|
PreviousTrack,
|
|
Seek,
|
|
Rewind,
|
|
FastForward,
|
|
PlayPause,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PlaystateRequest {
|
|
pub command: PlaystateCommand,
|
|
pub seek_position_ticks: Option<i64>,
|
|
pub controlling_user_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PluginInfo {
|
|
pub name: String,
|
|
pub version: String,
|
|
pub configuration_file_name: Option<String>,
|
|
pub description: String,
|
|
pub id: String,
|
|
pub can_uninstall: bool,
|
|
pub has_image: bool,
|
|
pub status: PluginStatus,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum PluginStatus {
|
|
Active,
|
|
Restart,
|
|
Deleted,
|
|
Superceded,
|
|
Malfunctioned,
|
|
NotSupported,
|
|
Disabled,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PluginInstallationCancelledMessage {
|
|
pub data: Option<InstallationInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PluginInstallationCompletedMessage {
|
|
pub data: Option<InstallationInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PluginInstallationFailedMessage {
|
|
pub data: Option<InstallationInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PluginInstallingMessage {
|
|
pub data: Option<InstallationInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PluginUninstalledMessage {
|
|
pub data: Option<PluginInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PreviousItemRequestDto {
|
|
pub playlist_item_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ProblemDetails {
|
|
pub r#type: Option<String>,
|
|
pub title: Option<String>,
|
|
pub status: Option<i32>,
|
|
pub detail: Option<String>,
|
|
pub instance: Option<String>,
|
|
#[serde(flatten)]
|
|
pub additional: BTreeMap<String, serde_json::Value>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ProcessPriorityClass {
|
|
Normal,
|
|
Idle,
|
|
High,
|
|
RealTime,
|
|
BelowNormal,
|
|
AboveNormal,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ProfileCondition {
|
|
pub condition: ProfileConditionType,
|
|
pub property: ProfileConditionValue,
|
|
pub value: Option<String>,
|
|
pub is_required: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ProfileConditionType {
|
|
Equals,
|
|
NotEquals,
|
|
LessThanEqual,
|
|
GreaterThanEqual,
|
|
EqualsAny,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ProfileConditionValue {
|
|
AudioChannels,
|
|
AudioBitrate,
|
|
AudioProfile,
|
|
Width,
|
|
Height,
|
|
Has64BitOffsets,
|
|
PacketLength,
|
|
VideoBitDepth,
|
|
VideoBitrate,
|
|
VideoFramerate,
|
|
VideoLevel,
|
|
VideoProfile,
|
|
VideoTimestamp,
|
|
IsAnamorphic,
|
|
RefFrames,
|
|
NumAudioStreams,
|
|
NumVideoStreams,
|
|
IsSecondaryAudio,
|
|
VideoCodecTag,
|
|
IsAvc,
|
|
IsInterlaced,
|
|
AudioSampleRate,
|
|
AudioBitDepth,
|
|
VideoRangeType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ProgramAudio {
|
|
Mono,
|
|
Stereo,
|
|
Dolby,
|
|
DolbyDigital,
|
|
Thx,
|
|
Atmos,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct PublicSystemInfo {
|
|
pub local_address: Option<String>,
|
|
pub server_name: Option<String>,
|
|
pub version: Option<String>,
|
|
pub product_name: Option<String>,
|
|
pub operating_system: Option<String>,
|
|
pub id: Option<String>,
|
|
pub startup_wizard_completed: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct QueryFilters {
|
|
pub genres: Option<Vec<NameGuidPair>>,
|
|
pub tags: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct QueryFiltersLegacy {
|
|
pub genres: Option<Vec<String>>,
|
|
pub tags: Option<Vec<String>>,
|
|
pub official_ratings: Option<Vec<String>>,
|
|
pub years: Option<Vec<i32>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct QueueItem {
|
|
pub id: String,
|
|
pub playlist_item_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct QueueRequestDto {
|
|
pub item_ids: Vec<String>,
|
|
pub mode: GroupQueueMode,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct QuickConnectDto {
|
|
pub secret: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct QuickConnectResult {
|
|
pub authenticated: bool,
|
|
pub secret: String,
|
|
pub code: String,
|
|
pub device_id: String,
|
|
pub device_name: String,
|
|
pub app_name: String,
|
|
pub app_version: String,
|
|
pub date_added: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum RatingType {
|
|
Score,
|
|
Likes,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ReadyRequestDto {
|
|
pub when: String,
|
|
pub position_ticks: i64,
|
|
pub is_playing: bool,
|
|
pub playlist_item_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RecommendationDto {
|
|
pub items: Option<Vec<BaseItemDto>>,
|
|
pub recommendation_type: RecommendationType,
|
|
pub baseline_item_name: Option<String>,
|
|
pub category_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum RecommendationType {
|
|
SimilarToRecentlyPlayed,
|
|
SimilarToLikedItem,
|
|
HasDirectorFromRecentlyPlayed,
|
|
HasActorFromRecentlyPlayed,
|
|
HasLikedDirector,
|
|
HasLikedActor,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum RecordingStatus {
|
|
New,
|
|
InProgress,
|
|
Completed,
|
|
Cancelled,
|
|
ConflictedOk,
|
|
ConflictedNotOk,
|
|
Error,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RefreshProgressMessage {
|
|
pub data: Option<BTreeMap<String, Option<String>>>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemoteImageInfo {
|
|
pub provider_name: Option<String>,
|
|
pub url: Option<String>,
|
|
pub thumbnail_url: Option<String>,
|
|
pub height: Option<i32>,
|
|
pub width: Option<i32>,
|
|
pub community_rating: Option<f64>,
|
|
pub vote_count: Option<i32>,
|
|
pub language: Option<String>,
|
|
pub r#type: ImageType,
|
|
pub rating_type: RatingType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemoteImageResult {
|
|
pub images: Option<Vec<RemoteImageInfo>>,
|
|
pub total_record_count: i32,
|
|
pub providers: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemoteLyricInfoDto {
|
|
pub id: String,
|
|
pub provider_name: String,
|
|
pub lyrics: LyricDto,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemoteSearchResult {
|
|
pub name: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub production_year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub index_number_end: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub image_url: Option<String>,
|
|
pub search_provider_name: Option<String>,
|
|
pub overview: Option<String>,
|
|
pub album_artist: Option<RemoteSearchResult>,
|
|
pub artists: Option<Vec<RemoteSearchResult>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemoteSubtitleInfo {
|
|
pub three_letter_i_s_o_language_name: Option<String>,
|
|
pub id: Option<String>,
|
|
pub provider_name: Option<String>,
|
|
pub name: Option<String>,
|
|
pub format: Option<String>,
|
|
pub author: Option<String>,
|
|
pub comment: Option<String>,
|
|
pub date_created: Option<String>,
|
|
pub community_rating: Option<f32>,
|
|
pub frame_rate: Option<f32>,
|
|
pub download_count: Option<i32>,
|
|
pub is_hash_match: Option<bool>,
|
|
pub ai_translated: Option<bool>,
|
|
pub machine_translated: Option<bool>,
|
|
pub forced: Option<bool>,
|
|
pub hearing_impaired: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemovedItem {
|
|
pub item_id: String,
|
|
pub series_id: Option<String>,
|
|
pub season: Option<i32>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemovedItemQueryResult {
|
|
pub items: Option<Vec<RemovedItem>>,
|
|
pub total_record_count: i32,
|
|
pub start_index: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RemoveFromPlaylistRequestDto {
|
|
pub playlist_item_ids: Option<Vec<String>>,
|
|
pub clear_playlist: bool,
|
|
pub clear_playing_item: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum RepeatMode {
|
|
RepeatNone,
|
|
RepeatAll,
|
|
RepeatOne,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RepositoryInfo {
|
|
pub name: Option<String>,
|
|
pub url: Option<String>,
|
|
pub enabled: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct RestartRequiredMessage {
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ScheduledTaskEndedMessage {
|
|
pub data: Option<TaskResult>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ScheduledTasksInfoMessage {
|
|
pub data: Option<Vec<TaskInfo>>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ScheduledTasksInfoStartMessage {
|
|
pub data: Option<String>,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ScheduledTasksInfoStopMessage {
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum ScrollDirection {
|
|
Horizontal,
|
|
Vertical,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SearchHint {
|
|
pub item_id: Option<String>,
|
|
pub id: String,
|
|
pub name: String,
|
|
pub matched_term: Option<String>,
|
|
pub index_number: Option<i32>,
|
|
pub production_year: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub primary_image_tag: Option<String>,
|
|
pub thumb_image_tag: Option<String>,
|
|
pub thumb_image_item_id: Option<String>,
|
|
pub backdrop_image_tag: Option<String>,
|
|
pub backdrop_image_item_id: Option<String>,
|
|
pub r#type: Option<BaseItemKind>,
|
|
pub is_folder: Option<bool>,
|
|
pub run_time_ticks: Option<i64>,
|
|
pub media_type: Option<MediaType>,
|
|
pub start_date: Option<String>,
|
|
pub end_date: Option<String>,
|
|
pub series: Option<String>,
|
|
pub status: Option<String>,
|
|
pub album: Option<String>,
|
|
pub album_id: Option<String>,
|
|
pub album_artist: Option<String>,
|
|
pub artists: Option<Vec<String>>,
|
|
pub song_count: Option<i32>,
|
|
pub episode_count: Option<i32>,
|
|
pub channel_id: Option<String>,
|
|
pub channel_name: Option<String>,
|
|
pub primary_image_aspect_ratio: Option<f64>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SearchHintResult {
|
|
pub search_hints: Vec<SearchHint>,
|
|
pub total_record_count: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeekRequestDto {
|
|
pub position_ticks: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SendCommand {
|
|
pub group_id: String,
|
|
pub playlist_item_id: String,
|
|
pub when: String,
|
|
pub position_ticks: Option<i64>,
|
|
pub command: SendCommandType,
|
|
pub emitted_at: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SendCommandType {
|
|
Unpause,
|
|
Pause,
|
|
Stop,
|
|
Seek,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeriesInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeriesInfoRemoteSearchQuery {
|
|
pub search_info: Option<SeriesInfo>,
|
|
pub item_id: String,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SeriesStatus {
|
|
Continuing,
|
|
Ended,
|
|
Unreleased,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeriesTimerCancelledMessage {
|
|
pub data: Option<TimerEventInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeriesTimerCreatedMessage {
|
|
pub data: Option<TimerEventInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeriesTimerInfoDto {
|
|
pub id: Option<String>,
|
|
pub r#type: Option<String>,
|
|
pub server_id: Option<String>,
|
|
pub external_id: Option<String>,
|
|
pub channel_id: String,
|
|
pub external_channel_id: Option<String>,
|
|
pub channel_name: Option<String>,
|
|
pub channel_primary_image_tag: Option<String>,
|
|
pub program_id: Option<String>,
|
|
pub external_program_id: Option<String>,
|
|
pub name: Option<String>,
|
|
pub overview: Option<String>,
|
|
pub start_date: String,
|
|
pub end_date: String,
|
|
pub service_name: Option<String>,
|
|
pub priority: i32,
|
|
pub pre_padding_seconds: i32,
|
|
pub post_padding_seconds: i32,
|
|
pub is_pre_padding_required: bool,
|
|
pub parent_backdrop_item_id: Option<String>,
|
|
pub parent_backdrop_image_tags: Option<Vec<String>>,
|
|
pub is_post_padding_required: bool,
|
|
pub keep_until: KeepUntil,
|
|
pub record_any_time: bool,
|
|
pub skip_episodes_in_library: bool,
|
|
pub record_any_channel: bool,
|
|
pub keep_up_to: Option<i32>,
|
|
pub record_new_only: bool,
|
|
pub days: Option<Vec<DayOfWeek>>,
|
|
pub day_pattern: Option<DayPattern>,
|
|
pub image_tags: Option<BTreeMap<String, String>>,
|
|
pub parent_thumb_item_id: Option<String>,
|
|
pub parent_thumb_image_tag: Option<String>,
|
|
pub parent_primary_image_item_id: Option<String>,
|
|
pub parent_primary_image_tag: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SeriesTimerInfoDtoQueryResult {
|
|
pub items: Option<Vec<SeriesTimerInfoDto>>,
|
|
pub total_record_count: i32,
|
|
pub start_index: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ServerConfiguration {
|
|
pub log_file_retention_days: i32,
|
|
pub is_startup_wizard_completed: bool,
|
|
pub cache_path: Option<String>,
|
|
pub previous_version: Option<String>,
|
|
pub previous_version_str: Option<String>,
|
|
pub enable_metrics: bool,
|
|
pub enable_normalized_item_by_name_ids: bool,
|
|
pub is_port_authorized: bool,
|
|
pub quick_connect_available: bool,
|
|
pub enable_case_sensitive_item_ids: bool,
|
|
pub disable_live_tv_channel_user_data_name: bool,
|
|
pub metadata_path: Option<String>,
|
|
pub preferred_metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub sort_replace_characters: Option<Vec<String>>,
|
|
pub sort_remove_characters: Option<Vec<String>>,
|
|
pub sort_remove_words: Option<Vec<String>>,
|
|
pub min_resume_pct: i32,
|
|
pub max_resume_pct: i32,
|
|
pub min_resume_duration_seconds: i32,
|
|
pub min_audiobook_resume: i32,
|
|
pub max_audiobook_resume: i32,
|
|
pub inactive_session_threshold: i32,
|
|
pub library_monitor_delay: i32,
|
|
pub library_update_duration: i32,
|
|
pub image_saving_convention: ImageSavingConvention,
|
|
pub metadata_options: Option<Vec<MetadataOptions>>,
|
|
pub skip_deserialization_for_basic_types: bool,
|
|
pub server_name: String,
|
|
pub u_i_culture: String,
|
|
pub save_metadata_hidden: bool,
|
|
pub content_types: Option<Vec<NameValuePair>>,
|
|
pub remote_client_bitrate_limit: i32,
|
|
pub enable_folder_view: bool,
|
|
pub enable_grouping_into_collections: bool,
|
|
pub display_specials_within_seasons: bool,
|
|
pub codecs_used: Option<Vec<String>>,
|
|
pub plugin_repositories: Option<Vec<RepositoryInfo>>,
|
|
pub enable_external_content_in_suggestions: bool,
|
|
pub image_extraction_timeout_ms: i32,
|
|
pub path_substitutions: Option<Vec<PathSubstitution>>,
|
|
pub enable_slow_response_warning: bool,
|
|
pub slow_response_threshold_ms: i64,
|
|
pub cors_hosts: Option<Vec<String>>,
|
|
pub activity_log_retention_days: Option<i32>,
|
|
pub library_scan_fanout_concurrency: i32,
|
|
pub library_metadata_refresh_concurrency: i32,
|
|
pub remove_old_plugins: bool,
|
|
pub allow_client_log_upload: bool,
|
|
pub dummy_chapter_duration: i32,
|
|
pub chapter_image_resolution: ImageResolution,
|
|
pub parallel_image_encoding_limit: i32,
|
|
pub cast_receiver_applications: Option<Vec<CastReceiverApplication>>,
|
|
pub trickplay_options: TrickplayOptions,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ServerDiscoveryInfo {
|
|
pub address: String,
|
|
pub id: String,
|
|
pub name: String,
|
|
pub endpoint_address: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ServerRestartingMessage {
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ServerShuttingDownMessage {
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SessionInfoDto {
|
|
pub play_state: Option<PlayerStateInfo>,
|
|
pub additional_users: Option<Vec<SessionUserInfo>>,
|
|
pub capabilities: Option<ClientCapabilitiesDto>,
|
|
pub remote_end_point: Option<String>,
|
|
pub playable_media_types: Option<Vec<MediaType>>,
|
|
pub id: Option<String>,
|
|
pub user_id: String,
|
|
pub user_name: Option<String>,
|
|
pub client: Option<String>,
|
|
pub last_activity_date: String,
|
|
pub last_playback_check_in: String,
|
|
pub last_paused_date: Option<String>,
|
|
pub device_name: Option<String>,
|
|
pub device_type: Option<String>,
|
|
pub now_playing_item: Option<BaseItemDto>,
|
|
pub now_viewing_item: Option<BaseItemDto>,
|
|
pub device_id: Option<String>,
|
|
pub application_version: Option<String>,
|
|
pub transcoding_info: Option<TranscodingInfo>,
|
|
pub is_active: bool,
|
|
pub supports_media_control: bool,
|
|
pub supports_remote_control: bool,
|
|
pub now_playing_queue: Option<Vec<QueueItem>>,
|
|
pub now_playing_queue_full_items: Option<Vec<BaseItemDto>>,
|
|
pub has_custom_device_name: bool,
|
|
pub playlist_item_id: Option<String>,
|
|
pub server_id: Option<String>,
|
|
pub user_primary_image_tag: Option<String>,
|
|
pub supported_commands: Option<Vec<GeneralCommandType>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SessionMessageType {
|
|
ForceKeepAlive,
|
|
GeneralCommand,
|
|
UserDataChanged,
|
|
Sessions,
|
|
Play,
|
|
SyncPlayCommand,
|
|
SyncPlayGroupUpdate,
|
|
Playstate,
|
|
RestartRequired,
|
|
ServerShuttingDown,
|
|
ServerRestarting,
|
|
LibraryChanged,
|
|
UserDeleted,
|
|
UserUpdated,
|
|
SeriesTimerCreated,
|
|
TimerCreated,
|
|
SeriesTimerCancelled,
|
|
TimerCancelled,
|
|
RefreshProgress,
|
|
ScheduledTaskEnded,
|
|
PackageInstallationCancelled,
|
|
PackageInstallationFailed,
|
|
PackageInstallationCompleted,
|
|
PackageInstalling,
|
|
PackageUninstalled,
|
|
ActivityLogEntry,
|
|
ScheduledTasksInfo,
|
|
ActivityLogEntryStart,
|
|
ActivityLogEntryStop,
|
|
SessionsStart,
|
|
SessionsStop,
|
|
ScheduledTasksInfoStart,
|
|
ScheduledTasksInfoStop,
|
|
KeepAlive,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SessionsMessage {
|
|
pub data: Option<Vec<SessionInfoDto>>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SessionsStartMessage {
|
|
pub data: Option<String>,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SessionsStopMessage {
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SessionUserInfo {
|
|
pub user_id: String,
|
|
pub user_name: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SetChannelMappingDto {
|
|
pub provider_id: String,
|
|
pub tuner_channel_id: String,
|
|
pub provider_channel_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SetPlaylistItemRequestDto {
|
|
pub playlist_item_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SetRepeatModeRequestDto {
|
|
pub mode: GroupRepeatMode,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SetShuffleModeRequestDto {
|
|
pub mode: GroupShuffleMode,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SongInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: bool,
|
|
pub album_artists: Option<Vec<String>>,
|
|
pub album: Option<String>,
|
|
pub artists: Option<Vec<String>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SortOrder {
|
|
Ascending,
|
|
Descending,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SpecialViewOptionDto {
|
|
pub name: Option<String>,
|
|
pub id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct StartupConfigurationDto {
|
|
pub u_i_culture: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub preferred_metadata_language: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct StartupRemoteAccessDto {
|
|
pub enable_remote_access: bool,
|
|
pub enable_automatic_port_mapping: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct StartupUserDto {
|
|
pub name: Option<String>,
|
|
pub password: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum Status {
|
|
Completed,
|
|
Watching,
|
|
Both,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct StringGroupUpdate {
|
|
pub group_id: String,
|
|
pub r#type: GroupUpdateType,
|
|
pub data: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SubtitleDeliveryMethod {
|
|
Encode,
|
|
Embed,
|
|
External,
|
|
Hls,
|
|
Drop,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SubtitleOptions {
|
|
pub skip_if_embedded_subtitles_present: bool,
|
|
pub skip_if_audio_track_matches: bool,
|
|
pub download_languages: Option<Vec<String>>,
|
|
pub download_movie_subtitles: bool,
|
|
pub download_episode_subtitles: bool,
|
|
pub open_subtitles_username: Option<String>,
|
|
pub open_subtitles_password_hash: Option<String>,
|
|
pub is_open_subtitle_vip_account: bool,
|
|
pub require_perfect_match: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SubtitlePlaybackMode {
|
|
Default,
|
|
Always,
|
|
OnlyForced,
|
|
None,
|
|
Smart,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SubtitleProfile {
|
|
pub format: Option<String>,
|
|
pub method: SubtitleDeliveryMethod,
|
|
pub didl_mode: Option<String>,
|
|
pub language: Option<String>,
|
|
pub container: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SyncAction {
|
|
UpdateProvider,
|
|
UpdateJellyfin,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SyncPlayCommandMessage {
|
|
pub data: Option<SendCommand>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SyncPlayGroupUpdateCommandMessage {
|
|
pub data: Option<GroupUpdate>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SyncPlayQueueItem {
|
|
pub item_id: String,
|
|
pub playlist_item_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum SyncPlayUserAccessType {
|
|
CreateAndJoinGroups,
|
|
JoinGroups,
|
|
None,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SyncStats {
|
|
pub updated_folders: i32,
|
|
pub removed_folders: i32,
|
|
pub updated_box_sets: i32,
|
|
pub removed_box_sets: i32,
|
|
pub updated_playlists: i32,
|
|
pub removed_playlists: i32,
|
|
pub updated_tv_shows: i32,
|
|
pub removed_tv_shows: i32,
|
|
pub updated_seasons: i32,
|
|
pub removed_seasons: i32,
|
|
pub updated_videos: i32,
|
|
pub removed_videos: i32,
|
|
pub updated_collection_folders: i32,
|
|
pub updated_user_data: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct SystemInfo {
|
|
pub local_address: Option<String>,
|
|
pub server_name: Option<String>,
|
|
pub version: Option<String>,
|
|
pub product_name: Option<String>,
|
|
pub operating_system: Option<String>,
|
|
pub id: Option<String>,
|
|
pub startup_wizard_completed: Option<bool>,
|
|
pub operating_system_display_name: Option<String>,
|
|
pub package_name: Option<String>,
|
|
pub has_pending_restart: bool,
|
|
pub is_shutting_down: bool,
|
|
pub supports_library_monitor: bool,
|
|
pub web_socket_port_number: i32,
|
|
pub completed_installations: Option<Vec<InstallationInfo>>,
|
|
pub can_self_restart: bool,
|
|
pub can_launch_web_browser: bool,
|
|
pub program_data_path: Option<String>,
|
|
pub web_path: Option<String>,
|
|
pub items_by_name_path: Option<String>,
|
|
pub cache_path: Option<String>,
|
|
pub log_path: Option<String>,
|
|
pub internal_metadata_path: Option<String>,
|
|
pub transcoding_temp_path: Option<String>,
|
|
pub cast_receiver_applications: Option<Vec<CastReceiverApplication>>,
|
|
pub has_update_available: bool,
|
|
pub encoder_location: String,
|
|
pub system_architecture: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TaskCompletionStatus {
|
|
pub r#type: TaskCompletionStatusEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TaskCompletionStatusEnum {
|
|
Completed,
|
|
Failed,
|
|
Cancelled,
|
|
Aborted,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TaskInfo {
|
|
pub name: Option<String>,
|
|
pub state: TaskState,
|
|
pub current_progress_percentage: Option<f64>,
|
|
pub id: Option<String>,
|
|
pub last_execution_result: Option<TaskResult>,
|
|
pub triggers: Option<Vec<TaskTriggerInfo>>,
|
|
pub description: Option<String>,
|
|
pub category: Option<String>,
|
|
pub is_hidden: bool,
|
|
pub key: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TaskResult {
|
|
pub start_time_utc: String,
|
|
pub end_time_utc: String,
|
|
pub status: TaskCompletionStatus,
|
|
pub name: Option<String>,
|
|
pub key: Option<String>,
|
|
pub id: Option<String>,
|
|
pub error_message: Option<String>,
|
|
pub long_error_message: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TaskState {
|
|
Idle,
|
|
Cancelling,
|
|
Running,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TaskTriggerInfo {
|
|
pub r#type: Option<String>,
|
|
pub time_of_day_ticks: Option<i64>,
|
|
pub interval_ticks: Option<i64>,
|
|
pub day_of_week: Option<DayOfWeek>,
|
|
pub max_runtime_ticks: Option<i64>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ThemeMediaResult {
|
|
pub items: Option<Vec<BaseItemDto>>,
|
|
pub total_record_count: i32,
|
|
pub start_index: i32,
|
|
pub owner_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TimerCancelledMessage {
|
|
pub data: Option<TimerEventInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TimerCreatedMessage {
|
|
pub data: Option<TimerEventInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TimerEventInfo {
|
|
pub id: String,
|
|
pub program_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TimerInfoDto {
|
|
pub id: Option<String>,
|
|
pub r#type: Option<String>,
|
|
pub server_id: Option<String>,
|
|
pub external_id: Option<String>,
|
|
pub channel_id: String,
|
|
pub external_channel_id: Option<String>,
|
|
pub channel_name: Option<String>,
|
|
pub channel_primary_image_tag: Option<String>,
|
|
pub program_id: Option<String>,
|
|
pub external_program_id: Option<String>,
|
|
pub name: Option<String>,
|
|
pub overview: Option<String>,
|
|
pub start_date: String,
|
|
pub end_date: String,
|
|
pub service_name: Option<String>,
|
|
pub priority: i32,
|
|
pub pre_padding_seconds: i32,
|
|
pub post_padding_seconds: i32,
|
|
pub is_pre_padding_required: bool,
|
|
pub parent_backdrop_item_id: Option<String>,
|
|
pub parent_backdrop_image_tags: Option<Vec<String>>,
|
|
pub is_post_padding_required: bool,
|
|
pub keep_until: KeepUntil,
|
|
pub status: RecordingStatus,
|
|
pub series_timer_id: Option<String>,
|
|
pub external_series_timer_id: Option<String>,
|
|
pub run_time_ticks: Option<i64>,
|
|
pub program_info: Option<BaseItemDto>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TimerInfoDtoQueryResult {
|
|
pub items: Option<Vec<TimerInfoDto>>,
|
|
pub total_record_count: i32,
|
|
pub start_index: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TonemappingAlgorithm {
|
|
pub r#type: TonemappingAlgorithmEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TonemappingAlgorithmEnum {
|
|
None,
|
|
Clip,
|
|
Linear,
|
|
Gamma,
|
|
Reinhard,
|
|
Hable,
|
|
Mobius,
|
|
Bt2390,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TonemappingMode {
|
|
pub r#type: TonemappingModeEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TonemappingModeEnum {
|
|
Auto,
|
|
Max,
|
|
Rgb,
|
|
Lum,
|
|
Itp,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TonemappingRange {
|
|
pub r#type: TonemappingRangeEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TonemappingRangeEnum {
|
|
Auto,
|
|
Tv,
|
|
Pc,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TrailerInfo {
|
|
pub name: Option<String>,
|
|
pub original_title: Option<String>,
|
|
pub path: Option<String>,
|
|
pub metadata_language: Option<String>,
|
|
pub metadata_country_code: Option<String>,
|
|
pub provider_ids: Option<BTreeMap<String, Option<String>>>,
|
|
pub year: Option<i32>,
|
|
pub index_number: Option<i32>,
|
|
pub parent_index_number: Option<i32>,
|
|
pub premiere_date: Option<String>,
|
|
pub is_automated: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TrailerInfoRemoteSearchQuery {
|
|
pub search_info: Option<RemoteSearchResult>,
|
|
pub item_id: String,
|
|
pub search_provider_name: Option<String>,
|
|
pub include_disabled_providers: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TranscodeReason {
|
|
pub r#type: TranscodeReasonEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TranscodeReasonEnum {
|
|
ContainerNotSupported,
|
|
VideoCodecNotSupported,
|
|
AudioCodecNotSupported,
|
|
SubtitleCodecNotSupported,
|
|
AudioIsExternal,
|
|
SecondaryAudioNotSupported,
|
|
VideoProfileNotSupported,
|
|
VideoLevelNotSupported,
|
|
VideoResolutionNotSupported,
|
|
VideoBitDepthNotSupported,
|
|
VideoFramerateNotSupported,
|
|
RefFramesNotSupported,
|
|
AnamorphicVideoNotSupported,
|
|
InterlacedVideoNotSupported,
|
|
AudioChannelsNotSupported,
|
|
AudioProfileNotSupported,
|
|
AudioSampleRateNotSupported,
|
|
AudioBitDepthNotSupported,
|
|
ContainerBitrateExceedsLimit,
|
|
VideoBitrateNotSupported,
|
|
AudioBitrateNotSupported,
|
|
UnknownVideoStreamInfo,
|
|
UnknownAudioStreamInfo,
|
|
DirectPlayError,
|
|
VideoRangeTypeNotSupported,
|
|
VideoCodecTagNotSupported,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TranscodeSeekInfo {
|
|
pub r#type: TranscodeSeekInfoEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TranscodeSeekInfoEnum {
|
|
Auto,
|
|
Bytes,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TranscodingInfo {
|
|
pub audio_codec: Option<String>,
|
|
pub video_codec: Option<String>,
|
|
pub container: Option<String>,
|
|
pub is_video_direct: bool,
|
|
pub is_audio_direct: bool,
|
|
pub bitrate: Option<i32>,
|
|
pub framerate: Option<f32>,
|
|
pub completion_percentage: Option<f64>,
|
|
pub width: Option<i32>,
|
|
pub height: Option<i32>,
|
|
pub audio_channels: Option<i32>,
|
|
pub hardware_acceleration_type: Option<HardwareAccelerationType>,
|
|
pub transcoding_reasons: Option<Vec<TranscodeReason>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TranscodingProfile {
|
|
pub container: Option<String>,
|
|
pub r#type: DlnaProfileType,
|
|
pub video_codec: Option<String>,
|
|
pub audio_codec: Option<String>,
|
|
pub protocol: MediaStreamProtocol,
|
|
pub estimate_content_length: bool,
|
|
pub enable_mpegts_m2_ts_mode: bool,
|
|
pub transcoding_seek_info: TranscodeSeekInfo,
|
|
pub copy_timestamps: bool,
|
|
pub context: EncodingContext,
|
|
pub enable_subtitles_in_manifest: bool,
|
|
pub max_audio_channels: Option<String>,
|
|
pub min_segments: i32,
|
|
pub segment_length: i32,
|
|
pub break_on_non_key_frames: bool,
|
|
pub conditions: Option<Vec<ProfileCondition>>,
|
|
pub enable_audio_vbr_encoding: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TransportStreamTimestamp {
|
|
pub r#type: TransportStreamTimestampEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TransportStreamTimestampEnum {
|
|
None,
|
|
Zero,
|
|
Valid,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TrickplayInfo {
|
|
pub width: i32,
|
|
pub height: i32,
|
|
pub tile_width: i32,
|
|
pub tile_height: i32,
|
|
pub thumbnail_count: i32,
|
|
pub interval: i32,
|
|
pub bandwidth: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TrickplayOptions {
|
|
pub enable_hw_acceleration: bool,
|
|
pub enable_hw_encoding: bool,
|
|
pub enable_key_frame_only_extraction: bool,
|
|
pub scan_behavior: TrickplayScanBehavior,
|
|
pub process_priority: ProcessPriorityClass,
|
|
pub interval: i32,
|
|
pub width_resolutions: Option<Vec<i32>>,
|
|
pub tile_width: i32,
|
|
pub tile_height: i32,
|
|
pub qscale: i32,
|
|
pub jpeg_quality: i32,
|
|
pub process_threads: i32,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum TrickplayScanBehavior {
|
|
Blocking,
|
|
NonBlocking,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TunerChannelMapping {
|
|
pub name: Option<String>,
|
|
pub provider_channel_name: Option<String>,
|
|
pub provider_channel_id: Option<String>,
|
|
pub id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TunerHostInfo {
|
|
pub id: Option<String>,
|
|
pub url: Option<String>,
|
|
pub r#type: Option<String>,
|
|
pub device_id: Option<String>,
|
|
pub friendly_name: Option<String>,
|
|
pub import_favorites_only: bool,
|
|
pub allow_hw_transcoding: bool,
|
|
pub allow_fmp4_transcoding_container: bool,
|
|
pub allow_stream_sharing: bool,
|
|
pub fallback_max_streaming_bitrate: i32,
|
|
pub enable_stream_looping: bool,
|
|
pub source: Option<String>,
|
|
pub tuner_count: i32,
|
|
pub user_agent: Option<String>,
|
|
pub ignore_dts: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct TypeOptions {
|
|
pub r#type: Option<String>,
|
|
pub metadata_fetchers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub metadata_fetcher_order: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub image_fetchers: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub image_fetcher_order: Option<Vec<LibraryOptionInfoDto>>,
|
|
pub image_options: Option<Vec<ImageOption>>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UnratedItem {
|
|
pub r#type: UnratedItemEnum,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub enum UnratedItemEnum {
|
|
Movie,
|
|
Trailer,
|
|
Series,
|
|
Music,
|
|
Book,
|
|
LiveTvChannel,
|
|
LiveTvProgram,
|
|
ChannelContent,
|
|
Other,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UpdateLibraryOptionsDto {
|
|
pub id: String,
|
|
pub library_options: Option<LibraryOptions>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UpdateMediaPathRequestDto {
|
|
pub name: String,
|
|
pub path_info: MediaPathInfo,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UpdatePlaylistDto {
|
|
pub name: Option<String>,
|
|
pub ids: Option<Vec<String>>,
|
|
pub users: Option<Vec<PlaylistUserPermissions>>,
|
|
pub is_public: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UpdatePlaylistUserDto {
|
|
pub can_edit: Option<bool>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UpdateUserItemDataDto {
|
|
pub rating: Option<f64>,
|
|
pub played_percentage: Option<f64>,
|
|
pub unplayed_item_count: Option<i32>,
|
|
pub playback_position_ticks: i64,
|
|
pub play_count: i32,
|
|
pub is_favorite: bool,
|
|
pub likes: Option<bool>,
|
|
pub last_played_date: Option<String>,
|
|
pub played: bool,
|
|
pub key: String,
|
|
pub item_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UpdateUserPassword {
|
|
pub current_password: Option<String>,
|
|
pub current_pw: Option<String>,
|
|
pub new_pw: Option<String>,
|
|
pub reset_password: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UploadSubtitleDto {
|
|
pub language: String,
|
|
pub format: String,
|
|
pub is_forced: bool,
|
|
pub is_hearing_impaired: bool,
|
|
pub data: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserConfiguration {
|
|
pub audio_language_preference: Option<String>,
|
|
pub play_default_audio_track: bool,
|
|
pub subtitle_language_preference: Option<String>,
|
|
pub display_missing_episodes: bool,
|
|
pub grouped_folders: Vec<String>,
|
|
pub subtitle_mode: SubtitlePlaybackMode,
|
|
pub display_collections_view: bool,
|
|
pub enable_local_password: bool,
|
|
pub ordered_views: Vec<String>,
|
|
pub latest_items_excludes: Vec<String>,
|
|
pub my_media_excludes: Vec<String>,
|
|
pub hide_played_in_latest: bool,
|
|
pub remember_audio_selections: bool,
|
|
pub remember_subtitle_selections: bool,
|
|
pub enable_next_episode_auto_play: bool,
|
|
pub cast_receiver_id: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserDataChangedMessage {
|
|
pub data: Option<UserDataChangeInfo>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserDataChangeInfo {
|
|
pub user_id: String,
|
|
pub user_data_list: Vec<UserItemDataDto>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserDeletedMessage {
|
|
pub data: String,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserDto {
|
|
pub name: Option<String>,
|
|
pub server_id: Option<String>,
|
|
pub server_name: Option<String>,
|
|
pub id: String,
|
|
pub primary_image_tag: Option<String>,
|
|
pub has_password: bool,
|
|
pub has_configured_password: bool,
|
|
pub has_configured_easy_password: bool,
|
|
pub enable_auto_login: Option<bool>,
|
|
pub last_login_date: Option<String>,
|
|
pub last_activity_date: Option<String>,
|
|
pub configuration: Option<UserConfiguration>,
|
|
pub policy: Option<UserPolicy>,
|
|
pub primary_image_aspect_ratio: Option<f64>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserItemDataDto {
|
|
pub rating: Option<f64>,
|
|
pub played_percentage: Option<f64>,
|
|
pub unplayed_item_count: i32,
|
|
pub playback_position_ticks: i64,
|
|
pub play_count: i32,
|
|
pub is_favorite: bool,
|
|
pub likes: Option<bool>,
|
|
pub last_played_date: Option<String>,
|
|
pub played: bool,
|
|
pub key: String,
|
|
pub item_id: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserPolicy {
|
|
pub is_administrator: bool,
|
|
pub is_hidden: bool,
|
|
pub enable_collection_management: bool,
|
|
pub enable_subtitle_management: bool,
|
|
pub enable_lyric_management: bool,
|
|
pub is_disabled: bool,
|
|
pub max_parental_rating: Option<i32>,
|
|
pub blocked_tags: Option<Vec<String>>,
|
|
pub allowed_tags: Option<Vec<String>>,
|
|
pub enable_user_preference_access: bool,
|
|
pub access_schedules: Option<Vec<AccessSchedule>>,
|
|
pub block_unrated_items: Option<Vec<UnratedItem>>,
|
|
pub enable_remote_control_of_other_users: bool,
|
|
pub enable_shared_device_control: bool,
|
|
pub enable_remote_access: bool,
|
|
pub enable_live_tv_management: bool,
|
|
pub enable_live_tv_access: bool,
|
|
pub enable_media_playback: bool,
|
|
pub enable_audio_playback_transcoding: bool,
|
|
pub enable_video_playback_transcoding: bool,
|
|
pub enable_playback_remuxing: bool,
|
|
pub force_remote_source_transcoding: bool,
|
|
pub enable_content_deletion: bool,
|
|
pub enable_content_deletion_from_folders: Option<Vec<String>>,
|
|
pub enable_content_downloading: bool,
|
|
pub enable_sync_transcoding: bool,
|
|
pub enable_media_conversion: bool,
|
|
pub enabled_devices: Option<Vec<String>>,
|
|
pub enable_all_devices: bool,
|
|
pub enabled_channels: Option<Vec<String>>,
|
|
pub enable_all_channels: bool,
|
|
pub enabled_folders: Option<Vec<String>>,
|
|
pub enable_all_folders: bool,
|
|
pub invalid_login_attempt_count: i32,
|
|
pub login_attempts_before_lockout: i32,
|
|
pub max_active_sessions: i32,
|
|
pub enable_public_sharing: bool,
|
|
pub blocked_media_folders: Option<Vec<String>>,
|
|
pub blocked_channels: Option<Vec<String>>,
|
|
pub remote_client_bitrate_limit: i32,
|
|
pub authentication_provider_id: String,
|
|
pub password_reset_provider_id: String,
|
|
pub sync_play_access: SyncPlayUserAccessType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UserUpdatedMessage {
|
|
pub data: Option<UserDto>,
|
|
pub message_id: String,
|
|
pub message_type: SessionMessageType,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct UtcTimeResponse {
|
|
pub request_reception_time: String,
|
|
pub response_transmission_time: String,
|
|
}
|