From fa4c3a6eff270ff4431e35808208221a065a3068 Mon Sep 17 00:00:00 2001 From: Samuel Webb Date: Thu, 11 Apr 2024 17:22:24 -0400 Subject: [PATCH] Implement album and track searching --- .gitignore | 3 ++- src/app/database/data.db | Bin 8192 -> 16384 bytes src/app/lib/db.zig | 11 ++++++++--- src/app/views/search.zig | 6 ++++-- src/app/views/search/index.zmpl | 10 ++++------ 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 7932178..9f6d7b4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ zig-out/ zig-cache/ *.core static/ -.jetzig \ No newline at end of file +.jetzig +src/app/database/data.db-journal \ No newline at end of file diff --git a/src/app/database/data.db b/src/app/database/data.db index 9eabb42cf6881a7cf42bb7f3a78b6c44ae6ceb12..fa37ab7169d9ab40592d86dcc9c906a28a52db95 100644 GIT binary patch literal 16384 zcmeI%&rTCT7y$6uEkoN7I^tL>HVwl+E3CTPEs}6B2&5Vm1Zf35nFU5zU3Tm4R>d3d zVB!mSF!4g7kKh9sV|)fZn0W93{C3;Qp97eXc=3aD_xrwCW@dk!zG?ODoE=K>$n&?X zP?X6jqA29L5QLCX_;kRh{gZ@Xf3CC#j<}DKD~~^QGn*tbyCk#A-m;z}p2i^*Kmim$ z0Te(16hHwKKmim$0TgHnJXDgod|uhfhSsVhEkCq_FlgP>nWf59ts-hu({mNkDvFE6 zx?^nz#Y>{tEI~BT@STBlt#ZExan$<`q-XEcDmN=jBg=_ouD4g&Nj4X7RvTM^6<<3J zP9N7`_INOw{m(Kmd9=pCd13#PC-^TetNXVV`qtW$pm|Lk*jBR!+lqtZx7E!qlTOw} z*emGG%WRo-u`ldh=FQ*#p5UeMPf-8`Pyhu`00mG01yBG5Pyhu`;NJ^~vs4`}rj%c| zZFfV=`1V%dxq6gnt%TJ{Cn5c3D2M0DhEdy;QY>tWs+55qCECKK7A5DhR4w$S5@O-G zBWCPyTZcf40``Lp9rtRdd#IZ0O{G7s*v^`#$JbF#RlSr-e1m1g%4YPPeKqv$dUIhd zu4t`FE=PI3kQy_Ls_S`m>FcdKEX)rr-p!^-l3gI|0{h9nvJdPvd&(9MJ%lL=pa2S> z01BW03ZMWApa2S>01EsU0_PQ4;C)Ipw0uVffoT|eJ5~W8vxm@^q=S4=neiGMa4xXz zH|nM_9%ovdsY9K#$VZgwGxh1L>H?m_F~V%OKR| zy+$Ba(E)1=D^+`|?!YmC=WdurS#PFVl&a?vG|vl4bXHJt*G@$1MUa)(6Z-WsEpa2S>01BW03ZMWApa2S>01Eu)0!*Qt zXVXh^y#%KLa08F7mPvmn9p=S!)P6(9?uM4_mY~Itdhm8WLFqL^VgXx7eX}O}ZE#cv^9%ovVWfQcQ=hG`vzLb6m UTK{I0Rpat(;J`#BX#ShgZ+qh$&Hw-a delta 229 zcmZo@U~F)hAT6lOz`(!+#4x}#QOB5HnL#h>0xwXAk$(dN|Ax(q1`_-eCuni_F|vtE zOEZ>E-pS`KstHoS#_!L>|CYai{|x_Tet-VilNAJ%CL0LwY<3bj$v1I=i@LlR3zMok z;}`GDymSTUqRial{5*XSM;pq~6lP)4H=Mj)Ue!`WoP|+ZHYGSOKffTgNFPcwFo=t? yFv-d@EBKe^C^%=9RO$m6+8~C!2*_}T6O(P_C4~hAS(wBnIgf;A<|OCqgGm4uIXEr= diff --git a/src/app/lib/db.zig b/src/app/lib/db.zig index 90f8e8a..dd6f7bf 100644 --- a/src/app/lib/db.zig +++ b/src/app/lib/db.zig @@ -10,8 +10,13 @@ pub const getArtist = \\SELECT artist, plays FROM artists WHERE artist == ? pub const getTrack = \\SELECT artist, track, album, plays FROM tracks WHERE track == ? ; -pub const getTrackSearch = \\SELECT url FROM artists WHERE artist == ? +pub const getTrackSearch = \\SELECT track, url, form FROM tracks WHERE track LIKE '%' || ? || '%' ; -pub const getArtistSearch = \\SELECT artist, url FROM artists WHERE artist LIKE '%' || ? || '%' -; \ No newline at end of file +pub const getArtistSearch = \\SELECT artist, url, form FROM artists WHERE artist LIKE '%' || ? || '%' +; + +pub const getAlbumSearch = \\SELECT album, url, form FROM albums WHERE album LIKE '%' || ? || '%' +; + +pub const total_search = getArtistSearch ++ " UNION " ++ getAlbumSearch ++ " UNION " ++ getTrackSearch; \ No newline at end of file diff --git a/src/app/views/search.zig b/src/app/views/search.zig index 5d9a5c6..46d1592 100644 --- a/src/app/views/search.zig +++ b/src/app/views/search.zig @@ -21,23 +21,25 @@ pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { const queryOrNull: ?[]const u8 = if (params.get("q")) |param| param.string.value else null; if (queryOrNull) |query| { // sql.search(query, db); - var artistSearch = try db.prepare(queries.getArtistSearch); + var artistSearch = try db.prepare(queries.total_search); defer artistSearch.deinit(); const artistResults = try artistSearch.all( struct { artist: []u8, url: []u8, + form: []u8, }, arena.allocator(), .{}, - .{ .artist = query }, + .{ .artist = query, .album = query, .track = query }, ); for (artistResults) |r| { std.log.debug("artist: {s}, url: {s}", .{ r.artist, r.url }); try root.append(data.string(r.artist)); try root.append(data.string(r.url)); + try root.append(data.string(r.form)); //std.log.debug("{s}", .{r}); } } else { diff --git a/src/app/views/search/index.zmpl b/src/app/views/search/index.zmpl index 67ad7ea..4101944 100644 --- a/src/app/views/search/index.zmpl +++ b/src/app/views/search/index.zmpl @@ -4,15 +4,13 @@ Album Track - @zig ZIG + @zig { for (zmpl.items(.array), 0..) |u,i| { - if(@mod(i,2)==0){ + if(@mod(i,3)==0){ - {{u}} - {{i}} - + {{u}} } } - ZIG + } \ No newline at end of file