Implement album and track searching
This commit is contained in:
parent
8f34815904
commit
fa4c3a6eff
5 changed files with 18 additions and 12 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -3,3 +3,4 @@ zig-cache/
|
||||||
*.core
|
*.core
|
||||||
static/
|
static/
|
||||||
.jetzig
|
.jetzig
|
||||||
|
src/app/database/data.db-journal
|
||||||
Binary file not shown.
|
|
@ -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 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 '%' || ? || '%'
|
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;
|
||||||
|
|
@ -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;
|
const queryOrNull: ?[]const u8 = if (params.get("q")) |param| param.string.value else null;
|
||||||
if (queryOrNull) |query| {
|
if (queryOrNull) |query| {
|
||||||
// sql.search(query, db);
|
// sql.search(query, db);
|
||||||
var artistSearch = try db.prepare(queries.getArtistSearch);
|
var artistSearch = try db.prepare(queries.total_search);
|
||||||
defer artistSearch.deinit();
|
defer artistSearch.deinit();
|
||||||
|
|
||||||
const artistResults = try artistSearch.all(
|
const artistResults = try artistSearch.all(
|
||||||
struct {
|
struct {
|
||||||
artist: []u8,
|
artist: []u8,
|
||||||
url: []u8,
|
url: []u8,
|
||||||
|
form: []u8,
|
||||||
},
|
},
|
||||||
arena.allocator(),
|
arena.allocator(),
|
||||||
.{},
|
.{},
|
||||||
.{ .artist = query },
|
.{ .artist = query, .album = query, .track = query },
|
||||||
);
|
);
|
||||||
|
|
||||||
for (artistResults) |r| {
|
for (artistResults) |r| {
|
||||||
std.log.debug("artist: {s}, url: {s}", .{ r.artist, r.url });
|
std.log.debug("artist: {s}, url: {s}", .{ r.artist, r.url });
|
||||||
try root.append(data.string(r.artist));
|
try root.append(data.string(r.artist));
|
||||||
try root.append(data.string(r.url));
|
try root.append(data.string(r.url));
|
||||||
|
try root.append(data.string(r.form));
|
||||||
//std.log.debug("{s}", .{r});
|
//std.log.debug("{s}", .{r});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,13 @@
|
||||||
<th>Album</th>
|
<th>Album</th>
|
||||||
<th>Track</th>
|
<th>Track</th>
|
||||||
</tr>
|
</tr>
|
||||||
@zig ZIG
|
@zig {
|
||||||
for (zmpl.items(.array), 0..) |u,i| {
|
for (zmpl.items(.array), 0..) |u,i| {
|
||||||
if(@mod(i,2)==0){
|
if(@mod(i,3)==0){
|
||||||
<tr>
|
<tr>
|
||||||
<td id="artistUpdate"><a href={{zmpl.items(.array)[i+1].string.value}}>{{u}}</a></td>
|
<td id={{zmpl.items(.array)[i+2].string.value}}><a href={{zmpl.items(.array)[i+1].string.value}}>{{u}}</a></td>
|
||||||
<td id="albumUpdate">{{i}}</td>
|
|
||||||
<td id="trackUpdate"></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ZIG
|
}
|
||||||
</table>
|
</table>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue