# Изменены параметры и добавлена логика в команду !создать_голосования
This commit is contained in:
38
main.py
38
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] Команды управления автосозданием
|
||||
# ================================================
|
||||
|
||||
Reference in New Issue
Block a user