diff --git a/main.py b/main.py index 9b5d6d4..201327e 100644 --- a/main.py +++ b/main.py @@ -953,19 +953,38 @@ async def restore_event(ctx, *, arg: str): @bot.command(name="создать_голосования") async def create_scheduled_events(ctx): """Принудительно запускает создание голосований по расписанию""" - import scheduler # ✅ импортируем модуль с расписанием + import scheduler # импортируем модуль с расписанием await ctx.send("⏳ Проверяю расписание и создаю голосования...") now = datetime.datetime.now(MOSCOW_TZ) created = [] - for event in scheduler.SCHEDULED_EVENTS: - create_time = scheduler.get_next_datetime(now, event["day"], event["create_hour"], event["create_minute"]) - start_time = scheduler.get_next_datetime(now, event["day"], event["event_hour"], event["event_minute"]) - event_id = scheduler.event_loop_context["generate_event_id"](event["name"], start_time) + generate_event_id = scheduler.event_loop_context["generate_event_id"] + event_tasks = scheduler.event_loop_context["event_tasks"] + create_poll = scheduler.event_loop_context["create_poll"] - if event_id in scheduler.event_loop_context["event_tasks"]: + for event in scheduler.SCHEDULED_EVENTS: + # День и время создания (по event["day"]) + create_time = scheduler.get_next_datetime( + now, + event["day"], + event["create_hour"], + event["create_minute"] + ) + + # День и время старта (учитываем event_day!) + start_day = event.get("event_day", event["day"]) + start_time = scheduler.get_next_datetime( + now, + start_day, + event["event_hour"], + event["event_minute"] + ) + + event_id = generate_event_id(event["name"], start_time) + + if event_id in event_tasks: continue info = { @@ -973,15 +992,16 @@ async def create_scheduled_events(ctx): "start_time": start_time, } - await scheduler.event_loop_context["create_poll"](info, message_id=event["key"]) - created.append(info["name"]) + await create_poll(info, message_id=event["key"]) + created.append(f"{info['name']} ({start_time.strftime('%d.%m.%Y %H:%M')} МСК)") if created: - await ctx.send(f"✅ Созданы события: {', '.join(created)}") + await ctx.send("✅ Созданы события:\n" + "\n".join(created)) else: await ctx.send("ℹ️ Все события уже существуют, ничего не создано.") + # ================================================ # 🕒 [SCHEDULER] Команды управления автосозданием # ================================================