mirror of https://github.com/jellyfin/jellyfin.git
add additional info to timer infos
This commit is contained in:
parent
bca5f49ac9
commit
12adc7ae4c
|
@ -89,6 +89,11 @@ namespace Emby.Server.Implementations.LiveTv
|
||||||
if (channel != null)
|
if (channel != null)
|
||||||
{
|
{
|
||||||
dto.ChannelName = channel.Name;
|
dto.ChannelName = channel.Name;
|
||||||
|
|
||||||
|
if (channel.HasImage(ImageType.Primary))
|
||||||
|
{
|
||||||
|
dto.ChannelPrimaryImageTag = GetImageTag(channel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return dto;
|
return dto;
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"Artists": "\u041e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b\u043b\u0430\u0440",
|
"Artists": "\u041e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b\u043b\u0430\u0440",
|
||||||
"Folders": "\u049a\u0430\u043b\u0442\u0430\u043b\u0430\u0440",
|
"Folders": "\u049a\u0430\u043b\u0442\u0430\u043b\u0430\u0440",
|
||||||
"Songs": "\u04d8\u0443\u0435\u043d\u0434\u0435\u0440",
|
"Songs": "\u04d8\u0443\u0435\u043d\u0434\u0435\u0440",
|
||||||
"TvShows": "TV Shows",
|
"TvShows": "\u0422\u0414-\u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u043c\u0434\u0435\u0440",
|
||||||
"Shows": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043c\u0434\u0435\u0440",
|
"Shows": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043c\u0434\u0435\u0440",
|
||||||
"Genres": "\u0416\u0430\u043d\u0440\u043b\u0430\u0440",
|
"Genres": "\u0416\u0430\u043d\u0440\u043b\u0430\u0440",
|
||||||
"NameSeasonNumber": "{0}-\u043c\u0430\u0443\u0441\u044b\u043c",
|
"NameSeasonNumber": "{0}-\u043c\u0430\u0443\u0441\u044b\u043c",
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
"Latest": "\u041d\u043e\u0432\u0435\u0439\u0448\u0435\u0435",
|
"Latest": "\u041d\u043e\u0432\u0435\u0439\u0448\u0435\u0435",
|
||||||
"ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}",
|
"ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}",
|
||||||
"Inherit": "\u041d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0435",
|
"Inherit": "\u041d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0435",
|
||||||
"Books": "\u041a\u043d\u0438\u0433\u0438",
|
"Books": "\u041b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430",
|
||||||
"Music": "\u041c\u0443\u0437\u044b\u043a\u0430",
|
"Music": "\u041c\u0443\u0437\u044b\u043a\u0430",
|
||||||
"Games": "\u0418\u0433\u0440\u044b",
|
"Games": "\u0418\u0433\u0440\u044b",
|
||||||
"Photos": "\u0424\u043e\u0442\u043e",
|
"Photos": "\u0424\u043e\u0442\u043e",
|
||||||
"MixedContent": "\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435",
|
"MixedContent": "\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435",
|
||||||
"MusicVideos": "\u041c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e",
|
"MusicVideos": "\u041c\u0443\u0437. \u0432\u0438\u0434\u0435\u043e",
|
||||||
"HomeVideos": "\u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e",
|
"HomeVideos": "\u0414\u043e\u043c. \u0432\u0438\u0434\u0435\u043e",
|
||||||
"Playlists": "\u041f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442\u044b",
|
"Playlists": "\u041f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442\u044b",
|
||||||
"HeaderRecordingGroups": "\u0413\u0440\u0443\u043f\u043f\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439",
|
"HeaderRecordingGroups": "\u0413\u0440\u0443\u043f\u043f\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439",
|
||||||
"HeaderContinueWatching": "\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430",
|
"HeaderContinueWatching": "\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430",
|
||||||
|
@ -22,12 +22,12 @@
|
||||||
"Favorites": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435",
|
"Favorites": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435",
|
||||||
"Collections": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438",
|
"Collections": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438",
|
||||||
"Channels": "\u041a\u0430\u043d\u0430\u043b\u044b",
|
"Channels": "\u041a\u0430\u043d\u0430\u043b\u044b",
|
||||||
"Movies": "\u0424\u0438\u043b\u044c\u043c\u044b",
|
"Movies": "\u041a\u0438\u043d\u043e",
|
||||||
"Albums": "\u0410\u043b\u044c\u0431\u043e\u043c\u044b",
|
"Albums": "\u0410\u043b\u044c\u0431\u043e\u043c\u044b",
|
||||||
"Artists": "\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438",
|
"Artists": "\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438",
|
||||||
"Folders": "\u041f\u0430\u043f\u043a\u0438",
|
"Folders": "\u041f\u0430\u043f\u043a\u0438",
|
||||||
"Songs": "\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438",
|
"Songs": "\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438",
|
||||||
"TvShows": "TV Shows",
|
"TvShows": "\u0422\u0412",
|
||||||
"Shows": "\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0438",
|
"Shows": "\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0438",
|
||||||
"Genres": "\u0416\u0430\u043d\u0440\u044b",
|
"Genres": "\u0416\u0430\u043d\u0440\u044b",
|
||||||
"NameSeasonNumber": "\u0421\u0435\u0437\u043e\u043d {0}",
|
"NameSeasonNumber": "\u0421\u0435\u0437\u043e\u043d {0}",
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
"DeviceOnlineWithName": "{0} - \u043f\u043e\u0434\u043a\u043b. \u0443\u0441\u0442-\u043d\u043e",
|
"DeviceOnlineWithName": "{0} - \u043f\u043e\u0434\u043a\u043b. \u0443\u0441\u0442-\u043d\u043e",
|
||||||
"UserOnlineFromDevice": "{0} - \u043f\u043e\u0434\u043a\u043b. \u0441 {1} \u0443\u0441\u0442-\u043d\u043e",
|
"UserOnlineFromDevice": "{0} - \u043f\u043e\u0434\u043a\u043b. \u0441 {1} \u0443\u0441\u0442-\u043d\u043e",
|
||||||
"ProviderValue": "\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a: {0}",
|
"ProviderValue": "\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a: {0}",
|
||||||
"SubtitlesDownloadedForItem": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u0434\u043b\u044f {0} \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b",
|
"SubtitlesDownloadedForItem": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u043a {0} \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b",
|
||||||
"UserCreatedWithName": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c {0} \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d",
|
"UserCreatedWithName": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c {0} \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d",
|
||||||
"UserPasswordChangedWithName": "\u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437-\u043b\u044f {0} \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d",
|
"UserPasswordChangedWithName": "\u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437-\u043b\u044f {0} \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d",
|
||||||
"UserDeletedWithName": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c {0} \u0431\u044b\u043b \u0443\u0434\u0430\u043b\u0451\u043d",
|
"UserDeletedWithName": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c {0} \u0431\u044b\u043b \u0443\u0434\u0430\u043b\u0451\u043d",
|
||||||
|
|
|
@ -50,22 +50,41 @@ namespace MediaBrowser.Controller.LiveTv
|
||||||
public static double? GetDefaultPrimaryImageAspectRatio(IHasProgramAttributes item)
|
public static double? GetDefaultPrimaryImageAspectRatio(IHasProgramAttributes item)
|
||||||
{
|
{
|
||||||
var serviceName = item.ServiceName;
|
var serviceName = item.ServiceName;
|
||||||
if (!item.IsMovie
|
|
||||||
&& !string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase)
|
if (item.IsMovie)
|
||||||
&& !string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase))
|
{
|
||||||
|
if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
double value = 2;
|
||||||
|
value /= 3;
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
double value = 16;
|
double value = 16;
|
||||||
value /= 9;
|
value /= 9;
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
double value = 2;
|
double value = 2;
|
||||||
value /= 3;
|
value /= 3;
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
double value = 16;
|
||||||
|
value /= 9;
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string EmbyServiceName = "Emby";
|
private static string EmbyServiceName = "Emby";
|
||||||
|
|
|
@ -41,6 +41,8 @@ namespace MediaBrowser.Model.LiveTv
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ChannelName { get; set; }
|
public string ChannelName { get; set; }
|
||||||
|
|
||||||
|
public string ChannelPrimaryImageTag { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the program identifier.
|
/// Gets or sets the program identifier.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -38,28 +38,6 @@ namespace MediaBrowser.Providers.Manager
|
||||||
LibraryManager = libraryManager;
|
LibraryManager = libraryManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool RequiresRefresh(IHasMetadata item, IDirectoryService directoryService)
|
|
||||||
{
|
|
||||||
if (item.RequiresRefresh())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.SupportsLocalMetadata)
|
|
||||||
{
|
|
||||||
var video = item as Video;
|
|
||||||
|
|
||||||
if (video != null && !video.IsPlaceHolder)
|
|
||||||
{
|
|
||||||
return !video.SubtitleFiles
|
|
||||||
.SequenceEqual(SubtitleResolver.GetSubtitleFiles(video, directoryService, FileSystem, false)
|
|
||||||
.OrderBy(i => i), StringComparer.OrdinalIgnoreCase);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<ItemUpdateType> RefreshMetadata(IHasMetadata item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
|
public async Task<ItemUpdateType> RefreshMetadata(IHasMetadata item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var itemOfType = (TItemType)item;
|
var itemOfType = (TItemType)item;
|
||||||
|
@ -70,6 +48,11 @@ namespace MediaBrowser.Providers.Manager
|
||||||
|
|
||||||
var libraryOptions = LibraryManager.GetLibraryOptions((BaseItem)item);
|
var libraryOptions = LibraryManager.GetLibraryOptions((BaseItem)item);
|
||||||
|
|
||||||
|
if (!requiresRefresh && libraryOptions.AutomaticRefreshIntervalDays > 0 && (DateTime.UtcNow - item.DateLastRefreshed).TotalDays >= libraryOptions.AutomaticRefreshIntervalDays)
|
||||||
|
{
|
||||||
|
requiresRefresh = true;
|
||||||
|
}
|
||||||
|
|
||||||
DateTime? newDateModified = null;
|
DateTime? newDateModified = null;
|
||||||
if (item.LocationType == LocationType.FileSystem)
|
if (item.LocationType == LocationType.FileSystem)
|
||||||
{
|
{
|
||||||
|
@ -85,18 +68,25 @@ namespace MediaBrowser.Providers.Manager
|
||||||
requiresRefresh = true;
|
requiresRefresh = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!requiresRefresh && libraryOptions.AutomaticRefreshIntervalDays > 0 && (DateTime.UtcNow - item.DateLastRefreshed).TotalDays >= libraryOptions.AutomaticRefreshIntervalDays)
|
if (!requiresRefresh && item.SupportsLocalMetadata)
|
||||||
{
|
{
|
||||||
requiresRefresh = true;
|
var video = item as Video;
|
||||||
|
|
||||||
|
if (video != null && !video.IsPlaceHolder)
|
||||||
|
{
|
||||||
|
requiresRefresh = !video.SubtitleFiles
|
||||||
|
.SequenceEqual(SubtitleResolver.GetSubtitleFiles(video, refreshOptions.DirectoryService, FileSystem, false)
|
||||||
|
.OrderBy(i => i), StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!requiresRefresh && refreshOptions.MetadataRefreshMode != MetadataRefreshMode.None)
|
if (!requiresRefresh && refreshOptions.MetadataRefreshMode != MetadataRefreshMode.None)
|
||||||
{
|
{
|
||||||
// TODO: If this returns true, should we instead just change metadata refresh mode to Full?
|
// TODO: If this returns true, should we instead just change metadata refresh mode to Full?
|
||||||
requiresRefresh = RequiresRefresh(item, refreshOptions.DirectoryService);
|
requiresRefresh = item.RequiresRefresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemImageProvider = new ItemImageProvider(Logger, ProviderManager, ServerConfigurationManager, FileSystem);
|
var itemImageProvider = new ItemImageProvider(Logger, ProviderManager, ServerConfigurationManager, FileSystem);
|
||||||
|
|
|
@ -152,7 +152,7 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html = html.Replace("<head>", "<head>" + GetMetaTags(mode) + GetCommonCss(mode, appVersion));
|
html = html.Replace("<head>", "<head>" + GetMetaTags(mode));
|
||||||
|
|
||||||
// Disable embedded scripts from plugins. We'll run them later once resources have loaded
|
// Disable embedded scripts from plugins. We'll run them later once resources have loaded
|
||||||
if (html.IndexOf("<script", StringComparison.OrdinalIgnoreCase) != -1)
|
if (html.IndexOf("<script", StringComparison.OrdinalIgnoreCase) != -1)
|
||||||
|
@ -229,26 +229,6 @@ namespace MediaBrowser.WebDashboard.Api
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the common CSS.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="mode">The mode.</param>
|
|
||||||
/// <param name="version">The version.</param>
|
|
||||||
/// <returns>System.String.</returns>
|
|
||||||
private string GetCommonCss(string mode, string version)
|
|
||||||
{
|
|
||||||
var versionString = string.IsNullOrWhiteSpace(mode) ? "?v=" + version : string.Empty;
|
|
||||||
|
|
||||||
var files = new[]
|
|
||||||
{
|
|
||||||
"css/site.css" + versionString
|
|
||||||
};
|
|
||||||
|
|
||||||
var tags = files.Select(s => string.Format("<link rel=\"stylesheet\" href=\"{0}\" async />", s)).ToArray();
|
|
||||||
|
|
||||||
return string.Join(string.Empty, tags);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the common javascript.
|
/// Gets the common javascript.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in New Issue