Further refactor & cleanup
parent
32f191f7e3
commit
4b6d8084ca
|
@ -11,6 +11,7 @@ namespace RTMPDash.Backend;
|
|||
public static class Migrations {
|
||||
private const int DbVer = 2;
|
||||
|
||||
// ReSharper disable once InconsistentNaming
|
||||
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 PrivateAccessKey TEXT"),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace RTMPDash.Backend;
|
||||
|
@ -22,7 +22,7 @@ public static class StreamUtils {
|
|||
var dbUser = db.Users.First(p => p.Username == user);
|
||||
return dbUser.RestreamTargets.Split(",")
|
||||
.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) {
|
||||
|
@ -30,13 +30,13 @@ public static class StreamUtils {
|
|||
var dbUser = db.Users.First(p => p.Username == user);
|
||||
return dbUser.RestreamTargets.Split(",")
|
||||
.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 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@page
|
||||
@inject IAntiforgery _antiforgery
|
||||
@inject IAntiforgery Antiforgery
|
||||
@using Microsoft.AspNetCore.Antiforgery
|
||||
@using Microsoft.AspNetCore.Http
|
||||
@using RTMPDash.Backend
|
||||
|
@ -7,7 +7,7 @@
|
|||
@model DashboardModel
|
||||
@{
|
||||
ViewData["Title"] = "Dashboard";
|
||||
var tokenSet = _antiforgery.GetAndStoreTokens(HttpContext);
|
||||
var tokenSet = Antiforgery.GetAndStoreTokens(HttpContext);
|
||||
}
|
||||
|
||||
@if (string.IsNullOrWhiteSpace(HttpContext.Session.GetString("authenticatedUser"))) {
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
<meta charset="utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>@ViewData["Title"] - @Program.SiteName</title>
|
||||
<link rel="stylesheet" href="~/css/dark-mode.css"/>
|
||||
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="~/css/site.css"/>
|
||||
<link rel="stylesheet" href="/css/dark-mode.css"/>
|
||||
<link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="/css/site.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
|
@ -83,11 +83,11 @@
|
|||
darkSwitch.offsetHeight;
|
||||
label.classList.remove('notransition');
|
||||
</script>
|
||||
<script src="~/lib/jquery/dist/jquery.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/site.js"></script>
|
||||
<script src="/lib/jquery/dist/jquery.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/site.js"></script>
|
||||
|
||||
@await RenderSectionAsync("Scripts", false)
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
<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/dist/jquery.validate.min.js"></script>
|
||||
<script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
|
||||
|
|
Loading…
Reference in New Issue