wttr/legacy/overflowed.md

1.7 KiB

Remaining Components

1. Location Resolver (Critical)

Currently we only support coordinates. Need: • GeoIP wrapper (libmaxminddb via @cImport) • IP → City/Country lookup • City name → Coordinates (via geolocator service) • Location normalization • Special prefixes (~, @)

2. Vendor libmaxminddb (Required for GeoIP)

• Download libmaxminddb source • Add to vendor/libmaxminddb/ • Update build.zig to compile it • Wrap in clean Zig interface

3. Static File Serving (Nice to have)

• /files/{path} endpoint • /:help endpoint • Serve from share/ directory

4. Query Parameter Parsing (Enhancement)

Currently only format is supported. Need: • Single-letter options (T, n, m, u, etc.) • Days parameter (0-3) • Imperial/metric units

5. Error Handling (Polish)

• Better error messages • 404 for unknown locations • 500 for API failures

Priority Order

Must Have (for MVP):

  1. Location Resolver with GeoIP - Without this, only coordinates work
  2. Vendor libmaxminddb - Required for #1

Should Have: 3. Query parameter parsing - Makes it feature-complete 4. Static file serving - For help pages

Nice to Have: 5. Better error handling

Recommendation

Implement Location Resolver + GeoIP next. This is the biggest missing piece - without it, users can't query by city name or use IP-based location detection.

Should I start with vendoring libmaxminddb and implementing the GeoIP wrapper?

[default] > yes. I'm concerned you're going to screw this up. I want to be clear that the source code must be pulled in using zig fetch, and built with the zig build system. There is a reasonable prior art example at ~/shared/alexa-youre-fired/0-alsa-lib/