<?php declare(strict_types=1);
-require 'common.php';
+require_once('common.php');
-use function Common\{getTelegram, getInbox, getMessagesFromInbox, splitBill};
+function ggetMessagesFromInbox($unread) {
+ return getMessagesFromInbox(getInbox('Multiple Inboxes/Needs Action'), getRules(), $unread);
+};
-array_map(
- function($message) {
- return getTelegram()->sendMessage(
- [
- 'chat_id' => CHAT_ID,
- 'text'=> $message
- ]
- );
- },
- array_merge(
- array_map(
- function($message) {
- return sprintf(
- '[REMINDER: %d DAYS] ' . $message['telegramMessage'],
- REMIND_THRESHOLD,
- splitBill($message['amount']),
- $message['due']->format('jS \of M')
- );
- },
- array_filter(
- getMessagesFromInbox(getInbox('Multiple Inboxes/Needs Action'), require 'rules.php', false),
- function($message) {
- return $message['due']->diff(new DateTimeImmutable)->d == REMIND_THRESHOLD;
- }
- )
- ),
- array_map(
- function($message) {
- return sprintf(
- $message['telegramMessage'],
- splitBill($message['amount']),
- $message['due']->format('jS \of M')
- );
- },
- getMessagesFromInbox(getInbox('Multiple Inboxes/Needs Action'), require 'rules.php')
- )
- )
+map(sendToGroupChat)(
+ ∪(∘(map(generateReminderText), filter(messageNeedsReminder), 'ggetMessagesFromInbox')(FALSE),
+ ∘(map(generateNewBillText), 'ggetMessagesFromInbox')(TRUE))
);