mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2026-10-27 01:16:07 +03:00
29 lines
1.4 KiB
C#
29 lines
1.4 KiB
C#
using System.Net.Mime;
|
|
using System.Reflection;
|
|
using System.Threading.Tasks;
|
|
using System.Web;
|
|
using DHT.Server.Database;
|
|
using DHT.Server.Service;
|
|
using DHT.Utils.Http;
|
|
using DHT.Utils.Resources;
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
namespace DHT.Server.Endpoints;
|
|
|
|
sealed class GetTrackingScriptEndpoint(IDatabaseFile db, ServerParameters parameters) : BaseEndpoint(db) {
|
|
private static ResourceLoader Resources { get; } = new (Assembly.GetExecutingAssembly());
|
|
|
|
protected override async Task Respond(HttpRequest request, HttpResponse response) {
|
|
string bootstrap = await Resources.ReadTextAsync("Tracker/bootstrap.js");
|
|
string script = bootstrap.Replace("= 0; /*[PORT]*/", "= " + parameters.Port + ";")
|
|
.Replace("/*[TOKEN]*/", HttpUtility.JavaScriptStringEncode(parameters.Token))
|
|
.Replace("/*[IMPORTS]*/", await Resources.ReadJoinedAsync("Tracker/scripts/", '\n'))
|
|
.Replace("/*[CSS-CONTROLLER]*/", await Resources.ReadTextAsync("Tracker/styles/controller.css"))
|
|
.Replace("/*[CSS-SETTINGS]*/", await Resources.ReadTextAsync("Tracker/styles/settings.css"))
|
|
.Replace("/*[DEBUGGER]*/", request.Query.ContainsKey("debug") ? "debugger;" : "");
|
|
|
|
response.Headers.Append("X-DHT", "1");
|
|
await response.WriteTextAsync(MediaTypeNames.Text.JavaScript, script);
|
|
}
|
|
}
|