Conky パネルでの Python スクリプト出力の表示では、Conky パネルで Python スクリプトを実行して、ビットコインの為替レートを USD と BRL で表示することを提案しました。ただし、このような基本的なタスクでは予想以上にメモリを消費するため、スクリプトを Go で書き直しました。現在は、コンパイルされたバイナリがタスクを処理します。このアプローチは Go 初心者にとって理想的であり、API 処理と通貨値のテキスト形式を学ぶ機会を提供します。内訳は次のとおりです:
完全なコードはこの記事の最後にあります。
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
const ( apiURL = "https://economia.awesomeapi.com.br/json/last/BTC-USD,BTC-BRL" )
type CurrencyData struct { High string `json:"high"` Low string `json:"low"` } type APIResponse struct { BTCUSD CurrencyData `json:"BTCUSD"` BTCBRL CurrencyData `json:"BTCBRL"` }
JSON タグ (json:"high") は、構造体フィールドを JSON キーにマップします。
func formatCurrency(value string, prefix string) string { floatValue, err := strconv.ParseFloat(value, 64) if err != nil { return "N/A" } formattedValue := fmt.Sprintf("%s%s", prefix, humanize.FormatFloat("#,###.##", floatValue)) return formattedValue }
resp, err := http.Get(apiURL) if err != nil { writeError(err) return } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { writeError(err) return }
var data APIResponse if err := json.Unmarshal(body, &data); err != nil { writeError(err) return }
usdAlta := formatCurrency(data.BTCUSD.High, "$$") usdBaixa := formatCurrency(data.BTCUSD.Low, "$$") brlAlta := formatCurrency(data.BTCBRL.High, "R$$") brlBaixa := formatCurrency(data.BTCBRL.Low, "R$$")
API が提供する値を表示用にフォーマットします。
formattedData := fmt.Sprintf( "\n\n${color white}BTC - USD\n${color}${color green} High: ${color}${color white}%s\n${color red} Low: ${color}${color white}%s\n\n"+ "${color white}BTC - BRL\n${color}${color green} High: ${color}${color white}%s\n${color red} Low: ${color}${color white}%s\n", usdAlta, usdBaixa, brlAlta, brlBaixa, ) fmt.Println(formattedData)
フォーマットされた値を使用して最終的な出力文字列を作成します。
func writeError(err error) { errMsg := fmt.Sprintf("Error: %v", err) fmt.Println(errMsg) }
ターミナルにエラーを記録します。
実行: go build btc_data.go && ./btc_data.go
package main import ( "encoding/json" "fmt" "io" "net/http" "strconv" "github.com/dustin/go-humanize" )
この記事が役に立った、または楽しんでいただけた場合は、貢献することを検討してください:
以上がGo のビットコイン レート スクリプトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。