diff --git a/src/app/views/upload.zig b/src/app/views/upload.zig index ac2c665..f22781d 100644 --- a/src/app/views/upload.zig +++ b/src/app/views/upload.zig @@ -66,6 +66,11 @@ pub fn post(request: *jetzig.Request) !jetzig.View { const query: []const u8 = try std.fmt.allocPrint(request.allocator, "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user={s}&api_key=b0c410a48a6078a651e0832699e3cd41&from={}&to={}&page={}&limit=1000&format=json", .{ username, earliest_timestamp, latest_timestamp, page }); const r = try client.fetch(.{ .response_storage = .{ .dynamic = &lastfm_response_buffer }, .location = .{ .url = query }, .method = .GET, .headers = .{ .user_agent = .{ .override = user_agent } } }); std.log.debug("{}: {}", .{ page, r }); + if (@intFromEnum(r.status) == 500) { + page -= 1; + std.time.sleep(3 * std.time.ns_per_s); + continue; + } const response_string = try lastfm_response_buffer.toOwnedSlice(); const parsed_lastfm_response = try std.json.parseFromSliceLeaky(Data.LastFMWeb, request.allocator, response_string, .{ .ignore_unknown_fields = true }); //const current_page = try std.fmt.parseInt(usize, parsed_lastfm_response.recenttracks.@"@attr".page, 10);