55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
|
import requests
|
||
|
from time import sleep
|
||
|
|
||
|
url = "https://legend.lnbits.com/api/v1/wallet" # your lnbits instance URL
|
||
|
api_key = "ABCDEFG" # your lnbits wallet api key (not admin!)
|
||
|
|
||
|
bot_token = '123123123:12312jn3123123kjn123f' # telegram bot token, create bot with @botfather
|
||
|
chat_id = '12312313123' # your telegram chat id, contact a chat id bot to get it
|
||
|
|
||
|
min_balance = 1000 # minimum balance at which you want to get notified
|
||
|
refresh_interval = 5600 # refresh interval in which tha balances are fetched in seconds
|
||
|
|
||
|
|
||
|
def get_wallet_balance():
|
||
|
headers = {
|
||
|
"X-Api-Key": api_key
|
||
|
}
|
||
|
response = requests.get(url, headers=headers)
|
||
|
|
||
|
if response.status_code == 200:
|
||
|
data = response.json()
|
||
|
return data["balance"]
|
||
|
else:
|
||
|
return int(-1)
|
||
|
|
||
|
def send_telegram_message(token, chat_id, message):
|
||
|
url = f'https://api.telegram.org/bot{token}/sendMessage'
|
||
|
data = {'chat_id': chat_id, 'text': message}
|
||
|
response = requests.post(url, data=data)
|
||
|
return response.json()
|
||
|
|
||
|
def bot():
|
||
|
previous_balance = 0
|
||
|
while (True):
|
||
|
balance = get_wallet_balance()
|
||
|
if balance == -1:
|
||
|
print("Balance check failed.")
|
||
|
sleep(3600)
|
||
|
continue
|
||
|
else:
|
||
|
balance = int(balance/1000)
|
||
|
difference = previous_balance - balance
|
||
|
if difference > 1:
|
||
|
message = f"{difference} Sats have been withdrawn!"
|
||
|
send_telegram_message(bot_token, chat_id, message)
|
||
|
elif balance < min_balance:
|
||
|
message = f"Only {balance} Sats left in ATM, refill!"
|
||
|
send_telegram_message(bot_token, chat_id, message)
|
||
|
previous_balance = balance
|
||
|
sleep(refresh_interval)
|
||
|
|
||
|
bot()
|
||
|
|
||
|
|