From 12e696d5d66e3305216b254826a1cb0cf4cf41da Mon Sep 17 00:00:00 2001 From: Raykov-MS Date: Mon, 2 Mar 2026 11:59:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE?= =?UTF-8?q?=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D0=B2?= =?UTF-8?q?=D1=8B=D1=85=D0=BE=D0=B4=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + main.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 40baa23..c09583c 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ python -m uvicorn main:app --host 0.0.0.0 --port 8080 --reload --env-file .env - `AUTO_ASSIGNED_LABEL` - необязательно, по умолчанию `auto-assigned` - `AUTO_ASSIGN_REVIEWERS_COUNT` - необязательно, по умолчанию `2` (сколько ревьюеров назначать автоматически) - `APPROVALS_REQUIRED_FOR_MERGE` - необязательно, по умолчанию `2` (порог approve для сообщения "можно мерджить") +- `NOTIFY_ON_WEEKENDS` - необязательно, по умолчанию `true`; если `false`, бот не отправляет ЛС в субботу и воскресенье (МСК) - `ALLOW_SELF_ASSIGN` - необязательно, по умолчанию `false` (для локального теста можно `true`) - `TELEGRAM_ALLOWED_CHAT_IDS` - необязательно, CSV списка `chat_id`, которым можно управлять ботом - `TELEGRAM_ALLOWED_USERNAMES` - необязательно, CSV списка Telegram username (без `@`) diff --git a/main.py b/main.py index 793448a..c01534a 100644 --- a/main.py +++ b/main.py @@ -46,6 +46,7 @@ GITEA_COUNT_REPOS = { for v in os.getenv("GITEA_COUNT_REPOS", "").split(",") if v.strip() } +NOTIFY_ON_WEEKENDS = os.getenv("NOTIFY_ON_WEEKENDS", "true").lower() == "true" MSK_TZ = timezone(timedelta(hours=3)) @@ -375,6 +376,9 @@ class TelegramClient: async def send_message(self, chat_id: int, text: str) -> None: if not self.base_url: return + # По настройке можно отключить отправку уведомлений в выходные (МСК). + if msk_now().weekday() >= 5: + return try: async with httpx.AsyncClient(timeout=20) as client: response = await client.post(