Merge pull request #2390 from MediaBrowser/dev

Dev
release-10.1.0
Luke 8 years ago committed by GitHub
commit 488e36811d

@ -18,6 +18,7 @@ namespace Emby.Server.Implementations.Connect
public class ConnectEntryPoint : IServerEntryPoint public class ConnectEntryPoint : IServerEntryPoint
{ {
private ITimer _timer; private ITimer _timer;
private IpAddressInfo _cachedIpAddress;
private readonly IHttpClient _httpClient; private readonly IHttpClient _httpClient;
private readonly IApplicationPaths _appPaths; private readonly IApplicationPaths _appPaths;
private readonly ILogger _logger; private readonly ILogger _logger;
@ -151,6 +152,12 @@ namespace Emby.Server.Implementations.Connect
private void CacheAddress(IpAddressInfo address) private void CacheAddress(IpAddressInfo address)
{ {
if (_cachedIpAddress != null && _cachedIpAddress.Equals(address))
{
// no need to update the file if the address has not changed
return;
}
var path = CacheFilePath; var path = CacheFilePath;
try try
@ -164,6 +171,7 @@ namespace Emby.Server.Implementations.Connect
try try
{ {
_fileSystem.WriteAllText(path, _encryption.EncryptString(address.ToString()), Encoding.UTF8); _fileSystem.WriteAllText(path, _encryption.EncryptString(address.ToString()), Encoding.UTF8);
_cachedIpAddress = address;
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -184,6 +192,7 @@ namespace Emby.Server.Implementations.Connect
if (_networkManager.TryParseIpAddress(endpoint, out ipAddress)) if (_networkManager.TryParseIpAddress(endpoint, out ipAddress))
{ {
_cachedIpAddress = ipAddress;
((ConnectManager)_connectManager).OnWanAddressResolved(ipAddress); ((ConnectManager)_connectManager).OnWanAddressResolved(ipAddress);
} }
} }

@ -3208,6 +3208,11 @@ namespace Emby.Server.Implementations.Data
private List<string> GetWhereClauses(InternalItemsQuery query, IStatement statement, string paramSuffix = "") private List<string> GetWhereClauses(InternalItemsQuery query, IStatement statement, string paramSuffix = "")
{ {
if (query.IsResumable ?? false)
{
query.IsVirtualItem = false;
}
var whereClauses = new List<string>(); var whereClauses = new List<string>();
if (EnableJoinUserData(query)) if (EnableJoinUserData(query))
@ -4081,27 +4086,6 @@ namespace Emby.Server.Implementations.Data
whereClauses.Add("LocationType in (" + val + ")"); whereClauses.Add("LocationType in (" + val + ")");
} }
if (query.ExcludeLocationTypes.Length == 1)
{
if (query.ExcludeLocationTypes[0] == LocationType.Virtual && _config.Configuration.SchemaVersion >= 90)
{
query.IsVirtualItem = false;
}
else
{
whereClauses.Add("LocationType<>@ExcludeLocationTypes");
if (statement != null)
{
statement.TryBind("@ExcludeLocationTypes", query.ExcludeLocationTypes[0].ToString());
}
}
}
else if (query.ExcludeLocationTypes.Length > 1)
{
var val = string.Join(",", query.ExcludeLocationTypes.Select(i => "'" + i + "'").ToArray());
whereClauses.Add("LocationType not in (" + val + ")");
}
if (query.IsVirtualItem.HasValue) if (query.IsVirtualItem.HasValue)
{ {
whereClauses.Add("IsVirtualItem=@IsVirtualItem"); whereClauses.Add("IsVirtualItem=@IsVirtualItem");

@ -2481,6 +2481,8 @@ namespace Emby.Server.Implementations.Library
options.VideoFileExtensions.Remove(".zip"); options.VideoFileExtensions.Remove(".zip");
} }
options.VideoFileExtensions.Add(".tp");
return options; return options;
} }

@ -157,6 +157,7 @@ namespace Emby.Server.Implementations.Library
} }
AddIfMissing(excludeItemTypes, typeof(CollectionFolder).Name); AddIfMissing(excludeItemTypes, typeof(CollectionFolder).Name);
AddIfMissing(excludeItemTypes, typeof(Folder).Name);
var mediaItems = _libraryManager.GetItemList(new InternalItemsQuery(user) var mediaItems = _libraryManager.GetItemList(new InternalItemsQuery(user)
{ {
@ -164,8 +165,7 @@ namespace Emby.Server.Implementations.Library
ExcludeItemTypes = excludeItemTypes.ToArray(), ExcludeItemTypes = excludeItemTypes.ToArray(),
IncludeItemTypes = includeItemTypes.ToArray(), IncludeItemTypes = includeItemTypes.ToArray(),
Limit = query.Limit, Limit = query.Limit,
IncludeItemsByName = true, IncludeItemsByName = true
IsVirtualItem = false
}); });
// Add search hints based on item name // Add search hints based on item name

