void.cat/VoidCat/Pages/Index.cshtml
2023-05-22 19:28:46 +01:00

85 lines
2.6 KiB
Plaintext

@using VoidCat.Model
@model VoidCat.Controllers.IndexController.IndexModel
@inject VoidSettings Settings
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="theme-color" content="#000000"/>
<link rel="icon" href="/favicon.ico"/>
<link rel="apple-touch-icon" href="/logo.png"/>
<link rel="manifest" href="/manifest.json"/>
@if (Model.Meta != default)
{
var ubDownload = new UriBuilder(Settings.SiteUrl)
{
Path = $"/d/{Model.Id.ToBase58()}"
};
var ubView = new UriBuilder(Settings.SiteUrl)
{
Path = $"/{Model.Id.ToBase58()}"
};
<title>void.cat - @Model.Meta.Name</title>
<meta name="description" content="@Model.Meta.Description"/>
<meta property="og:site_name" content="void.cat"/>
<meta property="og:title" content="@Model.Meta.Name"/>
<meta property="og:description" content="@Model.Meta.Description"/>
<meta property="og:url" content="@ubView"/>
var mime = Model.Meta.MimeType;
if (!string.IsNullOrEmpty(mime))
{
if (mime.StartsWith("image/"))
{
<meta property="og:type" content="image"/>
<meta property="og:image" content="@ubDownload"/>
<meta property="og:image:type" content="@mime"/>
}
else if (mime.StartsWith("video/"))
{
<meta property="og:type" content="video.other"/>
<meta property="og:image" content=""/>
<meta property="og:video" content="@ubDownload"/>
<meta property="og:video:url" content="@ubDownload"/>
<meta property="og:video:secure_url" content="@ubDownload"/>
<meta property="og:video:type" content="@mime"/>
}
else if (mime.StartsWith("audio/"))
{
<meta property="og:type" content="audio.other"/>
<meta property="og:audio" content="@ubDownload"/>
<meta property="og:audio:type" content="@mime"/>
}
}
}
else
{
<title>void.cat</title>
<meta property="og:type" content="website"/>
<meta name="description" content="void.cat - free, simple file sharing."/>
}
@foreach (var ep in Model.Manifest.Entrypoints)
{
switch (System.IO.Path.GetExtension(ep))
{
case ".css":
{
<link rel="stylesheet" href="@ep"/>
break;
}
case ".js":
{
<script defer src="@ep"></script>
break;
}
}
}
</head>
<body>
<div id="root"></div>
</body>
</html>