First commit

This commit is contained in:
2026-03-15 22:15:34 -05:00
commit 0858a8a751
79 changed files with 6010 additions and 0 deletions
@@ -0,0 +1,21 @@
<form hx-post="/music/fix-song" hx-target="body">
<input type="hidden" name="albumId" value="{{albumid}}">
<input type="hidden" name="songId" value="{{songid}}">
<div class="row">
<div class="max">
<div class="field label border">
<input type="text" name="url" id='url'>
<label>Video Url</label>
</div>
</div>
<div class="min">
{{if !string.empty(searchurl) }}
<button hx-get="{{searchurl}}" hx-swap="innerHTML" hx-target="#search-dialog-results" type="button" hx-on::after-request="ui('#search-dialog')">Browse</button>
{{end}}
</div>
</div>
<nav>
<button>OK</button>
<button hx-get="{{cancelurl}}" hx-target="body">Cancel</button>
</nav>
</form>
@@ -0,0 +1,21 @@
{{for result in results}}
<div class="row">
<div class="min">
<img src="{{result.imgurl}}" alt="video thumbnail">
</div>
<div class="max">
<a hx-on:click="{{result.dialogok}}">{{result.title}}</a>
</div>
</div>
{{end}}
<div class="row" id="more-pane" hx-get="{{moreurl}}" hx-target="#more-pane" hx-swap="outerHTML">
<div class="max">
</div>
<div class="min">
<button hx-get="{{moreurl}}" hx-target="#more-pane" hx-swap="outerHTML">More</button>
</div>
<div class="max">
</div>
</div>
+22
View File
@@ -0,0 +1,22 @@
{{for result in results}}
<div class="row">
<div class="min">
<img src="{{result.imgurl}}" alt="video thumbnail">
</div>
<div class="max">
<a hx-target="body" hx-push-url="true" hx-get="{{result.url}}" href="{{result.url}}">{{result.title}}</a>
</div>
<div class="min">
<div>
<button class="circle transparent">
<i>more_vert</i>
</button>
<menu class="left no-wrap">
<li hx-post="/search_button" hx-vals="{{result.addbtnjson}}" hx-swap="outerHTML">Add</li>
</menu>
</div>
</div>
</div>
{{end}}
<div hx-trigger="revealed" id="more-pane" hx-get="{{moreurl}}" hx-target="#more-pane" hx-swap="outerHTML"></div>
+78
View File
@@ -0,0 +1,78 @@
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TYTD Companion - {{title}}</title>
<link rel="stylesheet" href="/beer.min.css">
<link rel="stylesheet" href="/theme.css">
<script src="/htmx.min.js" defer></script>
<script type="module" src="/beer.min.js" defer></script>
</head>
<body hx-indicator="#loading-indicator">
<dialog class="left" id="leftpane">
<header>
<nav>
<img class="circle large" src="/tytd-128.png">
<h6 class="max">TYTD Companion</h6>
<button hx-on:click="ui('#leftpane')" class="transparent circle large">
<i>close</i>
</button>
</nav>
</header>
<div class="space"></div>
<ul class="list">
{{for item in pages}}
<li class="wave round" hx-target="body" hx-push-url="true" hx-get="{{item.url}}">
<i>{{item.icon}}</i>
<span class="max">{{item.title}}</span>
<b>{{item.badge}}</b>
</li>
{{end}}
</ul>
</dialog>
<header class="fixed primary-container">
<nav>
<button hx-on:click="ui('#leftpane')" class="circle transparent">
<i>menu</i>
</button>
<div class="max"></div>
<div>
<button class="circle transparent">
<i>more_vert</i>
</button>
<menu class="left no-wrap">
<li hx-target="body" hx-push-url="true" hx-get="/settings">Settings</li>
<li hx-target="body" hx-push-url="true" hx-get="/log">Log</li>
</menu>
</div>
</nav>
<div class="small-padding">
<h5>TYTD Companion</h5>
</div>
</header>
<main class="responsive">
{{body}}
</main>
<div class="htmx-indicator shape loading-indicator extra" id="loading-indicator">
<img class="responsive" src="/tytd.svg">
</div>
<div class="overlay blur"></div>
<dialog style="width: 80vw;" id="search-dialog">
<h5>Search</h5>
<div id="search-dialog-results">
</div>
<nav class="right-align no-space">
<button hx-on:click="ui('#search-dialog')" class="transparent link">Cancel</button>
</nav>
</dialog>
<script>
function searchDialogSubmit(id)
{
document.getElementById('url').value = `https://www.youtube.com/watch?v=${id}`;
ui('#search-dialog');
}
</script>
</body>
</html>