Hasty Briefsbeta

双语

FediMeteo, timezones, and the art of not breaking what already works

2 days ago
  • FediMeteo起初是一个针对意大利城市的简单Python脚本,使用Nominatim获取坐标、Open-Meteo获取天气数据,并通过snac发布信息。
  • 通过将本地化内容分离到JSON文件并为每个国家设置cron调度,它扩展到多个欧洲国家。
  • 添加德国后发现名称歧义问题(例如,多个Neustadt、法兰克福美因河畔与奥得河畔法)。导致需要手动解决。
  • 美国带来了重大挑战:超过1200个城市、六个时区以及广泛的名称重复(例如Springfields、Portlands)。
  • 机器人被重写以支持州后缀、自动时区检测、多个天气提供者及回退机制、可配置单位以及严格的向后兼容性。
  • 一个调试打印意外将Open-Meteo API密钥泄露到帖子中;该事件促使实施多层机密信息编辑。
  • 引入了坐标缓存以减少Nominatim负载并允许手动修正(例如,将费拉拉的坐标从省中心校正为市中心)。
  • 由于城市间休眠导致的慢速循环和基于cron的调度导致重启后丢失更新;为了实现鲁棒性,采用带有状态文件恢复的守护进程。
  • 设计理念强调Unix式简洁、隐藏复杂性以及在不破坏现有功能前提下的运维韧性。