mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-22 18:14:42 +01:00
3.2.40.1
This commit is contained in:
@@ -2317,12 +2317,17 @@ namespace Emby.Server.Implementations
|
||||
}
|
||||
}
|
||||
|
||||
public void LaunchUrl(string url)
|
||||
public virtual void LaunchUrl(string url)
|
||||
{
|
||||
if (EnvironmentInfo.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.Windows &&
|
||||
EnvironmentInfo.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.OSX)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
if (!Environment.UserInteractive)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
var process = ProcessFactory.Create(new ProcessOptions
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace Emby.Server.Implementations.Browser
|
||||
{
|
||||
appHost.LaunchUrl(url);
|
||||
}
|
||||
catch (NotImplementedException)
|
||||
catch (NotSupportedException)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using Emby.Server.Implementations.Browser;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Plugins;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
|
||||
namespace Emby.Server.Implementations.EntryPoints
|
||||
{
|
||||
@@ -20,15 +21,13 @@ namespace Emby.Server.Implementations.EntryPoints
|
||||
/// </summary>
|
||||
private readonly ILogger _logger;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StartupWizard" /> class.
|
||||
/// </summary>
|
||||
/// <param name="appHost">The app host.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
public StartupWizard(IServerApplicationHost appHost, ILogger logger)
|
||||
private IServerConfigurationManager _config;
|
||||
|
||||
public StartupWizard(IServerApplicationHost appHost, ILogger logger, IServerConfigurationManager config)
|
||||
{
|
||||
_appHost = appHost;
|
||||
_logger = logger;
|
||||
_config = config;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -38,16 +37,12 @@ namespace Emby.Server.Implementations.EntryPoints
|
||||
{
|
||||
if (_appHost.IsFirstRun)
|
||||
{
|
||||
LaunchStartupWizard();
|
||||
BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
|
||||
}
|
||||
else if (_config.Configuration.IsStartupWizardCompleted)
|
||||
{
|
||||
BrowserLauncher.OpenDashboardPage("index.html", _appHost);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Launches the startup wizard.
|
||||
/// </summary>
|
||||
private void LaunchStartupWizard()
|
||||
{
|
||||
BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -218,7 +218,7 @@ namespace Emby.Server.Implementations.Library
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
public async Task<User> AuthenticateUser(string username, string password, string hashedPassword, string passwordMd5, string remoteEndPoint)
|
||||
public async Task<User> AuthenticateUser(string username, string password, string hashedPassword, string passwordMd5, string remoteEndPoint, bool isUserSession)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(username))
|
||||
{
|
||||
@@ -288,8 +288,11 @@ namespace Emby.Server.Implementations.Library
|
||||
// Update LastActivityDate and LastLoginDate, then save
|
||||
if (success)
|
||||
{
|
||||
user.LastActivityDate = user.LastLoginDate = DateTime.UtcNow;
|
||||
UpdateUser(user);
|
||||
if (isUserSession)
|
||||
{
|
||||
user.LastActivityDate = user.LastLoginDate = DateTime.UtcNow;
|
||||
UpdateUser(user);
|
||||
}
|
||||
UpdateInvalidLoginAttemptCount(user, 0);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -152,6 +152,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||
isRemote = !_networkManager.IsInLocalNetwork(uri.Host);
|
||||
}
|
||||
|
||||
var supportsDirectPlay = !info.EnableStreamLooping && info.TunerCount == 0;
|
||||
|
||||
var mediaSource = new MediaSourceInfo
|
||||
{
|
||||
Path = path,
|
||||
@@ -183,7 +185,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||
IsInfiniteStream = true,
|
||||
IsRemote = isRemote,
|
||||
|
||||
IgnoreDts = true
|
||||
IgnoreDts = true,
|
||||
SupportsDirectPlay = supportsDirectPlay
|
||||
};
|
||||
|
||||
mediaSource.InferTotalBitrate();
|
||||
|
||||
@@ -88,6 +88,9 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||
SetTempFilePath(extension);
|
||||
|
||||
var taskCompletionSource = new TaskCompletionSource<bool>();
|
||||
|
||||
var now = DateTime.UtcNow;
|
||||
|
||||
StartStreaming(response, taskCompletionSource, LiveStreamCancellationTokenSource.Token);
|
||||
|
||||
//OpenedMediaSource.Protocol = MediaProtocol.File;
|
||||
@@ -97,11 +100,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||
OpenedMediaSource.Path = _appHost.GetLocalApiUrl("127.0.0.1") + "/LiveTv/LiveStreamFiles/" + UniqueId + "/stream.ts";
|
||||
OpenedMediaSource.Protocol = MediaProtocol.Http;
|
||||
|
||||
if (OpenedMediaSource.SupportsProbing)
|
||||
{
|
||||
await Task.Delay(3000).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
//OpenedMediaSource.Path = TempFilePath;
|
||||
//OpenedMediaSource.Protocol = MediaProtocol.File;
|
||||
|
||||
@@ -111,6 +109,20 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||
//OpenedMediaSource.SupportsDirectStream = true;
|
||||
//OpenedMediaSource.SupportsTranscoding = true;
|
||||
await taskCompletionSource.Task.ConfigureAwait(false);
|
||||
|
||||
if (OpenedMediaSource.SupportsProbing)
|
||||
{
|
||||
var elapsed = (DateTime.UtcNow - now).TotalMilliseconds;
|
||||
|
||||
var delay = Convert.ToInt32(3000 - elapsed);
|
||||
|
||||
if (delay > 0)
|
||||
{
|
||||
Logger.Info("Delaying shared stream by {0}ms to allow the buffer to build.", delay);
|
||||
|
||||
await Task.Delay(delay).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void CloseInternal()
|
||||
|
||||
@@ -117,6 +117,10 @@ namespace Emby.Server.Implementations.Session
|
||||
{
|
||||
dict["SubtitleStreamIndex"] = command.SubtitleStreamIndex.Value.ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
if (command.StartIndex.HasValue)
|
||||
{
|
||||
dict["StartIndex"] = command.StartIndex.Value.ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(command.MediaSourceId))
|
||||
{
|
||||
dict["MediaSourceId"] = command.MediaSourceId;
|
||||
|
||||
@@ -1423,7 +1423,7 @@ namespace Emby.Server.Implementations.Session
|
||||
|
||||
if (enforcePassword)
|
||||
{
|
||||
var result = await _userManager.AuthenticateUser(request.Username, request.Password, request.PasswordSha1, request.PasswordMd5, request.RemoteEndPoint).ConfigureAwait(false);
|
||||
var result = await _userManager.AuthenticateUser(request.Username, request.Password, request.PasswordSha1, request.PasswordMd5, request.RemoteEndPoint, true).ConfigureAwait(false);
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user