mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
commit
eb67117b83
@ -755,7 +755,18 @@ namespace Emby.Server.Implementations
|
|||||||
|
|
||||||
serviceCollection.AddSingleton(UserManager);
|
serviceCollection.AddSingleton(UserManager);
|
||||||
|
|
||||||
LibraryManager = new LibraryManager(this, LoggerFactory, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => LibraryMonitor, FileSystemManager, () => ProviderManager, () => UserViewManager);
|
MediaEncoder = new MediaBrowser.MediaEncoding.Encoder.MediaEncoder(
|
||||||
|
LoggerFactory.CreateLogger<MediaBrowser.MediaEncoding.Encoder.MediaEncoder>(),
|
||||||
|
ServerConfigurationManager,
|
||||||
|
FileSystemManager,
|
||||||
|
ProcessFactory,
|
||||||
|
LocalizationManager,
|
||||||
|
() => SubtitleEncoder,
|
||||||
|
_configuration,
|
||||||
|
StartupOptions.FFmpegPath);
|
||||||
|
serviceCollection.AddSingleton(MediaEncoder);
|
||||||
|
|
||||||
|
LibraryManager = new LibraryManager(this, LoggerFactory, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => LibraryMonitor, FileSystemManager, () => ProviderManager, () => UserViewManager, MediaEncoder);
|
||||||
serviceCollection.AddSingleton(LibraryManager);
|
serviceCollection.AddSingleton(LibraryManager);
|
||||||
|
|
||||||
var musicManager = new MusicManager(LibraryManager);
|
var musicManager = new MusicManager(LibraryManager);
|
||||||
@ -833,17 +844,6 @@ namespace Emby.Server.Implementations
|
|||||||
ChapterManager = new ChapterManager(LibraryManager, LoggerFactory, ServerConfigurationManager, ItemRepository);
|
ChapterManager = new ChapterManager(LibraryManager, LoggerFactory, ServerConfigurationManager, ItemRepository);
|
||||||
serviceCollection.AddSingleton(ChapterManager);
|
serviceCollection.AddSingleton(ChapterManager);
|
||||||
|
|
||||||
MediaEncoder = new MediaBrowser.MediaEncoding.Encoder.MediaEncoder(
|
|
||||||
LoggerFactory.CreateLogger<MediaBrowser.MediaEncoding.Encoder.MediaEncoder>(),
|
|
||||||
ServerConfigurationManager,
|
|
||||||
FileSystemManager,
|
|
||||||
ProcessFactory,
|
|
||||||
LocalizationManager,
|
|
||||||
() => SubtitleEncoder,
|
|
||||||
_configuration,
|
|
||||||
StartupOptions.FFmpegPath);
|
|
||||||
serviceCollection.AddSingleton(MediaEncoder);
|
|
||||||
|
|
||||||
EncodingManager = new MediaEncoder.EncodingManager(FileSystemManager, LoggerFactory, MediaEncoder, ChapterManager, LibraryManager);
|
EncodingManager = new MediaEncoder.EncodingManager(FileSystemManager, LoggerFactory, MediaEncoder, ChapterManager, LibraryManager);
|
||||||
serviceCollection.AddSingleton(EncodingManager);
|
serviceCollection.AddSingleton(EncodingManager);
|
||||||
|
|
||||||
|
@ -29,11 +29,13 @@ using MediaBrowser.Controller.Entities.TV;
|
|||||||
using MediaBrowser.Controller.IO;
|
using MediaBrowser.Controller.IO;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.LiveTv;
|
using MediaBrowser.Controller.LiveTv;
|
||||||
|
using MediaBrowser.Controller.MediaEncoding;
|
||||||
using MediaBrowser.Controller.Persistence;
|
using MediaBrowser.Controller.Persistence;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Controller.Resolvers;
|
using MediaBrowser.Controller.Resolvers;
|
||||||
using MediaBrowser.Controller.Sorting;
|
using MediaBrowser.Controller.Sorting;
|
||||||
using MediaBrowser.Model.Configuration;
|
using MediaBrowser.Model.Configuration;
|
||||||
|
using MediaBrowser.Model.Dlna;
|
||||||
using MediaBrowser.Model.Dto;
|
using MediaBrowser.Model.Dto;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
@ -141,6 +143,7 @@ namespace Emby.Server.Implementations.Library
|
|||||||
public bool IsScanRunning { get; private set; }
|
public bool IsScanRunning { get; private set; }
|
||||||
|
|
||||||
private IServerApplicationHost _appHost;
|
private IServerApplicationHost _appHost;
|
||||||
|
private readonly IMediaEncoder _mediaEncoder;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The _library items cache
|
/// The _library items cache
|
||||||
@ -174,7 +177,8 @@ namespace Emby.Server.Implementations.Library
|
|||||||
Func<ILibraryMonitor> libraryMonitorFactory,
|
Func<ILibraryMonitor> libraryMonitorFactory,
|
||||||
IFileSystem fileSystem,
|
IFileSystem fileSystem,
|
||||||
Func<IProviderManager> providerManagerFactory,
|
Func<IProviderManager> providerManagerFactory,
|
||||||
Func<IUserViewManager> userviewManager)
|
Func<IUserViewManager> userviewManager,
|
||||||
|
IMediaEncoder mediaEncoder)
|
||||||
{
|
{
|
||||||
_appHost = appHost;
|
_appHost = appHost;
|
||||||
_logger = loggerFactory.CreateLogger(nameof(LibraryManager));
|
_logger = loggerFactory.CreateLogger(nameof(LibraryManager));
|
||||||
@ -186,6 +190,7 @@ namespace Emby.Server.Implementations.Library
|
|||||||
_fileSystem = fileSystem;
|
_fileSystem = fileSystem;
|
||||||
_providerManagerFactory = providerManagerFactory;
|
_providerManagerFactory = providerManagerFactory;
|
||||||
_userviewManager = userviewManager;
|
_userviewManager = userviewManager;
|
||||||
|
_mediaEncoder = mediaEncoder;
|
||||||
|
|
||||||
_libraryItemsCache = new ConcurrentDictionary<Guid, BaseItem>();
|
_libraryItemsCache = new ConcurrentDictionary<Guid, BaseItem>();
|
||||||
|
|
||||||
@ -2408,6 +2413,38 @@ namespace Emby.Server.Implementations.Library
|
|||||||
episodeInfo = new Naming.TV.EpisodeInfo();
|
episodeInfo = new Naming.TV.EpisodeInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var libraryOptions = GetLibraryOptions(episode);
|
||||||
|
if (libraryOptions.EnableEmbeddedEpisodeInfos && string.Equals(episodeInfo.Container, "mp4", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
// Read from metadata
|
||||||
|
var mediaInfo = _mediaEncoder.GetMediaInfo(new MediaInfoRequest
|
||||||
|
{
|
||||||
|
MediaSource = episode.GetMediaSources(false)[0],
|
||||||
|
MediaType = DlnaProfileType.Video
|
||||||
|
}, CancellationToken.None).GetAwaiter().GetResult();
|
||||||
|
if (mediaInfo.ParentIndexNumber > 0)
|
||||||
|
{
|
||||||
|
episodeInfo.SeasonNumber = mediaInfo.ParentIndexNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mediaInfo.IndexNumber > 0)
|
||||||
|
{
|
||||||
|
episodeInfo.EpisodeNumber = mediaInfo.IndexNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(mediaInfo.ShowName))
|
||||||
|
{
|
||||||
|
episodeInfo.SeriesName = mediaInfo.ShowName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Error reading the episode informations with ffprobe. Episode: {EpisodeInfo}", episodeInfo.Path);
|
||||||
|
}
|
||||||
|
|
||||||
var changed = false;
|
var changed = false;
|
||||||
|
|
||||||
if (episodeInfo.IsByDate)
|
if (episodeInfo.IsByDate)
|
||||||
|
@ -1 +1,14 @@
|
|||||||
{}
|
{
|
||||||
|
"Channels": "Canales",
|
||||||
|
"Books": "Libros",
|
||||||
|
"Albums": "Álbumes",
|
||||||
|
"Collections": "Colecciones",
|
||||||
|
"Artists": "Artistas",
|
||||||
|
"DeviceOnlineWithName": "{0} está conectado",
|
||||||
|
"DeviceOfflineWithName": "{0} ha desconectado",
|
||||||
|
"ChapterNameValue": "Capítulo {0}",
|
||||||
|
"CameraImageUploadedFrom": "Se ha subido una nueva imagen de cámara desde {0}",
|
||||||
|
"AuthenticationSucceededWithUserName": "{0} autenticado con éxito",
|
||||||
|
"Application": "Aplicación",
|
||||||
|
"AppDeviceValues": "App: {0}, Dispositivo: {1}"
|
||||||
|
}
|
||||||
|
@ -89,8 +89,8 @@
|
|||||||
"UserOnlineFromDevice": "{0} 在线,来自 {1}",
|
"UserOnlineFromDevice": "{0} 在线,来自 {1}",
|
||||||
"UserPasswordChangedWithName": "已为用户 {0} 更改密码",
|
"UserPasswordChangedWithName": "已为用户 {0} 更改密码",
|
||||||
"UserPolicyUpdatedWithName": "用户协议已经被更新为 {0}",
|
"UserPolicyUpdatedWithName": "用户协议已经被更新为 {0}",
|
||||||
"UserStartedPlayingItemWithValues": "{0} 已开始播放 {1}",
|
"UserStartedPlayingItemWithValues": "{0} 已在 {2} 上开始播放 {1}",
|
||||||
"UserStoppedPlayingItemWithValues": "{0} 已停止播放 {1}",
|
"UserStoppedPlayingItemWithValues": "{0} 已在 {2} 上停止播放 {1}",
|
||||||
"ValueHasBeenAddedToLibrary": "{0} 已添加至您的媒体库中",
|
"ValueHasBeenAddedToLibrary": "{0} 已添加至您的媒体库中",
|
||||||
"ValueSpecialEpisodeName": "特典 - {0}",
|
"ValueSpecialEpisodeName": "特典 - {0}",
|
||||||
"VersionNumber": "版本 {0}"
|
"VersionNumber": "版本 {0}"
|
||||||
|
@ -1,97 +1,97 @@
|
|||||||
{
|
{
|
||||||
"Albums": "Albums",
|
"Albums": "專輯",
|
||||||
"AppDeviceValues": "App: {0}, Device: {1}",
|
"AppDeviceValues": "軟體: {0}, 設備: {1}",
|
||||||
"Application": "Application",
|
"Application": "應用程式",
|
||||||
"Artists": "藝人",
|
"Artists": "藝人",
|
||||||
"AuthenticationSucceededWithUserName": "{0} successfully authenticated",
|
"AuthenticationSucceededWithUserName": "{0} 授權成功",
|
||||||
"Books": "Books",
|
"Books": "圖書",
|
||||||
"CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
|
"CameraImageUploadedFrom": "{0} 成功上傳一張新相片",
|
||||||
"Channels": "Channels",
|
"Channels": "頻道",
|
||||||
"ChapterNameValue": "Chapter {0}",
|
"ChapterNameValue": "章節 {0}",
|
||||||
"Collections": "Collections",
|
"Collections": "合輯",
|
||||||
"DeviceOfflineWithName": "{0} has disconnected",
|
"DeviceOfflineWithName": "{0} 已經斷開連結",
|
||||||
"DeviceOnlineWithName": "{0} is connected",
|
"DeviceOnlineWithName": "{0} 已經連接",
|
||||||
"FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
|
"FailedLoginAttemptWithUserName": "來自 {0} 的失敗登入嘗試",
|
||||||
"Favorites": "Favorites",
|
"Favorites": "我的最愛",
|
||||||
"Folders": "Folders",
|
"Folders": "檔案夾",
|
||||||
"Genres": "Genres",
|
"Genres": "風格",
|
||||||
"HeaderAlbumArtists": "Album Artists",
|
"HeaderAlbumArtists": "專輯藝術家",
|
||||||
"HeaderCameraUploads": "Camera Uploads",
|
"HeaderCameraUploads": "相機上載",
|
||||||
"HeaderContinueWatching": "Continue Watching",
|
"HeaderContinueWatching": "繼續觀看",
|
||||||
"HeaderFavoriteAlbums": "Favorite Albums",
|
"HeaderFavoriteAlbums": "最愛專輯",
|
||||||
"HeaderFavoriteArtists": "Favorite Artists",
|
"HeaderFavoriteArtists": "最愛藝術家",
|
||||||
"HeaderFavoriteEpisodes": "Favorite Episodes",
|
"HeaderFavoriteEpisodes": "最愛的劇集",
|
||||||
"HeaderFavoriteShows": "Favorite Shows",
|
"HeaderFavoriteShows": "最愛的節目",
|
||||||
"HeaderFavoriteSongs": "Favorite Songs",
|
"HeaderFavoriteSongs": "最愛的歌曲",
|
||||||
"HeaderLiveTV": "Live TV",
|
"HeaderLiveTV": "電視直播",
|
||||||
"HeaderNextUp": "Next Up",
|
"HeaderNextUp": "接下來",
|
||||||
"HeaderRecordingGroups": "Recording Groups",
|
"HeaderRecordingGroups": "錄製組",
|
||||||
"HomeVideos": "Home videos",
|
"HomeVideos": "家庭影片",
|
||||||
"Inherit": "Inherit",
|
"Inherit": "繼承",
|
||||||
"ItemAddedWithName": "{0} was added to the library",
|
"ItemAddedWithName": "{0} 已添加至媒體庫",
|
||||||
"ItemRemovedWithName": "{0} was removed from the library",
|
"ItemRemovedWithName": "{0} 已從媒體庫移除",
|
||||||
"LabelIpAddressValue": "Ip address: {0}",
|
"LabelIpAddressValue": "IP 地址: {0}",
|
||||||
"LabelRunningTimeValue": "Running time: {0}",
|
"LabelRunningTimeValue": "運行時間: {0}",
|
||||||
"Latest": "Latest",
|
"Latest": "最新",
|
||||||
"MessageApplicationUpdated": "Jellyfin Server has been updated",
|
"MessageApplicationUpdated": "Jellyfin Server 已更新",
|
||||||
"MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
|
"MessageApplicationUpdatedTo": "Jellyfin 伺服器已更新至 {0}",
|
||||||
"MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
|
"MessageNamedServerConfigurationUpdatedWithValue": "伺服器設定 {0} 部分已更新",
|
||||||
"MessageServerConfigurationUpdated": "Server configuration has been updated",
|
"MessageServerConfigurationUpdated": "伺服器設定已經更新",
|
||||||
"MixedContent": "Mixed content",
|
"MixedContent": "Mixed content",
|
||||||
"Movies": "Movies",
|
"Movies": "電影",
|
||||||
"Music": "Music",
|
"Music": "音樂",
|
||||||
"MusicVideos": "Music videos",
|
"MusicVideos": "音樂MV",
|
||||||
"NameInstallFailed": "{0} installation failed",
|
"NameInstallFailed": "{0} 安裝失敗",
|
||||||
"NameSeasonNumber": "Season {0}",
|
"NameSeasonNumber": "第 {0} 季",
|
||||||
"NameSeasonUnknown": "Season Unknown",
|
"NameSeasonUnknown": "未知季數",
|
||||||
"NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
|
"NewVersionIsAvailable": "新版本的 Jellyfin 伺服器可供下載。",
|
||||||
"NotificationOptionApplicationUpdateAvailable": "Application update available",
|
"NotificationOptionApplicationUpdateAvailable": "有可用的應用程式更新",
|
||||||
"NotificationOptionApplicationUpdateInstalled": "Application update installed",
|
"NotificationOptionApplicationUpdateInstalled": "應用程式已更新",
|
||||||
"NotificationOptionAudioPlayback": "Audio playback started",
|
"NotificationOptionAudioPlayback": "開始播放音頻",
|
||||||
"NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
|
"NotificationOptionAudioPlaybackStopped": "已停止播放音頻",
|
||||||
"NotificationOptionCameraImageUploaded": "Camera image uploaded",
|
"NotificationOptionCameraImageUploaded": "相機相片已上傳",
|
||||||
"NotificationOptionInstallationFailed": "Installation failure",
|
"NotificationOptionInstallationFailed": "安裝失敗",
|
||||||
"NotificationOptionNewLibraryContent": "New content added",
|
"NotificationOptionNewLibraryContent": "已添加新内容",
|
||||||
"NotificationOptionPluginError": "Plugin failure",
|
"NotificationOptionPluginError": "擴充元件錯誤",
|
||||||
"NotificationOptionPluginInstalled": "Plugin installed",
|
"NotificationOptionPluginInstalled": "擴充元件已安裝",
|
||||||
"NotificationOptionPluginUninstalled": "Plugin uninstalled",
|
"NotificationOptionPluginUninstalled": "擴充元件已移除",
|
||||||
"NotificationOptionPluginUpdateInstalled": "Plugin update installed",
|
"NotificationOptionPluginUpdateInstalled": "擴充元件更新已安裝",
|
||||||
"NotificationOptionServerRestartRequired": "Server restart required",
|
"NotificationOptionServerRestartRequired": "伺服器需要重啓",
|
||||||
"NotificationOptionTaskFailed": "Scheduled task failure",
|
"NotificationOptionTaskFailed": "計劃任務失敗",
|
||||||
"NotificationOptionUserLockedOut": "User locked out",
|
"NotificationOptionUserLockedOut": "用家已鎖定",
|
||||||
"NotificationOptionVideoPlayback": "Video playback started",
|
"NotificationOptionVideoPlayback": "開始播放視頻",
|
||||||
"NotificationOptionVideoPlaybackStopped": "Video playback stopped",
|
"NotificationOptionVideoPlaybackStopped": "已停止播放視頻",
|
||||||
"Photos": "Photos",
|
"Photos": "相片",
|
||||||
"Playlists": "Playlists",
|
"Playlists": "播放清單",
|
||||||
"Plugin": "Plugin",
|
"Plugin": "Plugin",
|
||||||
"PluginInstalledWithName": "{0} was installed",
|
"PluginInstalledWithName": "已安裝 {0}",
|
||||||
"PluginUninstalledWithName": "{0} was uninstalled",
|
"PluginUninstalledWithName": "已移除 {0}",
|
||||||
"PluginUpdatedWithName": "{0} was updated",
|
"PluginUpdatedWithName": "已更新 {0}",
|
||||||
"ProviderValue": "Provider: {0}",
|
"ProviderValue": "Provider: {0}",
|
||||||
"ScheduledTaskFailedWithName": "{0} failed",
|
"ScheduledTaskFailedWithName": "{0} 任務失敗",
|
||||||
"ScheduledTaskStartedWithName": "{0} started",
|
"ScheduledTaskStartedWithName": "{0} 任務開始",
|
||||||
"ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
|
"ServerNameNeedsToBeRestarted": "{0} 需要重啓",
|
||||||
"Shows": "Shows",
|
"Shows": "節目",
|
||||||
"Songs": "Songs",
|
"Songs": "歌曲",
|
||||||
"StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
|
"StartupEmbyServerIsLoading": "Jellyfin 伺服器載入中,請稍後再試。",
|
||||||
"SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
|
"SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
|
||||||
"SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
|
"SubtitleDownloadFailureFromForItem": "無法從 {0} 下載 {1} 的字幕",
|
||||||
"SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
|
"SubtitlesDownloadedForItem": "已為 {0} 下載了字幕",
|
||||||
"Sync": "Sync",
|
"Sync": "同步",
|
||||||
"System": "System",
|
"System": "System",
|
||||||
"TvShows": "TV Shows",
|
"TvShows": "電視節目",
|
||||||
"User": "User",
|
"User": "User",
|
||||||
"UserCreatedWithName": "User {0} has been created",
|
"UserCreatedWithName": "用家 {0} 已創建",
|
||||||
"UserDeletedWithName": "User {0} has been deleted",
|
"UserDeletedWithName": "用家 {0} 已移除",
|
||||||
"UserDownloadingItemWithValues": "{0} is downloading {1}",
|
"UserDownloadingItemWithValues": "{0} 正在下載 {1}",
|
||||||
"UserLockedOutWithName": "User {0} has been locked out",
|
"UserLockedOutWithName": "用家 {0} 已被鎖定",
|
||||||
"UserOfflineFromDevice": "{0} has disconnected from {1}",
|
"UserOfflineFromDevice": "{0} 已從 {1} 斷開",
|
||||||
"UserOnlineFromDevice": "{0} is online from {1}",
|
"UserOnlineFromDevice": "{0} 已連綫,來自 {1}",
|
||||||
"UserPasswordChangedWithName": "Password has been changed for user {0}",
|
"UserPasswordChangedWithName": "用家 {0} 的密碼已變更",
|
||||||
"UserPolicyUpdatedWithName": "User policy has been updated for {0}",
|
"UserPolicyUpdatedWithName": "用戶協議已被更新為 {0}",
|
||||||
"UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
|
"UserStartedPlayingItemWithValues": "{0} 正在 {2} 上播放 {1}",
|
||||||
"UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
|
"UserStoppedPlayingItemWithValues": "{0} 已在 {2} 上停止播放 {1}",
|
||||||
"ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
|
"ValueHasBeenAddedToLibrary": "{0} 已添加到你的媒體庫",
|
||||||
"ValueSpecialEpisodeName": "Special - {0}",
|
"ValueSpecialEpisodeName": "特典 - {0}",
|
||||||
"VersionNumber": "版本{0}"
|
"VersionNumber": "版本{0}"
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
"NotificationOptionCameraImageUploaded": "相機相片已上傳",
|
"NotificationOptionCameraImageUploaded": "相機相片已上傳",
|
||||||
"NotificationOptionInstallationFailed": "安裝失敗",
|
"NotificationOptionInstallationFailed": "安裝失敗",
|
||||||
"NotificationOptionNewLibraryContent": "已新增新內容",
|
"NotificationOptionNewLibraryContent": "已新增新內容",
|
||||||
"NotificationOptionPluginError": "擴充元件安裝失敗",
|
"NotificationOptionPluginError": "擴充元件錯誤",
|
||||||
"NotificationOptionPluginInstalled": "擴充元件已安裝",
|
"NotificationOptionPluginInstalled": "擴充元件已安裝",
|
||||||
"NotificationOptionPluginUninstalled": "擴充元件已移除",
|
"NotificationOptionPluginUninstalled": "擴充元件已移除",
|
||||||
"NotificationOptionPluginUpdateInstalled": "已更新擴充元件",
|
"NotificationOptionPluginUpdateInstalled": "已更新擴充元件",
|
||||||
|
@ -112,6 +112,9 @@ namespace MediaBrowser.MediaEncoding.Probing
|
|||||||
info.Name = title;
|
info.Name = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info.IndexNumber = FFProbeHelpers.GetDictionaryNumericValue(tags, "episode_sort");
|
||||||
|
info.ParentIndexNumber = FFProbeHelpers.GetDictionaryNumericValue(tags, "season_number");
|
||||||
|
info.ShowName = FFProbeHelpers.GetDictionaryValue(tags, "show_name");
|
||||||
info.ProductionYear = FFProbeHelpers.GetDictionaryNumericValue(tags, "date");
|
info.ProductionYear = FFProbeHelpers.GetDictionaryNumericValue(tags, "date");
|
||||||
|
|
||||||
// Several different forms of retaildate
|
// Several different forms of retaildate
|
||||||
|
@ -21,6 +21,7 @@ namespace MediaBrowser.Model.Configuration
|
|||||||
public bool ImportMissingEpisodes { get; set; }
|
public bool ImportMissingEpisodes { get; set; }
|
||||||
public bool EnableAutomaticSeriesGrouping { get; set; }
|
public bool EnableAutomaticSeriesGrouping { get; set; }
|
||||||
public bool EnableEmbeddedTitles { get; set; }
|
public bool EnableEmbeddedTitles { get; set; }
|
||||||
|
public bool EnableEmbeddedEpisodeInfos { get; set; }
|
||||||
|
|
||||||
public int AutomaticRefreshIntervalDays { get; set; }
|
public int AutomaticRefreshIntervalDays { get; set; }
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ namespace MediaBrowser.Model.MediaInfo
|
|||||||
/// <value>The studios.</value>
|
/// <value>The studios.</value>
|
||||||
public string[] Studios { get; set; }
|
public string[] Studios { get; set; }
|
||||||
public string[] Genres { get; set; }
|
public string[] Genres { get; set; }
|
||||||
|
public string ShowName { get; set; }
|
||||||
public int? IndexNumber { get; set; }
|
public int? IndexNumber { get; set; }
|
||||||
public int? ParentIndexNumber { get; set; }
|
public int? ParentIndexNumber { get; set; }
|
||||||
public int? ProductionYear { get; set; }
|
public int? ProductionYear { get; set; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user