From 6d69d7f19c3014318734e618baff5ba958fe2344 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 12 Feb 2021 14:52:00 +0200 Subject: Implement Sheets and Telegram clients --- hommaexceli_py/telegram_client.py | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 hommaexceli_py/telegram_client.py (limited to 'hommaexceli_py/telegram_client.py') diff --git a/hommaexceli_py/telegram_client.py b/hommaexceli_py/telegram_client.py new file mode 100644 index 0000000..0c7fcf2 --- /dev/null +++ b/hommaexceli_py/telegram_client.py @@ -0,0 +1,57 @@ +import datetime +import signal +import sys +from os import getenv +from telegram.ext import Updater, CommandHandler, Job +from telegram import Update + +chats_mem_cache = set() + + +def _signal_handler(sig, frame): + print("You pressed Ctrl+C!") + updater = frame.f_locals["updater"] + for chat_id in chats_mem_cache: + updater.bot.send_message(chat_id=chat_id, text="HommaBot-palvelin sammutettu!") + + updater.stop() + sys.exit(0) + + +def _callback_alarm(context): + context.bot.send_message(chat_id=context.job.context, text="Alarm") + + +def _callback_timer(update: Update, context): + update.message.reply_text( + "HommaBot startattu. Uusia hommapäivityksiä viikon välein." + ) + chats_mem_cache.add(update.message.chat_id) + context.job_queue.run_repeating( + _callback_alarm, + datetime.timedelta(seconds=1), + context=update.message.chat_id, + ) + + +def _stop_timer(update: Update, context): + update.message.reply_text("HommaBot pysäytetty!") + chats_mem_cache.remove(update.message.chat_id) + context.job_queue.stop() + + +def run_telegram(): + updater = Updater(getenv("TELEGRAM_TOKEN")) + updater.dispatcher.add_handler( + CommandHandler("start", _callback_timer, pass_job_queue=True) + ) + updater.dispatcher.add_handler( + CommandHandler("stop", _stop_timer, pass_job_queue=True) + ) + + updater.start_polling() + + signal.signal(signal.SIGINT, _signal_handler) + # while true: + # time.sleep(1) + signal.pause() -- cgit v1.3