diff --git a/src/actions/__init__.py b/src/actions/__init__.py index 5d8aab99aa912cf676eefd333b31b10cad57319d..147caf4fe4229ba8180a17528bd38c10bd994bb3 100644 --- a/src/actions/__init__.py +++ b/src/actions/__init__.py @@ -8,5 +8,4 @@ def finish(): importlib.import_module("src.actions.replies") importlib.import_module("src.actions.package_indexes") importlib.import_module("src.actions.search_engines") - importlib.import_module("src.actions.reminder") logging.info("All actions loaded") diff --git a/src/actions/reminder.py b/src/actions/reminder.py deleted file mode 100644 index 05f6473b0083799b2eb94b4ddd1bf8a1fd64f22f..0000000000000000000000000000000000000000 --- a/src/actions/reminder.py +++ /dev/null @@ -1,80 +0,0 @@ -import datetime -import logging - -from src.config import config -from src.utils.responses import mark_unread -from telethon import events - -logger = logging.getLogger(__name__) - -FINAL_CAPTION = "\n\n`Ðапоминание Ñделано автоматичеÑки, но Ñ Ð»ÑŽÐ±Ð¾Ð²ÑŒÑŽ.`" - -date_translation = { - "завтра": datetime.timedelta(days=1), - "поÑлезавтра": datetime.timedelta(days=2), - "": datetime.timedelta(), -} - - -@config.telegram_client.on(events.NewMessage(pattern=".rh")) -@mark_unread -async def reminder_help(event): - with open("./static_messages/reminder_help.txt") as f: - contents = f.read() - await event.respond(contents) - - -@config.telegram_client.on( - events.NewMessage( - pattern=r"[Ð|н]апомни(\s+мне)?\s*(?P<date>\s+завтра|\s+поÑлезавтра|\d{4})?" - r"\s+в\s+(?P<time>\d{2}(:\d{2})?([+|-]\d\d?)?)\s+(?P<action>.+)", - forwards=False, - ) -) -@mark_unread -async def set_reminder(event: events.NewMessage.Event): - groups = event.pattern_match.groupdict() - target_time = datetime.datetime.now(datetime.timezone.utc) - action = groups["action"] - date = groups["date"] or "" - target_time += date_translation[date.strip()] - time_with_zone = groups.get("time") - time = time_with_zone - time_offset = None - if "+" in time: - time, offset = time.split("+") - time_offset = datetime.timedelta(hours=-int(offset)) - if "-" in time: - time, offset = time.split("-") - time_offset = datetime.timedelta(hours=int(offset)) - if ":" in time: - hour, minute = time.split(":") - target_time = target_time.replace(hour=int(hour), minute=int(minute)) - else: - target_time = target_time.replace(hour=int(time), minute=0) - target_time = target_time.replace(second=0, microsecond=0) - if time_offset: - target_time_delta = (target_time + time_offset) - datetime.datetime.utcnow() - else: - target_time_delta = target_time - datetime.datetime.now() - chat = await event.get_chat() - message = event.message - username = "" - if event.is_group: - sender = await message.get_sender() - if sender.username: - username = f" @{sender.username}," - else: - username = ( - f" [{sender.first_name} {sender.last_name}](tg://user?id={sender.id})," - ) - logger.debug(target_time_delta) - if target_time_delta >= datetime.timedelta(0): - await event.client.send_message( - chat, - f"Привет,{username} напоминаю тебе, что ты хотел {action}{FINAL_CAPTION}", - schedule=target_time_delta, - ) - await event.reply("Ðапоминание оÑтавлено!") - else: - await event.reply("Упущенного не вернуть!") diff --git a/static_messages/reminder_help.txt b/static_messages/reminder_help.txt deleted file mode 100644 index f8954a3a830ca9b20d26727b420a08bb75067fc5..0000000000000000000000000000000000000000 --- a/static_messages/reminder_help.txt +++ /dev/null @@ -1,13 +0,0 @@ -** ÐÐµÐ±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñправка, как управлÑть напоминаниÑми ** - -УÑтанавливаютÑÑ Ð½Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ñ Ð¿Ñ€Ð¾Ñто и на еÑтеÑтвенном Ñзыке. - -Вот неÑколько примеров как уÑтановить напоминаниÑ: - -* `Ðапомни в 10:00+04 заварить чай.` -* `Ðапомни мне в 10:00+04 заварить чай.` -* `Ðапомни завтра в 10:00+04 заварить чай.` -* `Ðапомни поÑлезавтра в 10:00+04 заварить чай.` - -Ð’ приведенных примерах бот напишет вам Ñообщение в 10 чаÑов утра по СамарÑкому времени. -`+04` в Ñтом Ñлучае означает Ñмещение по `UTC`.