mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-23 07:20:53 -04:00
commit
b90c18b7f3
@ -219,6 +219,7 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
Studios,
|
Studios,
|
||||||
|
|
||||||
|
BasicSyncInfo,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The synchronize information
|
/// The synchronize information
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -133,7 +133,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FillSyncInfo(dto, item, syncJobItems, options, user);
|
FillSyncInfo(dto, item, options, user, syncJobItems);
|
||||||
|
|
||||||
list.Add(dto);
|
list.Add(dto);
|
||||||
}
|
}
|
||||||
@ -253,14 +253,16 @@ namespace MediaBrowser.Server.Implementations.Dto
|
|||||||
{
|
{
|
||||||
var item = tuple.Item1;
|
var item = tuple.Item1;
|
||||||
|
|
||||||
FillSyncInfo(tuple.Item2, item, syncProgress, options, user);
|
FillSyncInfo(tuple.Item2, item, options, user, syncProgress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, DtoOptions options, User user, SyncedItemProgress[] syncProgress)
|
private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, DtoOptions options, User user, SyncedItemProgress[] syncProgress)
|
||||||
{
|
{
|
||||||
if (options.Fields.Contains(ItemFields.SyncInfo))
|
var hasFullSyncInfo = options.Fields.Contains(ItemFields.SyncInfo);
|
||||||
|
|
||||||
|
if (hasFullSyncInfo || options.Fields.Contains(ItemFields.BasicSyncInfo))
|
||||||
{
|
{
|
||||||
var userCanSync = user != null && user.Policy.EnableSync;
|
var userCanSync = user != null && user.Policy.EnableSync;
|
||||||
dto.SupportsSync = userCanSync && _syncManager.SupportsSync(item);
|
dto.SupportsSync = userCanSync && _syncManager.SupportsSync(item);
|
||||||
@ -271,39 +273,17 @@ namespace MediaBrowser.Server.Implementations.Dto
|
|||||||
dto.HasSyncJob = syncProgress.Any(i => i.Status != SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
|
dto.HasSyncJob = syncProgress.Any(i => i.Status != SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
|
||||||
dto.IsSynced = syncProgress.Any(i => i.Status == SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
|
dto.IsSynced = syncProgress.Any(i => i.Status == SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
if (dto.IsSynced.Value)
|
if (hasFullSyncInfo)
|
||||||
{
|
{
|
||||||
dto.SyncStatus = SyncJobItemStatus.Synced;
|
if (dto.IsSynced.Value)
|
||||||
}
|
{
|
||||||
|
dto.SyncStatus = SyncJobItemStatus.Synced;
|
||||||
|
}
|
||||||
|
|
||||||
else if (dto.HasSyncJob.Value)
|
else if (dto.HasSyncJob.Value)
|
||||||
{
|
{
|
||||||
dto.SyncStatus = syncProgress.Where(i => string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase)).Select(i => i.Status).Max();
|
dto.SyncStatus = syncProgress.Where(i => string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase)).Select(i => i.Status).Max();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void FillSyncInfo(IHasSyncInfo dto, BaseItem item, SyncedItemProgress[] syncProgress, DtoOptions options, User user)
|
|
||||||
{
|
|
||||||
if (options.Fields.Contains(ItemFields.SyncInfo))
|
|
||||||
{
|
|
||||||
var userCanSync = user != null && user.Policy.EnableSync;
|
|
||||||
dto.SupportsSync = userCanSync && _syncManager.SupportsSync(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dto.SupportsSync ?? false)
|
|
||||||
{
|
|
||||||
dto.HasSyncJob = syncProgress.Any(i => i.Status != SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
|
|
||||||
dto.IsSynced = syncProgress.Any(i => i.Status == SyncJobItemStatus.Synced && string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
if (dto.IsSynced.Value)
|
|
||||||
{
|
|
||||||
dto.SyncStatus = SyncJobItemStatus.Synced;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (dto.HasSyncJob.Value)
|
|
||||||
{
|
|
||||||
dto.SyncStatus = syncProgress.Where(i => string.Equals(i.ItemId, dto.Id, StringComparison.OrdinalIgnoreCase)).Select(i => i.Status).Max();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1187,6 +1187,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
// Load these now which will prefetch metadata
|
// Load these now which will prefetch metadata
|
||||||
var dtoOptions = new DtoOptions();
|
var dtoOptions = new DtoOptions();
|
||||||
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
|
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
|
||||||
|
dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo);
|
||||||
await GetRecordings(new RecordingQuery(), dtoOptions, cancellationToken).ConfigureAwait(false);
|
await GetRecordings(new RecordingQuery(), dtoOptions, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
progress.Report(100);
|
progress.Report(100);
|
||||||
|
@ -646,6 +646,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
|||||||
dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
|
dtoOptions.Fields.Remove(ItemFields.SeriesGenres);
|
||||||
dtoOptions.Fields.Remove(ItemFields.Settings);
|
dtoOptions.Fields.Remove(ItemFields.Settings);
|
||||||
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
|
dtoOptions.Fields.Remove(ItemFields.SyncInfo);
|
||||||
|
dtoOptions.Fields.Remove(ItemFields.BasicSyncInfo);
|
||||||
|
|
||||||
syncedItem.Item = _dtoService().GetBaseItemDto(libraryItem, dtoOptions);
|
syncedItem.Item = _dtoService().GetBaseItemDto(libraryItem, dtoOptions);
|
||||||
|
|
||||||
|
@ -199,10 +199,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
// int.TryParse is local aware, so it can be probamatic, force us culture
|
||||||
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
||||||
{
|
{
|
||||||
if ((item.ParentIndexNumber ?? 0) == 0)
|
item.AirsBeforeSeasonNumber = rval;
|
||||||
{
|
|
||||||
item.AirsBeforeSeasonNumber = rval;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,10 +217,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
// int.TryParse is local aware, so it can be probamatic, force us culture
|
||||||
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
||||||
{
|
{
|
||||||
if ((item.ParentIndexNumber ?? 0) == 0)
|
item.AirsBeforeEpisodeNumber = rval;
|
||||||
{
|
|
||||||
item.AirsBeforeEpisodeNumber = rval;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user