Conkyに仮想通貨のレート情報を表示させてみる

Conkyに仮想通貨のレート情報を表示させてみる

概要

システムのステータスをConkyを使ってi3barに表示させているのですが,最近取引をはじめた仮想通貨のレート情報を手軽にいつでも確認できる方法がほしいと考え,texeciを使った設定例を書いてみました.

Conky 1.10.6_pre 時点の話をしています.

coincheckのPublic API

今回はcurlを使ってcoincheck Public APIを叩き,結果をConkyに表示させます.

あまり細かい情報を表示させても仕方がないので,BTCとXRPの販売レートのみを取得してみます. Public APIは特に認証を必要としないため,適当にcurlで叩くだけでJSON形式のレスポンスが帰ってきます.

(BTCの場合)

$ curl https://coincheck.com/api/rate/btc_jpy
{"rate":"464734.5"}%

さらに適当にgrepして数値を取り出します.

$ curl -s https://coincheck.com/api/rate/btc_jpy | grep -o '[0-9.]*'
464734.5

このコマンドをconkyrcに記述して読み込ませます.

Conkyのtexeciオブジェクト

Conkyには,exec, execi, execp, execpi, texeci などのコマンドを実行するオブジェクトが用意されています.

コマンド 説明
exec コマンドの実行結果を表示
execp コマンドの実行結果をConkyの設定としてパースして結果を表示
execi exec の時間間隔指定バージョン
execpi execp の時間間隔指定バージョン
texeci 指定した時間間隔でスレッドを立ち上げて実行し,結果を表示

texeci の t は thread を意味しており,時間がかかる可能性があるコマンドを非同期的に実行する際に使用します. その他の exec オブジェクトを使用する場合は,コマンドの実行も同期的に行われるため,実行に時間がかかった場合にConkyがハングしてしまいます. 今回はそれを避けるために,curlにタイムアウトの設定をした上で,texeci を使って非同期的に実行することにします.

設定例

レートリミットがよくわからないので,今回は2通貨の情報を5秒毎(0.4req/s)に取得します. Conkyのマニュアルでは,texeci の時間間隔にコマンドの最大実行時間+1秒を設定することが推奨されています. 今回は5秒毎に取得したいため,curlのタイムアウトを4秒に設定することにします.

最終的に,設定はつぎのようになります(関係のない部分は省略).

conky.text = [=[
BTC: ${texeci 5 curl -m 4 -s https://coincheck.com/api/rate/btc_jpy | grep -o '[0-9.]*'} | \
XRP: ${texeci 5 curl -m 4 -s https://coincheck.com/api/rate/xrp_jpy | grep -o '[0-9.]*'} | \
]=]

ほかにも設定しているのでごちゃごちゃしていますが,つぎの画像のようにレートが表示できていることがわかります. 値は5秒毎に更新されます.

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

今回利用したcoincheckはインタフェースがシンプルで取引がしやすいサービスです. BTC取引手数料も執筆時点で無料ですので,気になる方は登録だけでもしてみてはいかがでしょうか.

Share Comments