search for standard sites pub-search.waow.tech
search zig blog atproto
11
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: rebrand dashboard + clean up dead platform detection

- update dashboard.html: leaflet search → pub search
- update dashboard links to pub-search.waow.tech
- remove dead blog.pckt.* and app.offprint.* platform detection
- pckt uses site.standard.* collections, not blog.pckt.*
- offprint not public yet
- simplify Platform enum to leaflet/standardsite/unknown

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

zzstoatzz f69cd2c6 70832172

+11 -24
+8 -21
backend/src/extractor.zig
··· 5 5 const zat = @import("zat"); 6 6 7 7 /// Detected platform from collection name 8 + /// Note: pckt and other platforms use site.standard.* collections. 9 + /// Platform detection from collection only distinguishes leaflet (custom lexicon) 10 + /// from site.standard users. Actual platform (pckt vs others) is detected later 11 + /// from publication basePath. 8 12 pub const Platform = enum { 9 13 leaflet, 10 - pckt, 11 - offprint, 12 - standardsite, 14 + standardsite, // pckt and others using site.standard.* lexicon 13 15 unknown, 14 16 15 17 pub fn fromCollection(collection: []const u8) Platform { 16 18 if (mem.startsWith(u8, collection, "pub.leaflet.")) return .leaflet; 17 - if (mem.startsWith(u8, collection, "blog.pckt.")) return .pckt; 18 - if (mem.startsWith(u8, collection, "app.offprint.")) return .offprint; 19 19 if (mem.startsWith(u8, collection, "site.standard.")) return .standardsite; 20 20 return .unknown; 21 21 } ··· 27 27 28 28 /// Display name (for UI) 29 29 pub fn displayName(self: Platform) []const u8 { 30 - return switch (self) { 31 - .standardsite => "standard.site", 32 - else => @tagName(self), 33 - }; 30 + return @tagName(self); 34 31 } 35 32 }; 36 33 ··· 242 239 try std.testing.expectEqual(Platform.leaflet, Platform.fromCollection("pub.leaflet.publication")); 243 240 } 244 241 245 - test "Platform.fromCollection: pckt" { 246 - try std.testing.expectEqual(Platform.pckt, Platform.fromCollection("blog.pckt.document")); 247 - try std.testing.expectEqual(Platform.pckt, Platform.fromCollection("blog.pckt.site")); 248 - } 249 - 250 - test "Platform.fromCollection: offprint" { 251 - try std.testing.expectEqual(Platform.offprint, Platform.fromCollection("app.offprint.document")); 252 - } 253 - 254 242 test "Platform.fromCollection: standardsite" { 243 + // pckt and others use site.standard.* collections 255 244 try std.testing.expectEqual(Platform.standardsite, Platform.fromCollection("site.standard.document")); 256 245 try std.testing.expectEqual(Platform.standardsite, Platform.fromCollection("site.standard.publication")); 257 246 } ··· 263 252 264 253 test "Platform.name" { 265 254 try std.testing.expectEqualStrings("leaflet", Platform.leaflet.name()); 266 - try std.testing.expectEqualStrings("pckt", Platform.pckt.name()); 267 - try std.testing.expectEqualStrings("offprint", Platform.offprint.name()); 268 255 try std.testing.expectEqualStrings("standardsite", Platform.standardsite.name()); 269 256 try std.testing.expectEqualStrings("unknown", Platform.unknown.name()); 270 257 } 271 258 272 259 test "Platform.displayName" { 273 260 try std.testing.expectEqualStrings("leaflet", Platform.leaflet.displayName()); 274 - try std.testing.expectEqualStrings("standard.site", Platform.standardsite.displayName()); 261 + try std.testing.expectEqualStrings("standardsite", Platform.standardsite.displayName()); 275 262 }
+3 -3
site/dashboard.html
··· 3 3 <head> 4 4 <meta charset="UTF-8"> 5 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 - <title>leaflet search / stats</title> 6 + <title>pub search / stats</title> 7 7 <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect x='4' y='18' width='6' height='10' fill='%231B7340'/><rect x='13' y='12' width='6' height='16' fill='%231B7340'/><rect x='22' y='6' width='6' height='22' fill='%231B7340'/></svg>"> 8 8 <link rel="stylesheet" href="dashboard.css"> 9 9 </head> 10 10 <body> 11 11 <div class="container"> 12 - <h1><a href="https://leaflet-search.pages.dev" class="title">leaflet search</a> <span class="dim">/ stats</span></h1> 12 + <h1><a href="https://pub-search.waow.tech" class="title">pub search</a> <span class="dim">/ stats</span></h1> 13 13 14 14 <section> 15 15 <div class="metrics"> ··· 63 63 </section> 64 64 65 65 <footer> 66 - <a href="https://leaflet-search.pages.dev">back</a> · source on <a href="https://tangled.sh/@zzstoatzz.io/leaflet-search">tangled</a> 66 + <a href="https://pub-search.waow.tech">back</a> · source on <a href="https://tangled.sh/@zzstoatzz.io/leaflet-search">tangled</a> 67 67 </footer> 68 68 </div> 69 69