aboutsummaryrefslogtreecommitdiffstats
path: root/hommaexceli_py/telegram_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'hommaexceli_py/telegram_client.py')
-rw-r--r--hommaexceli_py/telegram_client.py33
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()