diff options
Diffstat (limited to 'hommaexceli_py/telegram_client.py')
| -rw-r--r-- | hommaexceli_py/telegram_client.py | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/hommaexceli_py/telegram_client.py b/hommaexceli_py/telegram_client.py index 108f525..5e845a5 100644 --- a/hommaexceli_py/telegram_client.py +++ b/hommaexceli_py/telegram_client.py @@ -1,6 +1,7 @@ import datetime import signal import sys +import logging from os import getenv from telegram.ext import Updater, CommandHandler, Job from telegram import Update @@ -20,41 +21,57 @@ def _signal_handler(sig, frame): def _callback_alarm(context): + chat_id = context.job.context + logging.info(f"Authenticating and fetching data from Sheets...") rows = authenticate_and_fetch_sheets_data() + + logging.info(f"Sending sheet data to chat id {chat_id}...") message = "\n".join(map(str, rows)) - context.bot.send_message(chat_id=context.job.context, text=message) + context.bot.send_message(chat_id=chat_id, text=message) def _callback_timer(update: Update, context): + chat_id = update.message.chat_id + logging.info(f"Starting timer in chat id {chat_id}...") update.message.reply_text( "HommaBot startattu. Uusia hommapäivityksiä viikon välein." ) - chats_mem_cache.add(update.message.chat_id) + chats_mem_cache.add(chat_id) context.job_queue.run_repeating( _callback_alarm, - datetime.timedelta(seconds=10), - context=update.message.chat_id, + datetime.timedelta(weeks=1), + context=chat_id, ) def _stop_timer(update: Update, context): + chat_id = update.message.chat_id + logging.info(f"Stopping timer in chat id {chat_id}...") update.message.reply_text("HommaBot pysäytetty!") - chats_mem_cache.remove(update.message.chat_id) + chats_mem_cache.remove(chat_id) context.job_queue.stop() def run_telegram(): - updater = Updater(getenv("TELEGRAM_TOKEN")) + tg_token = getenv("TELEGRAM_TOKEN") + logging.info("Creating Telegram bot object...") + updater = Updater(tg_token) + + logging.info("Registering Telegram bot /start handler...") updater.dispatcher.add_handler( CommandHandler("start", _callback_timer, pass_job_queue=True) ) + + logging.info("Registering Telegram bot /stop handler...") updater.dispatcher.add_handler( CommandHandler("stop", _stop_timer, pass_job_queue=True) ) + logging.info("Starting Telegram bot (HommaBot)...") updater.start_polling() + logging.info("Registering SIGINT handler...") signal.signal(signal.SIGINT, _signal_handler) - # while true: - # time.sleep(1) + + logging.info("Bot started successfully. Pausing main thread... (this is expected)") signal.pause() |
