<?php
// CLI/cron worker for queued Telegram updates
//
// منطق واقعیِ پردازش صف در index.php داخل drainQueue() است تا وبهوک هم بتواند
// همان را صدا بزند (روی هاستی که exec بسته و کران در دسترس نیست). این فایل فقط
// پوستهٔ CLI است.

define('APP_BOOTSTRAP_ONLY', true);
require __DIR__ . '/index.php';

$args = $argv ?? [];

// پیش‌فرض = یک دور و خروج.
//
// قبلاً برعکس بود (بدون --once وارد حلقهٔ بی‌نهایت می‌شد) و دو مشکل داشت:
//   ۱) فراموش‌کردن سوییچ در کران یعنی یک پروسهٔ سرگردانِ همیشه‌روشن، که روی
//      هاست اشتراکی باعث تذکر یا مسدودشدن کران می‌شود.
//   ۲) بعضی پنل‌ها (ModSecurity روی cPanel) رشتهٔ «--» را در فرم افزودن کران
//      به‌عنوان الگوی تزریق SQL بلاک می‌کنند و کران بی‌صدا اضافه نمی‌شود.
// حالا خط کران هیچ سوییچی لازم ندارد. حلقهٔ دائمی فقط با --loop و فقط در CLI.
$loop = in_array('--loop', $args, true) && php_sapi_name() === 'cli';

if (!$loop) {
    drainQueue();
    exit(0);
}

while (true) {
    drainQueue();
    sleep(1);
}
