remove left over dead shell script
This commit is contained in:
parent
7b7fc5cd6c
commit
ba6db5077e
1 changed files with 0 additions and 128 deletions
|
|
@ -1,128 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Generate timezone offset lookup table based on longitude
|
||||
# Samples at multiple latitudes to handle political boundaries
|
||||
|
||||
set -e
|
||||
|
||||
OUTPUT_FILE="src/location/timezone_offsets.zig"
|
||||
TEMP_FILE=$(mktemp)
|
||||
|
||||
# Latitudes to sample (equator, +/-30)
|
||||
LATITUDES=(0 30 -30)
|
||||
|
||||
echo "Generating timezone offset table..."
|
||||
echo "This will make 1080 API calls (360 longitudes × 3 latitudes)"
|
||||
echo
|
||||
|
||||
# Start the output file
|
||||
cat > "$TEMP_FILE" << 'EOF'
|
||||
// Auto-generated timezone offset table
|
||||
// Generated by scripts/generate_timezone_table.sh
|
||||
//
|
||||
// Maps longitude (0-359) to UTC offset in minutes
|
||||
// Sampled at latitudes: 0°, 30°N, 30°S and uses most common offset
|
||||
|
||||
const std = @import("std");
|
||||
|
||||
/// Timezone offset in minutes from UTC for each degree of longitude (0-359)
|
||||
/// Negative values = west of UTC, positive = east of UTC
|
||||
pub const timezone_offsets: [360]i16 = .{
|
||||
EOF
|
||||
|
||||
# For each longitude
|
||||
for lon in {-180..179}; do
|
||||
# Normalize to 0-359 for array index
|
||||
array_idx=$((lon + 180))
|
||||
|
||||
echo -n "Processing longitude $lon ($((array_idx + 1))/360)..." >&2
|
||||
|
||||
# Collect offsets from all latitudes
|
||||
declare -A offset_counts
|
||||
|
||||
for lat in "${LATITUDES[@]}"; do
|
||||
# Query the API
|
||||
response=$(curl -s "https://tools.maximmaeder.com/t/get-timezone-by-coordinates/?latitude=$lat&longitude=$lon")
|
||||
|
||||
# Extract offset (format: "UTC+05:30" or "UTC-08:00")
|
||||
offset=$(echo "$response" | grep -oP 'UTC[+-]\d{2}:\d{2}' | head -1)
|
||||
|
||||
if [ -z "$offset" ]; then
|
||||
echo " failed to get timezone for lat=$lat, lon=$lon" >&2
|
||||
continue
|
||||
fi
|
||||
|
||||
# Convert to minutes
|
||||
sign=$(echo "$offset" | grep -oP '[+-]')
|
||||
hours=$(echo "$offset" | grep -oP '\d{2}' | head -1)
|
||||
mins=$(echo "$offset" | grep -oP '\d{2}' | tail -1)
|
||||
|
||||
total_mins=$((hours * 60 + mins))
|
||||
if [ "$sign" = "-" ]; then
|
||||
total_mins=$((total_mins * -1))
|
||||
fi
|
||||
|
||||
# Count occurrences
|
||||
offset_counts[$total_mins]=$((${offset_counts[$total_mins]:-0} + 1))
|
||||
|
||||
# Rate limit
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
# Find most common offset
|
||||
max_count=0
|
||||
most_common_offset=0
|
||||
for offset in "${!offset_counts[@]}"; do
|
||||
if [ "${offset_counts[$offset]}" -gt "$max_count" ]; then
|
||||
max_count="${offset_counts[$offset]}"
|
||||
most_common_offset="$offset"
|
||||
fi
|
||||
done
|
||||
|
||||
echo " → ${most_common_offset} minutes" >&2
|
||||
|
||||
# Add to array (with comma except for last element)
|
||||
if [ "$array_idx" -eq 359 ]; then
|
||||
echo " $most_common_offset," >> "$TEMP_FILE"
|
||||
else
|
||||
echo " $most_common_offset," >> "$TEMP_FILE"
|
||||
fi
|
||||
|
||||
unset offset_counts
|
||||
done
|
||||
|
||||
# Close the array
|
||||
cat >> "$TEMP_FILE" << 'EOF'
|
||||
};
|
||||
|
||||
/// Get timezone offset in minutes for a given longitude
|
||||
/// longitude: -180 to 180
|
||||
/// Returns: offset in minutes from UTC
|
||||
pub fn getTimezoneOffset(longitude: f32) i16 {
|
||||
// Normalize to 0-359
|
||||
const normalized = @mod(@as(i32, @intFromFloat(@round(longitude))) + 180, 360);
|
||||
return timezone_offsets[@intCast(normalized)];
|
||||
}
|
||||
|
||||
test "timezone offset lookup" {
|
||||
// London (0°) should be close to UTC
|
||||
const london_offset = getTimezoneOffset(0.0);
|
||||
try std.testing.expect(london_offset >= -60 and london_offset <= 60);
|
||||
|
||||
// New York (-74°) should be around UTC-5 (-300 minutes)
|
||||
const ny_offset = getTimezoneOffset(-74.0);
|
||||
try std.testing.expect(ny_offset >= -360 and ny_offset <= -240);
|
||||
|
||||
// Tokyo (139°) should be around UTC+9 (540 minutes)
|
||||
const tokyo_offset = getTimezoneOffset(139.0);
|
||||
try std.testing.expect(tokyo_offset >= 480 and tokyo_offset <= 600);
|
||||
}
|
||||
EOF
|
||||
|
||||
# Move to final location
|
||||
mv "$TEMP_FILE" "$OUTPUT_FILE"
|
||||
|
||||
echo
|
||||
echo "Generated $OUTPUT_FILE"
|
||||
echo "Running zig fmt..."
|
||||
zig fmt "$OUTPUT_FILE"
|
||||
echo "Done!"
|
||||
Loading…
Add table
Reference in a new issue