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 9eabb42..fa37ab7 100644 Binary files a/src/app/database/data.db and b/src/app/database/data.db differ 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