prop/lib/microwaveprop/radio
Graham McIntire fe2ecf2618
feat(import): strip non-printables from CSV/ADIF uploads
Adds Microwaveprop.Radio.TextSanitizer to remove BOM, zero-width
spaces/joiners, C0 control bytes (except CR/LF/TAB), and DEL, and to
collapse NBSP and other unicode whitespace into a regular space.

CSV: applied to the whole upload at the top of preview/2.
ADIF: applied per-field-value after extraction so the byte-counted
length tags still slice the right substring.
2026-04-26 15:34:46 -05:00
..
adif_import.ex feat(import): strip non-printables from CSV/ADIF uploads 2026-04-26 15:34:46 -05:00
band_resolver.ex Rename 9cm band 3456 → 3400 2026-04-16 12:40:38 -05:00
callsign_client.ex Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
contact.ex feat(contacts): add free-form notes field 2026-04-23 11:02:27 -05:00
contact_common_volume_radar.ex feat(rainscatter): classify QSO propagation mechanism from common-volume radar 2026-04-17 15:57:59 -05:00
contact_edit.ex feat(contacts): private flag with scope-aware visibility 2026-04-18 17:49:01 -05:00
csv_import.ex feat(import): strip non-printables from CSV/ADIF uploads 2026-04-26 15:34:46 -05:00
edit_notifier.ex Send mail as prop@w5isp.com with reply-to graham@mcintire.me 2026-04-12 14:00:38 -05:00
enrichment_status.ex Add dialyzer specs and types across the codebase 2026-04-12 08:55:04 -05:00
import_matcher.ex CSV/ADIF import: upsert existing contacts on grid/mode refinement 2026-04-16 10:57:37 -05:00
import_run.ex feat(import): async CSV import with progress-tracking schema 2026-04-17 09:31:22 -05:00
maidenhead.ex feat(rover): URL station persistence + 10-digit grids on calculated values 2026-04-25 16:36:34 -05:00
text_sanitizer.ex feat(import): strip non-printables from CSV/ADIF uploads 2026-04-26 15:34:46 -05:00