前書き
出金手数料通知してくれるdiscordサーバがあったので入っていたのですが、通知してくれなくなったので自分で書いた
サーバは公開したくないのでソースコードだけ貼っときます
ソースコード
// ここの箇所は各自変更する必要あり const discordWebHookURL = "ディスコードのウェブフックURLをコピペするところ";
// nicehashの手数料を取得 function get_nicehash_fee(coin='BTC'){ var response = UrlFetchApp.fetch('https://api2.nicehash.com/main/api/v2/public/service/fee/info') var fee_info = JSON.parse(response.getContentText()); return(fee_info['withdrawal']['BITGO']['rules'][coin]['intervals'][0]['element']['sndValue']) } // discordにウェブフックを使ってbotメッセージを送信 function send_discord(msg='', everyone = false){ const discordWebHookURL = "ディスコードのウェブフックURLをコピペするところ"; if(everyone){ msg = '@everyone' + msg } const message = { "content": msg, "tts": false } const param = { "method": "POST", "headers": { 'Content-type': "application/json" }, "payload": JSON.stringify(message) } UrlFetchApp.fetch(discordWebHookURL, param); } // 現在の時刻の文字列を返す function get_now(){ var date = new Date(); return Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss'); } // main function myFunction() { // 取得するコインの種類 var coin = "BTC" // 前回の手数料 var properties = PropertiesService.getScriptProperties(); var fee_before = properties.getProperty("fee_before"); var res_fee = get_nicehash_fee(coin); // 表示するメッセージの生成 msg = '['+get_now()+'] '+coin+': '+res_fee; Logger.log(msg + ', before:' + fee_before); // 前回と違えば表示する if(fee_before != res_fee){ send_discord(msg, everyone = res_fee <= 0.000001); } // 前回の手数料を保存 properties.setProperty("fee_before", res_fee); }
使い方
1.gasを作成
googleドライブを開いて、新規 -> その他 -> Google Apps Script
ここに先程のソースコード貼り付ける
2.ウェブフックURLの取得と書き換え
導入したいdiscordサーバの設定 -> 連携サービス -> ウェブフック -> 新しいウェブフック -> ウェブフックURLをコピー
これで得たURLを先程の貼り付けたソースコードの変更する必要のある場所を書き換える
3.トリガーの設定をして実行
gasでトリガー -> トリガーを追加 を選んで、実行する関数は「myFunction」
分ベースのタイマー、1分おきとかその辺は好みで設定して完了
動作について
前回と違う手数料に変わった時だけdiscordに通知されます
手数料が0.000001BTC以下だと@everyoneをつけて通知します
discordなんて使いたくねーよ
なんて人がいたらpythonで1分ごとに取得するものをgasで書く前に試しに書いたのでどうぞ
0.000001BTC以下だったらビープ音鳴らすなりしたらいいと思う(そこまで書いてません)
import json import urllib.request import datetime import time while True: url = 'https://api2.nicehash.com/main/api/v2/public/service/fee/info' req = urllib.request.Request(url) with urllib.request.urlopen(req) as res: dt_now = datetime.datetime.now() fee_info = json.load(res) coin = 'BTC' print("[{}] {}: {:.8f}".format(dt_now.strftime('%Y-%m-%d %H:%M:%S'), coin, fee_info['withdrawal']['BITGO']['rules'][coin]['intervals'][0]['element']['sndValue'])) time.sleep(60)