Fix lessThan functions
This commit is contained in:
parent
4779e105d1
commit
4e95f395e2
3 changed files with 5 additions and 52 deletions
|
|
@ -45,7 +45,7 @@ pub const Recording = struct {
|
|||
const bdtyr = std.fmt.parseInt(u32, bdtstr[0..4], 10) catch 0;
|
||||
if (adtyr != bdtyr) {
|
||||
return adtyr < bdtyr;
|
||||
} else if (adtstr.len > 7) {
|
||||
} else if (adtstr.len >= 7) {
|
||||
if (bdtstr.len < 7) return true; // a provides more information
|
||||
const adtmn = std.fmt.parseInt(u32, adtstr[5..7], 10) catch 0;
|
||||
const bdtmn = std.fmt.parseInt(u32, bdtstr[5..7], 10) catch 0;
|
||||
|
|
@ -90,7 +90,7 @@ pub const Release = struct {
|
|||
const bdtyr = std.fmt.parseInt(u32, bdtstr[0..4], 10) catch 0;
|
||||
if (adtyr != bdtyr) {
|
||||
return adtyr < bdtyr;
|
||||
} else if (adtstr.len > 7) {
|
||||
} else if (adtstr.len >= 7) {
|
||||
if (bdtstr.len < 7) return true; // a provides more information
|
||||
const adtmn = std.fmt.parseInt(u32, adtstr[5..7], 10) catch 0;
|
||||
const bdtmn = std.fmt.parseInt(u32, bdtstr[5..7], 10) catch 0;
|
||||
|
|
|
|||
|
|
@ -139,28 +139,6 @@ pub const searchMetadata = struct {
|
|||
an: []const u8,
|
||||
};
|
||||
|
||||
//pub fn percentEncode(alloc: std.mem.Allocator, smd: searchMetadata) !searchMetadata {
|
||||
// var output: searchMetadata = undefined;
|
||||
// inline for (std.meta.fields(searchMetadata)) |k| {
|
||||
// var encoded = std.ArrayList(u8).init(alloc);
|
||||
// errdefer encoded.deinit();
|
||||
// for (@field(smd, k.name)) |v| {
|
||||
// if ((v >= 'A' and v <= 'Z') or (v >= 'a' and v <= 'z') or (v >= '0' and v <= '9') or v == '-' or v == '_' or v == '.' or v == '~') {
|
||||
// try encoded.append(v);
|
||||
// } else if (v == ' ') {
|
||||
// try encoded.append('+');
|
||||
// } else {
|
||||
// const hex = try std.fmt.allocPrint(alloc, "%{x}", .{v});
|
||||
// defer alloc.free(hex);
|
||||
// try encoded.appendSlice(hex);
|
||||
// }
|
||||
// }
|
||||
// @field(output, k.name) = try encoded.toOwnedSlice();
|
||||
// }
|
||||
//
|
||||
// return output;
|
||||
//}
|
||||
|
||||
pub const searchIDs = union {
|
||||
id: []const u8,
|
||||
ids: struct {
|
||||
|
|
@ -169,29 +147,3 @@ pub const searchIDs = union {
|
|||
song_id: ?[]const u8,
|
||||
},
|
||||
};
|
||||
|
||||
//test "pe_jethro_tull" {
|
||||
// const test_alloc = std.testing.allocator;
|
||||
// const jt = searchMetadata{ .tn = "Aqualung ", .rn = "Aqualung", .an = "Jethro Tull" };
|
||||
// const jt_enc = try percentEncode(test_alloc, jt);
|
||||
// defer test_alloc.free(jt_enc);
|
||||
// //defer jt.deinit();
|
||||
// try testing.expect(std.mem.eql(u8, jt_enc.an, "Jethro+Tull"));
|
||||
//}
|
||||
//
|
||||
//test "pe_aphex_twin" {
|
||||
// const test_alloc = std.testing.allocator;
|
||||
// var at = searchMetadata{ .alloc = test_alloc, .tn = .{ .dec = "#3" }, .rn = .{ .dec = "Selected Ambient Works Volume II" }, .an = .{ .dec = "Aphex Twin" } };
|
||||
// try at.percentEncode();
|
||||
// defer at.deinit();
|
||||
// try testing.expect(std.mem.eql(u8, at.tn.enc, "%233"));
|
||||
//}
|
||||
//
|
||||
//test "pe_bon_iver" {
|
||||
// const test_alloc = std.testing.allocator;
|
||||
// var bi = searchMetadata{ .alloc = test_alloc, .tn = .{ .dec = "21 M♢♢N WATER" }, .rn = .{ .dec = "22, a Million" }, .an = .{ .dec = "Bon Iver" } };
|
||||
// try bi.percentEncode();
|
||||
// defer bi.deinit();
|
||||
// try testing.expect(std.mem.eql(u8, bi.tn.enc, "21+M%e2%99%a2%e2%99%a2N+WATER"));
|
||||
//}
|
||||
//
|
||||
|
|
|
|||
|
|
@ -19,19 +19,20 @@ pub fn mbSearch(alloc: std.mem.Allocator, smd: MBQ.searchMetadata) !MBQ.Result {
|
|||
try code.append('+');
|
||||
} else {
|
||||
const hex = try std.fmt.allocPrint(alloc, "%{x}", .{v});
|
||||
defer alloc.free(hex);
|
||||
try code.appendSlice(hex);
|
||||
}
|
||||
}
|
||||
@field(encoded, k.name) = try code.toOwnedSlice();
|
||||
}
|
||||
|
||||
// Might consider making just one of these and passing it around
|
||||
var client = Client{ .allocator = alloc };
|
||||
errdefer client.deinit();
|
||||
|
||||
const query: []const u8 = try std.fmt.allocPrint(alloc, "https://musicbrainz.org/ws/2/recording/?query=\"{s}\"%20AND%20artist:\"{s}\"%20AND%20release:\"{s}\"&fmt=json", .{ encoded.tn, encoded.an, encoded.rn });
|
||||
errdefer alloc.free(query);
|
||||
|
||||
var ar = std.ArrayList(u8).init(alloc);
|
||||
errdefer ar.deinit();
|
||||
|
||||
const response: Client.FetchResult = try client.fetch(.{ .response_storage = .{ .dynamic = &ar }, .location = .{ .url = query }, .method = .GET, .headers = .{ .user_agent = .{ .override = user_agent } } });
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue