마스터노드 보상 입금 알림 받기 (Telegram)

in #crypto7 years ago (edited)

마스터 노드 보상이 들어오는게 규칙성이 별로 없고 대중 없기 때문에..
제대로 돌고 있는 건지 보상은 들어 왔는지.. 자꾸 조회하게 되어서 보상이 들어오면 텔레그램으로 알려주는 봇을 작성 하였습니다..
요즘 연말이라고 회사에서도 코인에 빠져 살았었는데.. 이제 업무를 해야하니 ㅜ

마스터노드 작동 여부, 시세 확인하는 봇도 추후에 추가하도록 하겠습니다.
Masternodes.online에서 제공하는 마스터노드 작동 모니터링이 API가 제동괴면 쉽게 만들겠는데 없네요..

이번에는 Python과 Telegram bot 을 사용하였고, 컴퓨터를 항상 켜놓기 애매해서 VPS하나 뚫었습니다..
우분투에서 Crontab을 활용하면 주기적으로 스크립트가 자동 실행시키기도 용이합니다.

먼저 허접한 Python 코드입니다. 그냥 간단하게 각 코인 explorer에서 제공하는 API를 이용하여 마스터노드 계좌의 현재 잔고를 조회하고 보상이 입급되어 잔고가 이전 잔고보다 클때는 텔레그렘 봇에서 메세지를 보내주고 가격은 txt 파일에 저장합니다.

telegram 봇을 생성하는 방법은 텔레그램의 BotFather를 추가하셔서 만들어달라하면 만들어줍니다ㅋㅋ

=============================================================================
import requests
import telepot

#gobyte
r=requests.get("http://explorer.gobyte.network:5001/ext/getbalance/고바이트 마노 주소")
print(r.json())
gobyte_bal=r.json()

#magnet
r=requests.get("http://35.202.4.153:3001/ext/getbalance/마그넷 마노 주소")
print(r.json())
magnet_bal=r.json()
magnet_bal_round=round(r.json(),2)

f=open("gobyte_balance.txt",'r')
gobyte_bal_last = f.read()
print(gobyte_bal_last)

f=open("magnet_balance.txt",'r')
magnet_bal_last = f.read()
print(magnet_bal_last)

TOKEN = '텔레그램 봇 토큰'
bot=telepot.Bot(TOKEN)

gobyte_message="Gobyte balance = " + str(gobyte_bal) + "GBX"
magnet_message="Magnet balance = " + str(magnet_bal_round) + "MAG"

if float(gobyte_bal) > float(gobyte_bal_last):
bot.sendMessage(채팅방ID, gobyte_message)
f = open("gobyte_balance.txt", 'w')
f.write(str(gobyte_bal))

if float(magnet_bal) > float(magnet_bal_last):
bot.sendMessage(채팅방ID, magnet_message)
f=open("magnet_balance.txt",'w')
f.write(str(magnet_bal))

=============================================================================

이제 이 파일을 VPS에 넣고 Crontab으로 반복 수행만 시키면 됩니다.

윈도우에서 VPS로 파일 전달은 FileZilla라는 프로그램을 사용하였습니다. Putty사용 해보셨다면 연결 하시고 드래그 엔 드롭하면 복사가 됩니다.

python script, gobyte_balance.txt, magnet_balance.txt 세 가지 파일을 VPS에 전달합니다. (txt 파일 안에는 초기 잔고)
저는 root에 python이라는 경로 하나 만들어서 넣었습니다.

mkdir python

VPS python 에 스크립트에서 사용되는 requests와 telepot 라이브러리를 추가 설치해줍니다.

sudo apt-get install python-pip
pip install requests
pip install telepot

그리고 아래 명령어가 실행이 잘 되는지 확인해봅니다.
cd /root/python/ && python ./'파이썬 파일 이름'.py

잘 실행 된다면 이제 Crontab을 설정 하여야 하는데 Joe 편집기를 설치하시는 것이 편합니다.

sudo apt-get install joe

Crontab을 실행하시면 편집기를 선택하라 하시면 Joe를 선택하시면 됩니다.

Crontab -e

제일 마지막 줄에 자동 실행할 명령을 추가하시면 됩니다. ( 1분마다 실행하여 잔고 조회)

          • cd /root/python/ && python ./'파이썬 파일 이름'.py

제대로 작동 된다면 보상이 들어올때마다 텔레그램에서 메세지를 받게 됩니다.
(Tip. 잔고가 들어오기 전에 Crontab이 잘 작동하는지 확인해 보시려면 txt안의 잔고를 현재 잔고보다 적게 수정하시면 됩니다..)