aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-11-19 21:03:40 +0100
committerNathan Reiner <nathan@nathanreiner.xyz>2025-11-19 21:03:40 +0100
commitf6b7fe33ee7c08761f3403ca77b7530dbb2763df (patch)
treef48621ad79fc9d60a03e8d774da0839b6b6df09f
parent25228df6d13b5e8541672c4cdd84e200ff56a4c4 (diff)
backend: fix no data error for exif
-rw-r--r--src/routes/api/image/query.zig0
-rw-r--r--src/routes/api/image/remove.zig0
-rw-r--r--src/storage/image-manager/exif.zig11
-rw-r--r--src/storage/image-manager/root.zig14
4 files changed, 13 insertions, 12 deletions
diff --git a/src/routes/api/image/query.zig b/src/routes/api/image/query.zig
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/routes/api/image/query.zig
diff --git a/src/routes/api/image/remove.zig b/src/routes/api/image/remove.zig
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/routes/api/image/remove.zig
diff --git a/src/storage/image-manager/exif.zig b/src/storage/image-manager/exif.zig
index 02199cf..d086fed 100644
--- a/src/storage/image-manager/exif.zig
+++ b/src/storage/image-manager/exif.zig
@@ -12,7 +12,7 @@ pub fn get_date_time(path: [*:0]const u8) ?i64 {
const exif_data = exif.exif_data_new_from_file(path);
defer exif.exif_data_unref(exif_data);
- if (exif_data == null) {
+ if (exif_data == 0) {
return null;
}
@@ -27,13 +27,16 @@ pub fn get_date_time(path: [*:0]const u8) ?i64 {
if (entry) |_| { break; }
}
- if (entry == null) {
+ if (entry == 0) {
return null;
}
- const c_data = (entry.?.*).data;
+ if (entry) |e| {
+ const c_data = (e.*).data;
+ return parse_date(c_data);
+ }
- return parse_date(c_data);
+ return null;
}
extern fn strptime(
diff --git a/src/storage/image-manager/root.zig b/src/storage/image-manager/root.zig
index 7fa1607..4188b88 100644
--- a/src/storage/image-manager/root.zig
+++ b/src/storage/image-manager/root.zig
@@ -60,24 +60,22 @@ pub fn add(self: *Self, allocator: std.mem.Allocator, image: Image) !void {
var current = self.timestamp_order.first;
- if (current == null) {
- const timestamp = try allocator.create(Timestamp);
- timestamp.index = self.items.items.len - 1;
- self.timestamp_order.append(&timestamp.node);
- return;
- }
-
while (current) |c| {
const index = @as(*Timestamp, @fieldParentPtr("node", c)).index;
if (image.timestamp orelse 0 > self.items.items[index].timestamp orelse 0) {
const timestamp = try allocator.create(Timestamp);
timestamp.index = self.items.items.len - 1;
self.timestamp_order.insertBefore(c, &timestamp.node);
- break;
+ return;
}
current = c.next;
}
+
+ const timestamp = try allocator.create(Timestamp);
+ timestamp.index = self.items.items.len - 1;
+ self.timestamp_order.append(&timestamp.node);
+ return;
}
pub fn save(