예제 #1
0
async def schedule_repeat(user_id: int, set_id: int, set_name: str):
    repeat = await db.get_repeat(user_id, set_id)

    if not repeat:
        repeat_time = datetime.now() + config.repeat_stages[0]
        await db.add_repeat(user_id=user_id,
                            set_id=set_id,
                            set_name=set_name,
                            repeat_stage=0,
                            repeat_time=repeat_time)
        scheduler.add_job(notify_to_repeat,
                          "date",
                          run_date=repeat_time,
                          args=(user_id, set_id, set_name))

    elif repeat["repeat_time"] <= datetime.now(
    ) and repeat["repeat_stage"] + 1 < len(config.repeat_stages):
        repeat_stage = repeat["repeat_stage"] + 1
        repeat_time = datetime.now() + config.repeat_stages[repeat_stage]
        await db.update_repeat(user_id,
                               set_id,
                               repeat_stage=repeat_stage,
                               repeat_time=repeat_time)
        scheduler.add_job(notify_to_repeat,
                          "date",
                          run_date=repeat_time,
                          args=(user_id, set_id, set_name))
예제 #2
0
async def bot_start(msg: types.Message):
    user = User.get_current()

    await db.add_user(id=user.id,
                      username=user.username,
                      full_name=user.full_name)
    await redis_commands.set_new_user(user_id=user.id)

    scheduler.add_job(greeting, args=(msg, ))
예제 #3
0
def schedule_jobs():
    group = APIMethodsGroup()
    minute = random.randint(8, 57)
    hour = random.randint(3, 5)
    scheduler.add_job(group.compare_all_groups,
                      "cron",
                      day_of_week='mon-sun',
                      hour=hour,
                      minute=minute)
예제 #4
0
async def on_startup(dispatcher):
    scheduler.add_job(
        broadcaster, args=(dp, rasp), trigger='interval', hours=24,
        next_run_time=datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) + timedelta(hours=3)
    )
    scheduler.add_job(get_rasp, args=(rasp, old_file_id, dp), trigger='interval', hours=1, next_run_time=datetime.now())
    scheduler.start()
    # Уведомляет про запуск
    await notify_admins_def(dispatcher, "Я запустился")
async def restart_repeat_notifications():
    repeats = await db.get_all_repeats()

    for repeat in repeats:
        if datetime.now() >= repeat["repeat_time"]:
            await notify_to_repeat(repeat["user_id"], repeat["set_id"], repeat["set_name"])
        else:
            scheduler.add_job(notify_to_repeat, "date", run_date=repeat["repeat_time"],
                              args=(repeat["user_id"], repeat["set_id"], repeat["set_name"]))

    logging.info("Restart all repeat notifications")
예제 #6
0
async def on_startup(dispatcher):
    print("Подключаем БД")
    await db_gino.on_startup(dp)
    print("Готово")

    # Уведомляет про запуск
    await on_startup_notify(dispatcher)

    # Настраиваем команды
    await set_default_commands(dp)

    # Добавляем задачу scheduler'у
    scheduler.add_job(send_schedule_to_subscribed_users,
                      'cron',
                      hour='8-23',
                      minute='*/30',
                      timezone=TIMEZONE)
def schedule_jobs():
    scheduler.add_job(send_message_to_admin,
                      'interval',
                      seconds=config.SEC_CLEAR,
                      args=(dispatcher, ))
예제 #8
0
def schedule_jobs():
    scheduler.add_job(func=send_db_to_admin, trigger="interval", hours=12, args=())
예제 #9
0
async def job():
    scheduler.add_job(db_worker, 'cron', minute=00)
예제 #10
0
def schedule_jobs():
    """Добавляем задачи в scheduler"""
    scheduler.add_job(add_new_photo, "cron", hour=00, minute=30)
    scheduler.add_job(send_notifications, "cron", hour=13, minute=30)