Further refactor & cleanup
This commit is contained in:
parent
32f191f7e3
commit
4b6d8084ca
|
@ -11,6 +11,7 @@ namespace RTMPDash.Backend;
|
||||||
public static class Migrations {
|
public static class Migrations {
|
||||||
private const int DbVer = 2;
|
private const int DbVer = 2;
|
||||||
|
|
||||||
|
// ReSharper disable once InconsistentNaming
|
||||||
private static readonly List<Migration> _migrations = new() {
|
private static readonly List<Migration> _migrations = new() {
|
||||||
new Migration(1, "ALTER TABLE Users ADD IsPrivate INTEGER DEFAULT 0 NOT NULL"),
|
new Migration(1, "ALTER TABLE Users ADD IsPrivate INTEGER DEFAULT 0 NOT NULL"),
|
||||||
new Migration(1, "ALTER TABLE Users ADD PrivateAccessKey TEXT"),
|
new Migration(1, "ALTER TABLE Users ADD PrivateAccessKey TEXT"),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net.Http;
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
namespace RTMPDash.Backend;
|
namespace RTMPDash.Backend;
|
||||||
|
@ -22,7 +22,7 @@ public static class StreamUtils {
|
||||||
var dbUser = db.Users.First(p => p.Username == user);
|
var dbUser = db.Users.First(p => p.Username == user);
|
||||||
return dbUser.RestreamTargets.Split(",")
|
return dbUser.RestreamTargets.Split(",")
|
||||||
.Count(target => stats.Server.Applications.First(p => p.Name == "ingress")
|
.Count(target => stats.Server.Applications.First(p => p.Name == "ingress")
|
||||||
.MethodLive.Streams.Any(p => p.Name == user && p.Clients.Any(c => c.Address == target.Replace("rtmp://", ""))));
|
.MethodLive.Streams.Any(p => p.Name == user && p.Clients.Any(c => c.Address == target.Replace("rtmp://", ""))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int CountLiveRestreams(string user, string privateAccesskey, StatsObject stats) {
|
public static int CountLiveRestreams(string user, string privateAccesskey, StatsObject stats) {
|
||||||
|
@ -30,13 +30,13 @@ public static class StreamUtils {
|
||||||
var dbUser = db.Users.First(p => p.Username == user);
|
var dbUser = db.Users.First(p => p.Username == user);
|
||||||
return dbUser.RestreamTargets.Split(",")
|
return dbUser.RestreamTargets.Split(",")
|
||||||
.Count(target => stats.Server.Applications.First(p => p.Name == "ingress")
|
.Count(target => stats.Server.Applications.First(p => p.Name == "ingress")
|
||||||
.MethodLive.Streams.Any(p => p.Name == privateAccesskey && p.Clients.Any(c => c.Address == target.Replace("rtmp://", ""))));
|
.MethodLive.Streams.Any(p => p.Name == privateAccesskey && p.Clients.Any(c => c.Address == target.Replace("rtmp://", ""))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<string> ListLiveUsers() => GetStatsObject().Server.Applications.First(p => p.Name == "ingress").MethodLive.Streams.Select(p => p.Name).ToList();
|
public static List<string> ListLiveUsers() => GetStatsObject().Server.Applications.First(p => p.Name == "ingress").MethodLive.Streams.Select(p => p.Name).ToList();
|
||||||
|
|
||||||
public static StatsObject GetStatsObject() {
|
public static StatsObject GetStatsObject() {
|
||||||
var obj = (StatsObject)Serializer.Deserialize(new WebClient().OpenRead(Program.RtmpStatsUrl)!);
|
var obj = (StatsObject)Serializer.Deserialize(new HttpClient().GetStreamAsync(Program.RtmpStatsUrl).Result);
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
@page
|
@page
|
||||||
@inject IAntiforgery _antiforgery
|
@inject IAntiforgery Antiforgery
|
||||||
@using Microsoft.AspNetCore.Antiforgery
|
@using Microsoft.AspNetCore.Antiforgery
|
||||||
@using Microsoft.AspNetCore.Http
|
@using Microsoft.AspNetCore.Http
|
||||||
@using RTMPDash.Backend
|
@using RTMPDash.Backend
|
||||||
|
@ -7,7 +7,7 @@
|
||||||
@model DashboardModel
|
@model DashboardModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Dashboard";
|
ViewData["Title"] = "Dashboard";
|
||||||
var tokenSet = _antiforgery.GetAndStoreTokens(HttpContext);
|
var tokenSet = Antiforgery.GetAndStoreTokens(HttpContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@if (string.IsNullOrWhiteSpace(HttpContext.Session.GetString("authenticatedUser"))) {
|
@if (string.IsNullOrWhiteSpace(HttpContext.Session.GetString("authenticatedUser"))) {
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
<title>@ViewData["Title"] - @Program.SiteName</title>
|
<title>@ViewData["Title"] - @Program.SiteName</title>
|
||||||
<link rel="stylesheet" href="~/css/dark-mode.css"/>
|
<link rel="stylesheet" href="/css/dark-mode.css"/>
|
||||||
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css"/>
|
<link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css"/>
|
||||||
<link rel="stylesheet" href="~/css/site.css"/>
|
<link rel="stylesheet" href="/css/site.css"/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
|
@ -83,11 +83,11 @@
|
||||||
darkSwitch.offsetHeight;
|
darkSwitch.offsetHeight;
|
||||||
label.classList.remove('notransition');
|
label.classList.remove('notransition');
|
||||||
</script>
|
</script>
|
||||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
<script src="/lib/jquery/dist/jquery.min.js"></script>
|
||||||
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
<script src="/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
<script src="~/js/dark-mode-switch.js"></script>
|
<script src="/js/dark-mode-switch.js"></script>
|
||||||
<script src="~/js/site.js"></script>
|
<script src="/js/site.js"></script>
|
||||||
|
|
||||||
@await RenderSectionAsync("Scripts", false)
|
@await RenderSectionAsync("Scripts", false)
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
|
<script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script>
|
||||||
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
|
<script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
|
||||||
|
|
Loading…
Reference in a new issue