# Изменены параметры и добавлена логика в команду !создать_голосования

This commit is contained in:
2026-02-16 13:55:01 +05:00
parent 99901f5e47
commit cc588b0e06

38
main.py
View File

@@ -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] Команды управления автосозданием
# ================================================