mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 09:04:42 +01:00
Removed unused properties from BaseItem.
This commit is contained in:
@@ -392,7 +392,13 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
/// <returns>List{Guid}.</returns>
|
||||
private List<Guid> GetScreenshotImageTags(BaseItem item)
|
||||
{
|
||||
return item.ScreenshotImagePaths
|
||||
var hasScreenshots = item as IHasScreenshots;
|
||||
if (hasScreenshots == null)
|
||||
{
|
||||
return new List<Guid>();
|
||||
}
|
||||
|
||||
return hasScreenshots.ScreenshotImagePaths
|
||||
.Select(p => GetImageCacheTag(item, ImageType.Screenshot, p))
|
||||
.Where(i => i.HasValue)
|
||||
.Select(i => i.Value)
|
||||
@@ -746,12 +752,21 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
|
||||
if (fields.Contains(ItemFields.Tags))
|
||||
{
|
||||
dto.Tags = item.Tags;
|
||||
var hasTags = item as IHasTags;
|
||||
if (hasTags != null)
|
||||
{
|
||||
dto.Tags = hasTags.Tags;
|
||||
}
|
||||
|
||||
if (dto.Tags == null)
|
||||
{
|
||||
dto.Tags = new List<string>();
|
||||
}
|
||||
}
|
||||
|
||||
if (fields.Contains(ItemFields.ProductionLocations))
|
||||
{
|
||||
dto.ProductionLocations = item.ProductionLocations;
|
||||
SetProductionLocations(item, dto);
|
||||
}
|
||||
|
||||
var hasAspectRatio = item as IHasAspectRatio;
|
||||
@@ -789,10 +804,15 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
dto.Id = GetDtoId(item);
|
||||
dto.IndexNumber = item.IndexNumber;
|
||||
dto.IsFolder = item.IsFolder;
|
||||
dto.Language = item.Language;
|
||||
dto.MediaType = item.MediaType;
|
||||
dto.LocationType = item.LocationType;
|
||||
|
||||
var hasLanguage = item as IHasLanguage;
|
||||
if (hasLanguage != null)
|
||||
{
|
||||
dto.Language = hasLanguage.Language;
|
||||
}
|
||||
|
||||
var hasCriticRating = item as IHasCriticRating;
|
||||
if (hasCriticRating != null)
|
||||
{
|
||||
@@ -924,7 +944,16 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
|
||||
if (fields.Contains(ItemFields.Taglines))
|
||||
{
|
||||
dto.Taglines = item.Taglines;
|
||||
var hasTagline = item as IHasTaglines;
|
||||
if (hasTagline != null)
|
||||
{
|
||||
dto.Taglines = hasTagline.Taglines;
|
||||
}
|
||||
|
||||
if (dto.Taglines == null)
|
||||
{
|
||||
dto.Taglines = new List<string>();
|
||||
}
|
||||
}
|
||||
|
||||
dto.Type = item.GetClientTypeName();
|
||||
@@ -1122,6 +1151,31 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
}
|
||||
}
|
||||
|
||||
private void SetProductionLocations(BaseItem item, BaseItemDto dto)
|
||||
{
|
||||
var hasProductionLocations = item as IHasProductionLocations;
|
||||
|
||||
if (hasProductionLocations != null)
|
||||
{
|
||||
dto.ProductionLocations = hasProductionLocations.ProductionLocations;
|
||||
}
|
||||
|
||||
var person = item as Person;
|
||||
if (person != null)
|
||||
{
|
||||
dto.ProductionLocations = new List<string>();
|
||||
if (!string.IsNullOrEmpty(person.PlaceOfBirth))
|
||||
{
|
||||
dto.ProductionLocations.Add(person.PlaceOfBirth);
|
||||
}
|
||||
}
|
||||
|
||||
if (dto.ProductionLocations == null)
|
||||
{
|
||||
dto.ProductionLocations = new List<string>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Since it can be slow to make all of these calculations independently, this method will provide a way to do them all at once
|
||||
/// </summary>
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
||||
|
||||
var swaggerDirectory = Path.Combine(runningDirectory, "swagger-ui");
|
||||
|
||||
var requestedFile = Path.Combine(swaggerDirectory, request.ResourceName.Replace('/', '\\'));
|
||||
var requestedFile = Path.Combine(swaggerDirectory, request.ResourceName.Replace('/', Path.DirectorySeparatorChar));
|
||||
|
||||
return ResultFactory.GetStaticFileResult(RequestContext, requestedFile);
|
||||
}
|
||||
|
||||
@@ -150,7 +150,6 @@ namespace MediaBrowser.Server.Implementations.IO
|
||||
}
|
||||
|
||||
})
|
||||
.Where(Path.IsPathRooted)
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.OrderBy(i => i)
|
||||
.ToList();
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
|
||||
}
|
||||
|
||||
// Optimization to avoid running these tests against Seasons
|
||||
if (args.Parent is Series || args.Parent is MusicArtist || args.Parent is MusicAlbum)
|
||||
if (args.Parent is Series || args.Parent is Season || args.Parent is MusicArtist || args.Parent is MusicAlbum)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -308,29 +308,30 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
internal async Task RefreshChannels(IProgress<double> progress, CancellationToken cancellationToken)
|
||||
{
|
||||
// Avoid implicitly captured closure
|
||||
var currentCancellationToken = cancellationToken;
|
||||
var service = ActiveService;
|
||||
|
||||
var channelTasks = _services.Select(i => GetChannels(i, currentCancellationToken));
|
||||
if (service == null)
|
||||
{
|
||||
progress.Report(100);
|
||||
return;
|
||||
}
|
||||
|
||||
progress.Report(10);
|
||||
|
||||
var results = await Task.WhenAll(channelTasks).ConfigureAwait(false);
|
||||
|
||||
var allChannels = results.SelectMany(i => i).ToList();
|
||||
var allChannels = await GetChannels(service, cancellationToken).ConfigureAwait(false);
|
||||
var allChannelsList = allChannels.ToList();
|
||||
|
||||
var list = new List<Channel>();
|
||||
var programs = new List<ProgramInfoDto>();
|
||||
|
||||
var numComplete = 0;
|
||||
|
||||
foreach (var channelInfo in allChannels)
|
||||
foreach (var channelInfo in allChannelsList)
|
||||
{
|
||||
try
|
||||
{
|
||||
var item = await GetChannel(channelInfo.Item2, channelInfo.Item1, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
var service = _services.First(i => string.Equals(channelInfo.Item1, i.Name, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
var channelPrograms = await service.GetProgramsAsync(channelInfo.Item2.Id, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
programs.AddRange(channelPrograms.Select(program => GetProgramInfoDto(program, item)));
|
||||
@@ -348,7 +349,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
numComplete++;
|
||||
double percent = numComplete;
|
||||
percent /= allChannels.Count;
|
||||
percent /= allChannelsList.Count;
|
||||
|
||||
progress.Report(90 * percent + 10);
|
||||
}
|
||||
|
||||
@@ -37,54 +37,14 @@
|
||||
<Reference Include="Alchemy">
|
||||
<HintPath>..\packages\Alchemy.2.2.1\lib\net40\Alchemy.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="BDInfo, Version=1.0.5037.22194, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.5\lib\net20\BDInfo.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Mono.Data.Sqlite">
|
||||
<HintPath>..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.70\lib\net35\Mono.Data.Sqlite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack, Version=3.9.70.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.3.9.70\lib\net35\ServiceStack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Api.Swagger, Version=3.9.70.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.Api.Swagger.3.9.70\lib\net35\ServiceStack.Api.Swagger.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Common, Version=3.9.70.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.Common.3.9.70\lib\net35\ServiceStack.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Interfaces, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.Common.3.9.70\lib\net35\ServiceStack.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.OrmLite, Version=3.9.70.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.70\lib\net35\ServiceStack.OrmLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.OrmLite.Sqlite">
|
||||
<HintPath>..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.70\lib\net35\ServiceStack.OrmLite.Sqlite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.ServiceInterface, Version=3.9.70.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.3.9.70\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Text, Version=3.9.70.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\ServiceStack.Text.3.9.70\lib\net35\ServiceStack.Text.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.89.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\System.Data.SQLite.x86.1.0.89.0\lib\net45\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SQLite.Linq, Version=1.0.89.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\System.Data.SQLite.x86.1.0.89.0\lib\net45\System.Data.SQLite.Linq.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Reactive.Core">
|
||||
<HintPath>..\packages\Rx-Core.2.1.30214.0\lib\Net45\System.Reactive.Core.dll</HintPath>
|
||||
@@ -109,6 +69,36 @@
|
||||
<Reference Include="ServiceStack.Redis">
|
||||
<HintPath>..\packages\ServiceStack.Redis.3.9.43\lib\net35\ServiceStack.Redis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="BDInfo">
|
||||
<HintPath>..\packages\MediaBrowser.BdInfo.1.0.0.5\lib\net20\BDInfo.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack">
|
||||
<HintPath>..\packages\ServiceStack.3.9.70\lib\net35\ServiceStack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Api.Swagger">
|
||||
<HintPath>..\packages\ServiceStack.Api.Swagger.3.9.70\lib\net35\ServiceStack.Api.Swagger.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Common">
|
||||
<HintPath>..\packages\ServiceStack.Common.3.9.70\lib\net35\ServiceStack.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Interfaces">
|
||||
<HintPath>..\packages\ServiceStack.Common.3.9.70\lib\net35\ServiceStack.Interfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.OrmLite">
|
||||
<HintPath>..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.70\lib\net35\ServiceStack.OrmLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.ServiceInterface">
|
||||
<HintPath>..\packages\ServiceStack.3.9.70\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ServiceStack.Text">
|
||||
<HintPath>..\packages\ServiceStack.Text.3.9.70\lib\net35\ServiceStack.Text.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SQLite">
|
||||
<HintPath>..\packages\System.Data.SQLite.x86.1.0.89.0\lib\net45\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SQLite.Linq">
|
||||
<HintPath>..\packages\System.Data.SQLite.x86.1.0.89.0\lib\net45\System.Data.SQLite.Linq.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\SharedVersion.cs">
|
||||
|
||||
@@ -114,7 +114,8 @@ namespace MediaBrowser.Server.Implementations.Providers
|
||||
}
|
||||
else if (type == ImageType.Screenshot && imageIndex == null)
|
||||
{
|
||||
imageIndex = item.ScreenshotImagePaths.Count;
|
||||
var hasScreenshots = (IHasScreenshots)item;
|
||||
imageIndex = hasScreenshots.ScreenshotImagePaths.Count;
|
||||
}
|
||||
|
||||
var paths = GetSavePaths(item, type, imageIndex, mimeType, saveLocally);
|
||||
@@ -262,11 +263,12 @@ namespace MediaBrowser.Server.Implementations.Providers
|
||||
{
|
||||
case ImageType.Screenshot:
|
||||
|
||||
var hasScreenshots = (IHasScreenshots)item;
|
||||
if (!imageIndex.HasValue)
|
||||
{
|
||||
throw new ArgumentNullException("imageIndex");
|
||||
}
|
||||
return item.ScreenshotImagePaths.Count > imageIndex.Value ? item.ScreenshotImagePaths[imageIndex.Value] : null;
|
||||
return hasScreenshots.ScreenshotImagePaths.Count > imageIndex.Value ? hasScreenshots.ScreenshotImagePaths[imageIndex.Value] : null;
|
||||
case ImageType.Backdrop:
|
||||
if (!imageIndex.HasValue)
|
||||
{
|
||||
@@ -300,13 +302,14 @@ namespace MediaBrowser.Server.Implementations.Providers
|
||||
throw new ArgumentNullException("imageIndex");
|
||||
}
|
||||
|
||||
if (item.ScreenshotImagePaths.Count > imageIndex.Value)
|
||||
var hasScreenshots = (IHasScreenshots)item;
|
||||
if (hasScreenshots.ScreenshotImagePaths.Count > imageIndex.Value)
|
||||
{
|
||||
item.ScreenshotImagePaths[imageIndex.Value] = path;
|
||||
hasScreenshots.ScreenshotImagePaths[imageIndex.Value] = path;
|
||||
}
|
||||
else if (!item.ScreenshotImagePaths.Contains(path, StringComparer.OrdinalIgnoreCase))
|
||||
else if (!hasScreenshots.ScreenshotImagePaths.Contains(path, StringComparer.OrdinalIgnoreCase))
|
||||
{
|
||||
item.ScreenshotImagePaths.Add(path);
|
||||
hasScreenshots.ScreenshotImagePaths.Add(path);
|
||||
}
|
||||
break;
|
||||
case ImageType.Backdrop:
|
||||
@@ -379,7 +382,8 @@ namespace MediaBrowser.Server.Implementations.Providers
|
||||
{
|
||||
throw new ArgumentNullException("imageIndex");
|
||||
}
|
||||
filename = GetBackdropSaveFilename(item.ScreenshotImagePaths, "screenshot", "screenshot", imageIndex.Value);
|
||||
var hasScreenshots = (IHasScreenshots)item;
|
||||
filename = GetBackdropSaveFilename(hasScreenshots.ScreenshotImagePaths, "screenshot", "screenshot", imageIndex.Value);
|
||||
break;
|
||||
default:
|
||||
filename = type.ToString().ToLower();
|
||||
|
||||
Reference in New Issue
Block a user