From 5fef5f1fc5312e0c2c6788adf5c81ec275361cc8 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 12 Feb 2021 16:36:20 +0200 Subject: Implement date filtering logic --- hommaexceli_py/parser.py | 13 ++++++++++--- hommaexceli_py/telegram_client.py | 8 +++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/hommaexceli_py/parser.py b/hommaexceli_py/parser.py index b4abb46..1b779a6 100644 --- a/hommaexceli_py/parser.py +++ b/hommaexceli_py/parser.py @@ -38,8 +38,15 @@ def _process_row(row: SheetsRow): last_done_date = _timestamp_to_date(row.last_done) next_date = last_done_date + interval next_date_str = _date_to_timestamp(next_date) - return (row.last_done, row.interval, next_date_str, row.name) + return (next_date, row.name, row.interval) -def process_rows(rows: list[SheetsRow]): - return map(_process_row, rows) +def _is_this_week(processed_row): + next_date = processed_row[0] + now = datetime.datetime.now() + return (next_date - now) < datetime.timedelta(weeks=1) + + +def filter_only_this_weeks_rows(rows: list[SheetsRow]): + processed_rows = map(_process_row, rows) + return filter(_is_this_week, processed_rows) diff --git a/hommaexceli_py/telegram_client.py b/hommaexceli_py/telegram_client.py index 2d30b01..34a750c 100644 --- a/hommaexceli_py/telegram_client.py +++ b/hommaexceli_py/telegram_client.py @@ -6,7 +6,7 @@ from os import getenv from telegram.ext import Updater, CommandHandler, Job from telegram import Update from sheets_client import authenticate_and_fetch_sheets_data -from parser import process_rows +from parser import filter_only_this_weeks_rows chats_mem_cache = set() @@ -28,10 +28,12 @@ def _callback_alarm(context): rows = authenticate_and_fetch_sheets_data() logging.info(f"Processing data...") - processed_data = process_rows(rows) + processed_data = filter_only_this_weeks_rows(rows) logging.info(f"Sending sheet data to chat id {chat_id}...") - message = "\n".join(map(str, processed_data)) + message = "Tällä viikolla tehtävät hommat:\n" + "\n".join( + map(lambda task: f"{task[1]} ({task[2]})", processed_data) + ) context.bot.send_message(chat_id=chat_id, text=message) -- cgit v1.3