mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-06 05:47:14 -04:00
fix recording button
This commit is contained in:
parent
72752fc559
commit
f511cb70ad
@ -118,6 +118,11 @@ namespace MediaBrowser.Controller.LiveTv
|
|||||||
return System.IO.Path.Combine(basePath, "livetv", Id.ToString("N"));
|
return System.IO.Path.Combine(basePath, "livetv", Id.ToString("N"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool CanDelete()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public override bool IsAuthorizedToDelete(User user)
|
public override bool IsAuthorizedToDelete(User user)
|
||||||
{
|
{
|
||||||
return user.Policy.EnableLiveTvManagement;
|
return user.Policy.EnableLiveTvManagement;
|
||||||
|
@ -116,6 +116,11 @@ namespace MediaBrowser.Controller.LiveTv
|
|||||||
return System.IO.Path.Combine(basePath, "livetv", Id.ToString("N"));
|
return System.IO.Path.Combine(basePath, "livetv", Id.ToString("N"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool CanDelete()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public override bool IsAuthorizedToDelete(User user)
|
public override bool IsAuthorizedToDelete(User user)
|
||||||
{
|
{
|
||||||
return user.Policy.EnableLiveTvManagement;
|
return user.Policy.EnableLiveTvManagement;
|
||||||
|
@ -1458,5 +1458,6 @@
|
|||||||
"LabelEmail": "Email:",
|
"LabelEmail": "Email:",
|
||||||
"LabelUsername": "Username:",
|
"LabelUsername": "Username:",
|
||||||
"HeaderSignUp": "Sign Up",
|
"HeaderSignUp": "Sign Up",
|
||||||
"LabelPasswordConfirm": "Password (confirm):"
|
"LabelPasswordConfirm": "Password (confirm):",
|
||||||
|
"ButtonAddServer": "Add Server"
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,6 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
|
|
||||||
private readonly string _postUrl;
|
private readonly string _postUrl;
|
||||||
|
|
||||||
private Timer _pingTimer;
|
|
||||||
private DateTime _lastPingTime;
|
|
||||||
|
|
||||||
public HttpSessionController(IHttpClient httpClient,
|
public HttpSessionController(IHttpClient httpClient,
|
||||||
IJsonSerializer json,
|
IJsonSerializer json,
|
||||||
SessionInfo session,
|
SessionInfo session,
|
||||||
@ -37,10 +34,6 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
Session = session;
|
Session = session;
|
||||||
_postUrl = postUrl;
|
_postUrl = postUrl;
|
||||||
_sessionManager = sessionManager;
|
_sessionManager = sessionManager;
|
||||||
|
|
||||||
_pingTimer = new Timer(PingTimerCallback, null, Timeout.Infinite, Timeout.Infinite);
|
|
||||||
|
|
||||||
ResetPingTimer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnActivity()
|
public void OnActivity()
|
||||||
@ -59,7 +52,7 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return (DateTime.UtcNow - Session.LastActivityDate).TotalMinutes <= 20;
|
return (DateTime.UtcNow - Session.LastActivityDate).TotalMinutes <= 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,54 +61,6 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
get { return true; }
|
get { return true; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void PingTimerCallback(object state)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await SendMessage("Ping", CancellationToken.None).ConfigureAwait(false);
|
|
||||||
|
|
||||||
_lastPingTime = DateTime.UtcNow;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
var lastActivityDate = new[] { _lastPingTime, Session.LastActivityDate }
|
|
||||||
.Max();
|
|
||||||
|
|
||||||
var timeSinceLastPing = DateTime.UtcNow - lastActivityDate;
|
|
||||||
|
|
||||||
// We don't want to stop the session due to one single request failure
|
|
||||||
// At the same time, we don't want the timeout to be too long because it will
|
|
||||||
// be sitting in active sessions available for remote control, when it's not
|
|
||||||
if (timeSinceLastPing >= TimeSpan.FromMinutes(5))
|
|
||||||
{
|
|
||||||
ReportSessionEnded();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ReportSessionEnded()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_sessionManager.ReportSessionEnded(Session.Id);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ResetPingTimer()
|
|
||||||
{
|
|
||||||
if (_pingTimer != null)
|
|
||||||
{
|
|
||||||
_lastPingTime = DateTime.UtcNow;
|
|
||||||
|
|
||||||
var period = TimeSpan.FromSeconds(60);
|
|
||||||
|
|
||||||
_pingTimer.Change(period, period);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Task SendMessage(string name, CancellationToken cancellationToken)
|
private Task SendMessage(string name, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
return SendMessage(name, new Dictionary<string, string>(), cancellationToken);
|
return SendMessage(name, new Dictionary<string, string>(), cancellationToken);
|
||||||
@ -133,8 +78,6 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
CancellationToken = cancellationToken
|
CancellationToken = cancellationToken
|
||||||
|
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
|
|
||||||
ResetPingTimer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task SendSessionEndedNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken)
|
public Task SendSessionEndedNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken)
|
||||||
@ -237,16 +180,6 @@ namespace MediaBrowser.Server.Implementations.Session
|
|||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
DisposePingTimer();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DisposePingTimer()
|
|
||||||
{
|
|
||||||
if (_pingTimer != null)
|
|
||||||
{
|
|
||||||
_pingTimer.Dispose();
|
|
||||||
_pingTimer = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -449,7 +449,6 @@ namespace MediaBrowser.WebDashboard.Api
|
|||||||
|
|
||||||
await AppendResource(memoryStream, "bower_components/webcomponentsjs/webcomponents-lite.min.js", newLineBytes).ConfigureAwait(false);
|
await AppendResource(memoryStream, "bower_components/webcomponentsjs/webcomponents-lite.min.js", newLineBytes).ConfigureAwait(false);
|
||||||
|
|
||||||
// jQuery + jQuery mobile
|
|
||||||
await AppendResource(memoryStream, "thirdparty/jquery-2.1.1.min.js", newLineBytes).ConfigureAwait(false);
|
await AppendResource(memoryStream, "thirdparty/jquery-2.1.1.min.js", newLineBytes).ConfigureAwait(false);
|
||||||
await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.min.js", newLineBytes).ConfigureAwait(false);
|
await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.min.js", newLineBytes).ConfigureAwait(false);
|
||||||
|
|
||||||
@ -657,7 +656,6 @@ namespace MediaBrowser.WebDashboard.Api
|
|||||||
"mediaplayer-video.css",
|
"mediaplayer-video.css",
|
||||||
"librarymenu.css",
|
"librarymenu.css",
|
||||||
"librarybrowser.css",
|
"librarybrowser.css",
|
||||||
"detailtable.css",
|
|
||||||
"card.css",
|
"card.css",
|
||||||
"tileitem.css",
|
"tileitem.css",
|
||||||
"metadataeditor.css",
|
"metadataeditor.css",
|
||||||
|
Loading…
Reference in New Issue
Block a user