Atm-Automat/telegram_notification_bot/atmbot_python/main.py

55 lines
1.6 KiB
Python
Raw Permalink Normal View History

2025-02-12 10:07:58 +01:00
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()