@ -287,7 +287,7 @@ namespace Emby.Server.Implementations.Library
SortBy = new[] { ItemSortBy.DateCreated }, SortBy = new[] { ItemSortBy.DateCreated },
IsFolder = includeItemTypes.Length == 0 ? false : (bool?)null, IsFolder = includeItemTypes.Length == 0 ? false : (bool?)null,
ExcludeItemTypes = excludeItemTypes, ExcludeItemTypes = excludeItemTypes,
ExcludeLocationTypes = new[] { LocationType.Virtual }, IsVirtualItem = false,
Limit = limit * 5, Limit = limit * 5,
SourceTypes = parents.Count == 0 ? new[] { SourceType.Library } : new SourceType[] { }, SourceTypes = parents.Count == 0 ? new[] { SourceType.Library } : new SourceType[] { },
IsPlayed = request.IsPlayed IsPlayed = request.IsPlayed

@ -1602,7 +1602,7 @@ namespace Emby.Server.Implementations.LiveTv
Recursive = true, Recursive = true,
AncestorIds = folders.Select(i => i.Id.ToString("N")).ToArray(), AncestorIds = folders.Select(i => i.Id.ToString("N")).ToArray(),
IsFolder = false, IsFolder = false,
ExcludeLocationTypes = new[] { LocationType.Virtual }, IsVirtualItem = false,
Limit = query.Limit, Limit = query.Limit,
SortBy = new[] { ItemSortBy.DateCreated }, SortBy = new[] { ItemSortBy.DateCreated },
SortOrder = SortOrder.Descending, SortOrder = SortOrder.Descending,

@ -666,7 +666,7 @@ namespace MediaBrowser.Api.Library
IncludeItemTypes = new[] { type.Name }, IncludeItemTypes = new[] { type.Name },
Limit = 0, Limit = 0,
Recursive = true, Recursive = true,
ExcludeLocationTypes = new[] { LocationType.Virtual }, IsVirtualItem = false,
SourceTypes = new[] { SourceType.Library }, SourceTypes = new[] { SourceType.Library },
IsFavorite = request.IsFavorite IsFavorite = request.IsFavorite
}; };

@ -293,7 +293,11 @@ namespace MediaBrowser.Api.Reports
// ExcludeLocationTypes // ExcludeLocationTypes
if (!string.IsNullOrEmpty(request.ExcludeLocationTypes)) if (!string.IsNullOrEmpty(request.ExcludeLocationTypes))
{ {
query.ExcludeLocationTypes = request.ExcludeLocationTypes.Split(',').Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true)).ToArray(); var excludeLocationTypes = request.ExcludeLocationTypes.Split(',').Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true)).ToArray();
if (excludeLocationTypes.Contains(LocationType.Virtual))
{
query.IsVirtualItem = false;
}
} }
if (!string.IsNullOrEmpty(request.LocationTypes)) if (!string.IsNullOrEmpty(request.LocationTypes))

@ -318,7 +318,11 @@ namespace MediaBrowser.Api.UserLibrary
// ExcludeLocationTypes // ExcludeLocationTypes
if (!string.IsNullOrEmpty(request.ExcludeLocationTypes)) if (!string.IsNullOrEmpty(request.ExcludeLocationTypes))
{ {
query.ExcludeLocationTypes = request.ExcludeLocationTypes.Split(',').Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true)).ToArray(); var excludeLocationTypes = request.ExcludeLocationTypes.Split(',').Select(d => (LocationType)Enum.Parse(typeof(LocationType), d, true)).ToArray();
if (excludeLocationTypes.Contains(LocationType.Virtual))
{
query.IsVirtualItem = false;
}
} }
if (!string.IsNullOrEmpty(request.LocationTypes)) if (!string.IsNullOrEmpty(request.LocationTypes))

@ -16,6 +16,15 @@ namespace MediaBrowser.Controller.Entities
} }
} }
[IgnoreDataMember]
public override bool SupportsPlayedStatus
{
get
{
return true;
}
}
[IgnoreDataMember] [IgnoreDataMember]
public string SeriesPresentationUniqueKey { get; set; } public string SeriesPresentationUniqueKey { get; set; }
[IgnoreDataMember] [IgnoreDataMember]

@ -1336,7 +1336,7 @@ namespace MediaBrowser.Controller.Entities
if (!user.Configuration.DisplayMissingEpisodes || !user.Configuration.DisplayUnairedEpisodes) if (!user.Configuration.DisplayMissingEpisodes || !user.Configuration.DisplayUnairedEpisodes)
{ {
query.ExcludeLocationTypes = new[] { LocationType.Virtual }; query.IsVirtualItem = false;
} }
var itemsResult = await GetItems(query).ConfigureAwait(false); var itemsResult = await GetItems(query).ConfigureAwait(false);
@ -1375,7 +1375,7 @@ namespace MediaBrowser.Controller.Entities
{ {
Recursive = true, Recursive = true,
IsFolder = false, IsFolder = false,
ExcludeLocationTypes = new[] { LocationType.Virtual }, IsVirtualItem = false,
EnableTotalRecordCount = false EnableTotalRecordCount = false
}).Result; }).Result;

