diff --git a/build.zig.zon b/build.zig.zon index 8d6c246..ca04d31 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -25,8 +25,8 @@ // internet connectivity. .dependencies = .{ .jetzig = .{ - .url = "https://github.com/jetzig-framework/jetzig/archive/1feb18fb74e626fe068ec67532318640a9cb83be.tar.gz", - .hash = "jetzig-0.0.0-IpAgLfMzDwDyAqZ05btcLDd9dfE_bxUbfOI_Wx7a19ed", + .url = "https://github.com/jetzig-framework/jetzig/archive/bb724b48f62605ca63dca5bb21805b2ed1683557.tar.gz", + .hash = "jetzig-0.0.0-IpAgLf5aDwCfevsEIt-MOj1YUZI0IdhNCCuEBYXQcEkc", }, .uuid = .{ .url = "git+https://github.com/r4gus/uuid-zig#9d66e23e32cd7208d1becb4fd9352f8a27f89551", diff --git a/src/app/views/root/index.zmpl b/src/app/views/root/index.zmpl index 355b321..12276fc 100644 --- a/src/app/views/root/index.zmpl +++ b/src/app/views/root/index.zmpl @@ -21,17 +21,17 @@ @else Login @end - Gitea instance - IRC + Gitea instance + IRC RSS feed - SearX - Files + SearX + Files E-mail diff --git a/src/app/rss.zig b/src/app/views/rss.zig similarity index 77% rename from src/app/rss.zig rename to src/app/views/rss.zig index 006ff69..6aff48f 100644 --- a/src/app/rss.zig +++ b/src/app/views/rss.zig @@ -21,6 +21,7 @@ fn generateRss(items: []const RssItem, allocator: std.mem.Allocator) ![]u8 { \\yuzucchii.xyz \\yuzucchii.xyz \\Personal blog of Yuzu with all kinds of different articles + \\ , .{}); for (items) |item| { @@ -44,9 +45,7 @@ fn generateRss(items: []const RssItem, allocator: std.mem.Allocator) ![]u8 { // we'll send xml instead -pub fn index(request: *jetzig.Request) !void { - try request.headers.append("Content-Type", "application/rss+xml"); - +pub fn index(request: *jetzig.Request) !jetzig.View { const query = jetzig.database.Query(.Blog).orderBy(.{.created_at = .desc}); const blogs = try request.repo.all(query); @@ -64,9 +63,14 @@ pub fn index(request: *jetzig.Request) !void { }); } - // TODO: wait until jetzig adds xml support - _ = try generateRss(try items.toOwnedSlice(), request.allocator); + const rss = generateRss(items.toOwnedSlice() catch { + std.debug.print("lol", .{}); + return request.fail(.bad_request); + }, request.allocator) catch { + return request.fail(.bad_request); + }; - return request.render(.ok); + request.response.content_type = "application/rss+xml"; + return request.renderText(rss, .ok); } diff --git a/src/app/views/rss/index.zmpl b/src/app/views/rss/index.zmpl new file mode 100644 index 0000000..7c89b54 --- /dev/null +++ b/src/app/views/rss/index.zmpl @@ -0,0 +1 @@ +
diff --git a/src/main.zig b/src/main.zig index 547da02..8c89cd0 100644 --- a/src/main.zig +++ b/src/main.zig @@ -214,7 +214,7 @@ pub const jetzig_options = struct { }; pub fn init(app: *jetzig.App) !void { - _ = app; + app.route(.GET, "/rss.xml", @import("app/views/rss.zig"), .index); } pub fn main() !void {