]> gitweb.ps.run Git - chirp/blobdiff - src/main.zig
change logged_in.? to login and add comment
[chirp] / src / main.zig
index 78c7cb0072cdb5d252c175e016f593c5b4e11420..7583d8de0c9ca955bcc77d4314951cadfbae35fd 100644 (file)
@@ -602,9 +602,6 @@ fn write_post(res: *http.Response, txn: lmdb.Txn, logged_in: ?Login, post_id: Po
     try res.write(
         \\<a href="/quotes/{x}">&#x1F501; {}</a> 
     , .{ @intFromEnum(post.id), quotes_view.len() });
-    try res.write(
-        \\<br />
-    , .{});
 
     // Save to List
     if (logged_in) |login| {
@@ -626,7 +623,7 @@ fn write_post(res: *http.Response, txn: lmdb.Txn, logged_in: ?Login, post_id: Po
     // Comment field
     // TODO: maybe always show comment field and prompt for login
     if (options.show_comment_field and logged_in != null) {
-        try res.write("<br />", .{});
+        try res.write("<br /><br />", .{});
         try html_form(res, "/comment", .{}, .{
             .{ "type=\"hidden\" value=\"{x}\" name=\"post_id\"", .{@intFromEnum(post.id)} },
             "type=\"text\" name=\"text\" placeholder=\"Text\"",
@@ -683,8 +680,8 @@ fn write_timeline(res: *http.Response, txn: lmdb.Txn, logged_in: ?Login, user_li
     while (true) {
         var newest_post: ?Post = null;
 
-        var it = following.iterator();
-        while (it.next()) |following_id| {
+        var following_it = following.iterator();
+        while (following_it.next()) |following_id| {
             const followed_user = try users.get(following_id);
             const followed_posts = try followed_user.posts.open(txn);
 
@@ -694,10 +691,11 @@ fn write_timeline(res: *http.Response, txn: lmdb.Txn, logged_in: ?Login, user_li
 
             var followed_posts_it = followed_posts.reverse_iterator();
             while (followed_posts_it.next()) |followed_post_id| {
-                const last_post = try posts.get(followed_post_id);
+                const p = try posts.get(followed_post_id);
 
-                if ((prev_newest_post == null or last_post.time < prev_newest_post.?.time) and (newest_post == null or newest_post.?.time < last_post.time)) {
-                    newest_post = last_post;
+                if ((prev_newest_post == null or p.time < prev_newest_post.?.time) and (newest_post == null or newest_post.?.time < p.time)) {
+                    newest_post = p;
+                    break;
                 }
             }
         }
@@ -782,7 +780,10 @@ const GET = struct {
                 user.name.constSlice(), user.display_name.constSlice(),
             });
             if (self.logged_in != null and user_id != self.logged_in.?.user.id) {
-                if (try followers.has(self.logged_in.?.user.id)) {
+                const login = self.logged_in.?;
+
+                // follow/unfollow
+                if (try followers.has(login.user.id)) {
                     try html_form(self.res, "/follow", .{}, .{
                         .{ "type=\"hidden\" name=\"user_id\" value=\"{x}\"", .{@intFromEnum(user_id)} },
                         \\type="submit" value="Unfollow"
@@ -885,13 +886,15 @@ const GET = struct {
 
         const referer = if (self.req.get_header("Referer")) |ref| ref else self.req.target;
 
-        try html_form(self.res, "/quote", .{}, .{
-            .{ "type=\"hidden\" name=\"referer\" value=\"{s}\"", .{referer} },
-            .{ "type=\"hidden\" name=\"post_id\" value=\"{x}\"", .{@intFromEnum(post.id)} },
-            "type=\"text\" name=\"text\" placeholder=\"Text\"",
-            "type=\"submit\" value=\"Quote\"",
-        });
-        try self.res.write("<br />", .{});
+        if (self.logged_in != null) {
+            try html_form(self.res, "/quote", .{}, .{
+                .{ "type=\"hidden\" name=\"referer\" value=\"{s}\"", .{referer} },
+                .{ "type=\"hidden\" name=\"post_id\" value=\"{x}\"", .{@intFromEnum(post.id)} },
+                "type=\"text\" name=\"text\" placeholder=\"Text\"",
+                "type=\"submit\" value=\"Quote\"",
+            });
+            try self.res.write("<br />", .{});
+        }
 
         const quotes_view = try post.quotes.open(self.txn);
         var it = quotes_view.iterator();
@@ -1154,7 +1157,6 @@ const POST = struct {
 
             const post_list = PostList{ .idx = list_id };
             var post_list_view = try post_list.open(txn);
-            std.debug.print("adding {x} to {x}\n", .{ post_id, list_id });
             if (try post_list_view.has(post_id)) {
                 try post_list_view.del(post_id);
             } else {
@@ -1301,6 +1303,7 @@ fn handle_connection(server: *http.Server, env: lmdb.Env) !void {
         while (try server.next_request(&req_buffer)) |*_req| {
             var req: *http.Request = @constCast(_req);
             // std.debug.print("[{}]: {s}\n", .{ req.method, req.target });
+            // std.debug.print("[{}]: {s}\n", .{ req.method, req.head.? });
 
             // reponse
             var res = http.Response.init(req.fd, &res_head_buffer, &res_body_buffer);