Daylight CLI 工具透過基於 IP 的位置查詢後在本地計算日出和日落時間

BigGo Editorial Team
Daylight CLI 工具透過基於 IP 的位置查詢後在本地計算日出和日落時間

日光時長的變化模式影響著我們的日常生活節奏和情緒,尤其是對於那些生活在北緯地區的人們。一款名為 daylight 的新命令列工具應運而生,幫助使用者在終端中跟蹤日出、日落和日照時長,引發了關於其實現方式和替代方案的有趣討論。

基於 IP 的位置檢測後進行本地計算

daylight 工具以一種有趣的方式結合了線上和離線功能。雖然許多使用者最初對其資料來源感到疑惑,但開發者澄清說,該應用程式僅使用線上服務(ipinfo.io)根據使用者的 IP 地址確定其位置。一旦獲取到緯度和經度座標,所有日出和日落的計算都在本地使用幾何演算法完成。

「它透過 IP 查詢服務獲取您的緯度/經度,然後在本地進行幾何計算」

計算方法依賴於 go-sunrise 庫,該庫實現了維基百科上的日出方程式進行天文計算。這種方法確保了準確的結果,而且不需要為每次計算都連線網際網路。

手動位置配置選項

對於關注隱私或使用可能報告錯誤位置的 VPN 的使用者,該工具提供了命令列選項來手動指定座標和時區。這種靈活性受到了社群的好評,使用者讚賞能夠透過類似 --loc=12.34,56.78--timezone=America/New_York 這樣的命令覆蓋自動檢測。

開發者對這些使用場景的考慮表明他理解命令列工具使用者的多樣化需求,這些使用者通常優先考慮控制和定製。

使用示例

 獲取您的IP位置的今日資料
daylight

 覆蓋IP位置和時區
daylight --loc="-33.92,18.42" --timezone="Africa/Johannesburg"

 資料的簡短摘要
daylight --short

 獲取另一個日期的資料
daylight --date="2025-12-31"

 停用彩色輸出
NO_COLOR=true daylight

安裝方法

  • Homebrew(MacOS和Linux)
    brew tap jbreckmckye/formulae
    brew install daylight
    
  • 手動安裝:從釋出頁面下載可執行檔案
  • Windows:提供二進位制檔案但測試較少

替代方法和生態系統整合

社群討論揭示了幾種獲取相同資訊的替代方法。一位使用者指出, Emacs 使用者可以透過設定座標並使用內建的 M-x sunrise-sunset 命令獲得類似功能。這引發了關於文字編輯器可擴充套件性的一些輕鬆調侃,其中包括對經典 XKCD 漫畫中關於文字編輯器的引用。

這些交流突顯了命令列工具通常存在於豐富的替代方案生態系統中,使用者傾向於選擇能與現有工作流程整合的解決方案。

技術實現和學習經驗

開發者建立 daylight 是作為 Go 程式設計的學習專案,這引起了社群中許多人的共鳴,他們欣賞作為學習練習而構建的開源工具。程式碼庫使用 lipgloss 終端 UI 庫建立了一個有吸引力的介面,能根據終端背景調整顏色。

一些使用者注意到了格式上的特點,例如當使用某些時區標誌時,該工具顯示24小時制時間但仍然附加 AM/PM。這些觀察表明命令列工具開發具有迭代性質,社群反饋通常推動改進。

daylight 工具既是一個實用工具,為那些像其建立者一樣熱愛陽光並害怕漫長黑暗冬夜的人服務,也是一個學習專案如何產生真正有用應用程式的例子。它結合線上位置檢測和離線計算的方式在便利性和隱私之間取得了平衡,這是許多命令列使用者所欣賞的。

參考:daylight: 用於跟蹤日出和日落時間的命令列程式