Update all radios in _top.zmpl

This commit is contained in:
Samuel Webb 2024-04-08 22:58:30 -04:00
parent ee855dde18
commit 894e562400
3 changed files with 12 additions and 17 deletions

Binary file not shown.

54
src/app/lib/db.zig Normal file
View file

@ -0,0 +1,54 @@
const std = @import("std");
const sql = @import("sqlite");
pub fn loadDb(path: []u8) !sql.sqlite.Db{
try sql.sqlite.Db.init(.{
.mode = sql.sqlite.Db.Mode{ .File = path},
.open_flags = .{
.write = true,
.create = true,
},
.threading_mode = .MultiThread,
});
}
const addArtist = \\INSERT INTO artists ('artist', 'plays', 'url') VALUES (?,?)
;
const addTrack = \\INSERT INTO tracks ('artist', 'track', 'album', 'plays', 'url') VALUES (?,?,?,?)
;
const getArtist = \\SELECT artist, plays FROM artists WHERE artist == ?
;
const getTrack = \\SELECT artist, track, album, plays FROM tracks WHERE track == ?
;
const getTrackSearch = \\SELECT url FROM artists WHERE artist == ?
;
const getArtistSearch = \\SELECT artist, plays FROM artists WHERE artist == ?
;
pub var db = loadDb("/home/swebb/Source/zuletzt/src/app/database/data.db");
pub fn search(query: []const u8) !void{
var artistSearch = try db.prepare(getArtistSearch);
defer artistSearch.deinit();
var trackSearch = try db.prepare(getTrackSearch);
defer trackSearch.deinit();
const artistResults = try artistSearch.one(
struct {
artist: [128:0]u8,
plays: usize,
},
.{},
.{ .artist = query},
);
if (artistResults) |r|{
std.log.debug("Artist: {}, Plays: {}", .{r.name, r.plays});
}
}

View file

@ -1,31 +1,26 @@
@html {
<style>
#myHeader { background-color: lightblue; color: black; padding: 40px; text-align: center;}
</style>
}
<div>
<fieldset>
Top:
<input type="radio" label="Artist" name="q" value="artist" hx-get="/stats" hx-target="#update" hx-include="[name='t']" hx-swap="outerHTML" hx-trigger="click" checked>Artist</input>
<input type="radio" label="Album" name="q" value="album">Album</input>
<input type="radio" label="Track" name="q" value="track">Track</input>
<input type="radio" label="Album" name="q" value="album" hx-get="/stats" hx-target="#update" hx-include="[name='t']" hx-swap="outerHTML" hx-trigger="click">Album</input>
<input type="radio" label="Track" name="q" value="track" hx-get="/stats" hx-target="#update" hx-include="[name='t']" hx-swap="outerHTML" hx-trigger="click">Track</input>
</fieldset>
<fieldset>
of:
<input type="radio" label="Day" name="t" value="day" checked>Day</input>
<input type="radio" label="Week" name="t" value="week">Week</input>
<input type="radio" label="Month" name="t" value="month">Month</input>
<input type="radio" label="3 Months" name="t" value="quarter">3 Months</input>
<input type="radio" label="6 Months" name="t" value="half">6 Months</input>
<input type="radio" label="Current Year" name="t" value="begin">Current Year</input>
<input type="radio" label="365 Days" name="t" value="year">365 days</input>
<input type="radio" label="All Time" name="t" value="all">All Time</input>
<input type="radio" label="Day" name="t" value="day" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click" checked>Day</input>
<input type="radio" label="Week" name="t" value="week" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">Week</input>
<input type="radio" label="Month" name="t" value="month" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">Month</input>
<input type="radio" label="3 Months" name="t" value="quarter" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">3 Months</input>
<input type="radio" label="6 Months" name="t" value="half" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">6 Months</input>
<input type="radio" label="Current Year" name="t" value="begin" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">Current Year</input>
<input type="radio" label="365 Days" name="t" value="year" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">365 days</input>
<input type="radio" label="All Time" name="t" value="all" hx-get="/stats" hx-target="#update" hx-include="[name='q']" hx-swap="outerHTML" hx-trigger="click">All Time</input>
</fieldset>
<tr>
<td colspan="3">
<b id="myHeader">hyello</b>
<b id="update">hyello</b>
</td>
</tr>
</div>