Pull to refresh

Comments 7

а чего по средам, без этого колхоза никак? или память плохая

Была бы хорошая память, не пришлось бы программировать напоминалку ¯\_(ツ)_/¯

В наши дни очень много информации поступает в мозг и не успеваешь отслеживать и обрабатывать её, а напоминалка это очень хорошее решение

Это всё, конечно, интересно с точки зрения изучения возможностей сервисов. Но изобретение велосипеда - дело неблагодарное. Все то же самое я сделал в календаре телефона за пару кликов. И уведомление на смартфон приходит и письмо на почту на всякий случай...

Согласен, но ради удовольствия и для себя можно :)
Вообще цель статьи именно продемонстрировать возможности Apps Script на этом примере, я просто не хотел лить воду в статью и объяснять, зачем я это пишу.

Во первых спасибо за такой полезный скрипт, во вторых хочу попросить о помощи:
Я не программист просто интересна эта сфера, хотел адаптировать ваш скрип под рабочий процесс и есть необходимость реализовать функцию постоянного напоминания до момента оплаты (пока не поставят галочку в таблице) и что бы напоминания за неделю начинали приходить.

В paymentScheduler есть строка let daysLeft = payment.daysBeforePayment();
В переменной daysLeft будет кол-во дней, оставшихся до очередного платежа (строка, где не нажата галка с оплатой).
Далее идет проверка, есть ли под это кол-во дней подходящее сообщение в словаре

const PAYMENT_MESSAGES = {
  0: "Напоминалка: сегодня тебе надо внести %amount₽ в копилку для челленджа",
  1: "Напоминалка: завтра тебе надо внести %amount₽ в копилку для челленджа",
}

тут скрипт рассчитан, что мы точно знаем, за сколько дней и какое сообщение надо отправить. Для вашего кейса можно убрать эту логику с определением сообщения, и просто работать с кол-вом дней до платежа. Например

function paymentScheduler() {
  let payment = getCurrentPayment();
  let daysLeft = payment.daysBeforePayment();
	// Если до платежа осталось 7 или менее дней
	if (daysLeft <= 7) {
    tgBot.sendMessage(`Необходимо внести ${payment.getAmount()}₽`);
	}
}

Если день оплаты уже прошел, daysLeft примет отрицательное значение, уведомления продолжат поступать. Но тут уже предвижу проблему: если пропустить 2 и более платежа, сообщения будут поступать только с суммой первого пропущенного, боюсь тут без изменения логики не обойтись.

Sign up to leave a comment.

Articles