aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2021-02-12 16:36:20 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2021-02-12 16:36:20 +0200
commit5fef5f1fc5312e0c2c6788adf5c81ec275361cc8 (patch)
treed9b0b47820b2a8ee4c0d86c35d20af4fe32dad97
parent909ce794a8d6d4c207d5b96c0200c8bde326e8be (diff)
Implement date filtering logic
-rw-r--r--hommaexceli_py/parser.py13
-rw-r--r--hommaexceli_py/telegram_client.py8
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)