mirror of
https://codeberg.org/ashley/poke
synced 2025-04-05 00:57:59 +00:00
140 lines
4.9 KiB
Plaintext
140 lines
4.9 KiB
Plaintext
@using System.Web
|
|
@using LightTube.Contexts
|
|
@model LightTube.Contexts.BaseContext
|
|
@{
|
|
bool compatibility = false;
|
|
if (Context.Request.Cookies.TryGetValue("compatibility", out string compatibilityString))
|
|
bool.TryParse(compatibilityString, out compatibility);
|
|
|
|
bool minMode = false;
|
|
if (Context.Request.Cookies.TryGetValue("minMode", out string minModeString))
|
|
bool.TryParse(minModeString, out minMode);
|
|
}
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<meta property="og:site_name" content="lighttube" />
|
|
<meta property="og:type" content="website" />
|
|
@if (ViewBag.Metadata is not null)
|
|
{
|
|
@foreach (KeyValuePair<string, string> metaTag in ViewBag.Metadata)
|
|
{
|
|
if (metaTag.Key.StartsWith("og:"))
|
|
{
|
|
<meta property="@metaTag.Key" content="@metaTag.Value"/>
|
|
}
|
|
else
|
|
{
|
|
<meta name="@metaTag.Key" content="@metaTag.Value"/>
|
|
}
|
|
}
|
|
}
|
|
<meta property="theme-color" content="#AA0000" />
|
|
<title>@ViewData["Title"] - lighttube</title>
|
|
@if ((ViewData["HideGuide"] ?? false).Equals(true))
|
|
{
|
|
<style> .guide { display: none !important; } </style>
|
|
}
|
|
@{
|
|
Context.Request.Cookies.TryGetValue("theme", out string theme);
|
|
if (!new[] { "light", "dark" }.Contains(theme)) theme = "light";
|
|
}
|
|
<link rel="stylesheet" href="@($"~/css/colors-{theme}.css")" asp-append-version="true"/>
|
|
@if (Model.MobileLayout)
|
|
{
|
|
<link rel="stylesheet" href="~/css/mobile.css" asp-append-version="true"/>
|
|
<link rel="stylesheet" href="~/css/lt-video/player-mobile.css" asp-append-version="true"/>
|
|
}
|
|
else
|
|
{
|
|
<link rel="stylesheet" href="~/css/desktop.css" asp-append-version="true"/>
|
|
<link rel="stylesheet" href="~/css/lt-video/player-desktop.css" asp-append-version="true"/>
|
|
}
|
|
<link rel="stylesheet" href="~/css/bootstrap-icons/bootstrap-icons.css" asp-append-version="true"/>
|
|
<link rel="icon" href="~/favicon.ico">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="top-bar @(ViewData["UseFullSizeSearchBar"]?.Equals(true) ?? false ? "full-size-search" : "")">
|
|
<a class="logo" href="/">light<b>tube</b></a>
|
|
<div class="divider"></div>
|
|
<form action="/results">
|
|
<input type="text" placeholder="Search" name="search_query" value="@(Model is SearchContext ctx ? ctx.Query : Context.Request.Cookies.TryGetValue("search_query", out string s) ? s : "")">
|
|
<input type="submit" value="Search">
|
|
</form>
|
|
<div class="divider"></div>
|
|
<div class="search-button">
|
|
<a class="icon-link" href="/results">
|
|
<i class="bi bi-search"></i>
|
|
</a>
|
|
</div>
|
|
<div class="account" tabindex="-1">
|
|
<a class="icon-link" href="/Account">
|
|
<i class="bi bi-person-circle"></i>
|
|
</a>
|
|
<div class="account-menu">
|
|
@Html.Partial("_LoginLogoutPartial")
|
|
<div class="guide-item"><a href="/toggles/theme?redirectUrl=@(HttpUtility.UrlEncode($"{Context.Request.Path}{Context.Request.QueryString}"))">Toggle Theme</a></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="guide @(minMode ? "minmode" : "")">
|
|
<div class="guide-item @(ViewData["SelectedGuideItem"] as string == "home" ? "active" : "")">
|
|
<a href="/">
|
|
<i class="icon bi bi-house-door"></i>
|
|
Home
|
|
</a>
|
|
</div>
|
|
<div class="guide-item @(ViewData["SelectedGuideItem"] as string == "explore" ? "active" : "")">
|
|
<a href="/feed/explore">
|
|
<i class="icon bi bi-compass"></i>
|
|
Explore
|
|
</a>
|
|
</div>
|
|
<div class="guide-item @(ViewData["SelectedGuideItem"] as string == "subs" ? "active" : "")">
|
|
<a href="/feed/subscriptions">
|
|
<i class="icon bi bi-inboxes"></i>
|
|
Subscriptions
|
|
</a>
|
|
</div>
|
|
<div class="guide-item @(ViewData["SelectedGuideItem"] as string == "library" ? "active" : "")">
|
|
<a href="/feed/library">
|
|
<i class="icon bi bi-list-ul"></i>
|
|
Library
|
|
</a>
|
|
</div>
|
|
<div class="hide-on-minmode guide-item">
|
|
<a href="/toggles/collapse_guide?redirectUrl=@(HttpUtility.UrlEncode($"{Context.Request.Path}{Context.Request.QueryString}"))">
|
|
<i class="icon"><i class="bi bi-arrow-left-square"></i></i>
|
|
Collapse Guide
|
|
</a>
|
|
</div>
|
|
<div class="show-on-minmode guide-item">
|
|
<a href="/toggles/collapse_guide?redirectUrl=@(HttpUtility.UrlEncode($"{Context.Request.Path}{Context.Request.QueryString}"))">
|
|
<i class="icon"><i class="bi bi-arrow-right-square"></i></i>
|
|
Expand
|
|
</a>
|
|
</div>
|
|
<hr class="hide-on-minmode">
|
|
<p class="hide-on-minmode">
|
|
<a href="https://gitlab.com/kuylar/lighttube/-/blob/master/README.md">About</a><br>
|
|
<a href="https://gitlab.com/kuylar/lighttube/-/blob/master/OTHERLIBS.md">How LightTube works</a><br>
|
|
<a href="https://gitlab.com/kuylar/lighttube">Source code</a>
|
|
<a href="https://gitlab.com/kuylar/lighttube/-/wikis/XML-API">API</a>
|
|
<a href="https://gitlab.com/kuylar/lighttube/-/blob/master/LICENSE">License</a><br>
|
|
<span style="font-weight: normal">Running on LightTube v@(Utils.GetVersion())</span>
|
|
</p>
|
|
</div>
|
|
|
|
<div class="app">
|
|
@RenderBody()
|
|
</div>
|
|
|
|
<script src="~/js/site.js" asp-append-version="true"></script>
|
|
@await RenderSectionAsync("Scripts", required: false)
|
|
</body>
|
|
</html>
|