@ -130,7 +130,6 @@ namespace MediaBrowser.Controller.Entities
public string[] TopParentIds { get; set; } public string[] TopParentIds { get; set; }
public LocationType[] LocationTypes { get; set; } public LocationType[] LocationTypes { get; set; }
public LocationType[] ExcludeLocationTypes { get; set; }
public string[] PresetViews { get; set; } public string[] PresetViews { get; set; }
public SourceType[] SourceTypes { get; set; } public SourceType[] SourceTypes { get; set; }
public SourceType[] ExcludeSourceTypes { get; set; } public SourceType[] ExcludeSourceTypes { get; set; }
@ -233,7 +232,6 @@ namespace MediaBrowser.Controller.Entities
ExcludeTags = new string[] { }; ExcludeTags = new string[] { };
ExcludeInheritedTags = new string[] { }; ExcludeInheritedTags = new string[] { };
LocationTypes = new LocationType[] { }; LocationTypes = new LocationType[] { };
ExcludeLocationTypes = new LocationType[] { };
PresetViews = new string[] { }; PresetViews = new string[] { };
SourceTypes = new SourceType[] { }; SourceTypes = new SourceType[] { };
ExcludeSourceTypes = new SourceType[] { }; ExcludeSourceTypes = new SourceType[] { };

@ -647,7 +647,7 @@ namespace MediaBrowser.Controller.Entities
query.SetUser(user); query.SetUser(user);
query.Limit = GetSpecialItemsLimit(); query.Limit = GetSpecialItemsLimit();
query.IncludeItemTypes = new[] { typeof(Episode).Name }; query.IncludeItemTypes = new[] { typeof(Episode).Name };
query.ExcludeLocationTypes = new[] { LocationType.Virtual }; query.IsVirtualItem = false;
return ConvertToResult(_libraryManager.GetItemList(query)); return ConvertToResult(_libraryManager.GetItemList(query));
} }
@ -1199,7 +1199,7 @@ namespace MediaBrowser.Controller.Entities
return false; return false;
} }
if (query.ExcludeLocationTypes.Length > 0 && query.ExcludeLocationTypes.Contains(item.LocationType)) if (query.IsVirtualItem.HasValue && item.IsVirtualItem != query.IsVirtualItem.Value)
{ {
return false; return false;
} }

@ -15,6 +15,11 @@ namespace MediaBrowser.Controller.LiveTv
{ {
public class LiveTvProgram : BaseItem, IHasLookupInfo<LiveTvProgramLookupInfo>, IHasStartDate, IHasProgramAttributes public class LiveTvProgram : BaseItem, IHasLookupInfo<LiveTvProgramLookupInfo>, IHasStartDate, IHasProgramAttributes
{ {
public LiveTvProgram()
{
IsVirtualItem = true;
}
public override List<string> GetUserDataKeys() public override List<string> GetUserDataKeys()
{ {
var list = base.GetUserDataKeys(); var list = base.GetUserDataKeys();

@ -82,10 +82,10 @@ namespace MediaBrowser.Providers.MediaInfo
{ {
MediaTypes = new string[] { MediaType.Video }, MediaTypes = new string[] { MediaType.Video },
IsVirtualItem = false, IsVirtualItem = false,
ExcludeLocationTypes = new LocationType[] { LocationType.Remote, LocationType.Virtual },
IncludeItemTypes = types.ToArray() IncludeItemTypes = types.ToArray()
}).OfType<Video>() }).OfType<Video>()
.Where(i => i.LocationType != LocationType.Remote)
.ToList(); .ToList();
if (videos.Count == 0) if (videos.Count == 0)

@ -227,10 +227,6 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="System.Data.SQLite.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup />
</Project> </Project>

@ -1,3 +0,0 @@
<configuration>
<dllmap dll="sqlite3" target="libsqlite3.so" os="linux"/>
</configuration>

@ -601,6 +601,12 @@ namespace MediaBrowser.ServerApplication
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
private static bool PerformUpdateIfNeeded(ServerApplicationPaths appPaths, ILogger logger) private static bool PerformUpdateIfNeeded(ServerApplicationPaths appPaths, ILogger logger)
{ {
// Not supported
if (IsRunningAsService)
{
return false;
}
// Look for the existence of an update archive // Look for the existence of an update archive
var updateArchive = Path.Combine(appPaths.TempUpdatePath, "MBServer" + ".zip"); var updateArchive = Path.Combine(appPaths.TempUpdatePath, "MBServer" + ".zip");
if (File.Exists(updateArchive)) if (File.Exists(updateArchive))

Loading…
Cancel
Save