
<?php

require 'jDateTime.php'; // اضافه کردن کتابخانه jDateTime

// استخراج روز شمسی
$day = jDateTime::date('j', time(), false);
$day = (int) $day;

// استخراج ماه شمسی
$month = jDateTime::date('F', time(), false); // استفاده از 'F' برای استخراج نام ماه به صورت کامل

// دریافت ورودی از تلگرام
$token = '7805922431:AAFyoG_N_UjA8qu3EB4sOFGx5jvX6CgNAFg';
$apiUrl = "https://api.telegram.org/bot$token/";
$channelId = '-1001884680475';
$content = file_get_contents("php://input");
$update = json_decode($content, true);

// بررسی اینکه آیا پیام جدید یا ویرایش شده وجود دارد
$message = $update['message'] ?? $update['edited_message'] ?? $update['channel_post'] ?? $update['edited_channel_post'];

// اطمینان از وجود پیام
if ($message) {
    $text = $message['text'] ?? '';

    // بررسی اینکه آیا متن 'ssss' در پیام وجود دارد
    if (strpos($text, 'ssss') !== false) {
        exit(); // اگر 'ssss' وجود داشت، کد را متوقف کن
    }

// بررسی وجود کلمه‌ی "﷼" در متن
if (strpos($text, '﷼') !== false) {
    // اجرای کد اول برای ماه‌های میلادی
    if ($month === "فروردین") {
        $day .= "-farvardin";
    } elseif ($month === "اردیبهشت") {
        $day .= "-ordibehesht";
    } elseif ($month === "خرداد") {
        $day .= "-khordad";
    } elseif ($month === "تیر") {
        $day .= "-tir";
    } elseif ($month === "مرداد") {
        $day .= "-mordad";
    } elseif ($month === "شهریور") {
        $day .= "-shahrivar";
    } elseif ($month === "مهر") {
        $day .= "-mehr";
    } elseif ($month === "آبان") {
        $day .= "-aban";
    } elseif ($month === "آذر") {
        $day .= "-azar";
    } elseif ($month === "دی") {
        $day .= "-dey";
    } elseif ($month === "بهمن") {
        $day .= "-bahman";
    } elseif ($month === "اسفند") {
        $day .= "-esfand";
    }
} else {
    // اجرای کد دوم برای ماه‌های فارسی
    if ($month === "فروردین") {
        $day .= "-فروردین";
    } elseif ($month === "اردیبهشت") {
        $day .= "-اردیبهشت";
    } elseif ($month === "خرداد") {
        $day .= "-خرداد";
    } elseif ($month === "تیر") {
        $day .= "-تیر";
    } elseif ($month === "مرداد") {
        $day .= "-مرداد";
    } elseif ($month === "شهریور") {
        $day .= "-شهریور";
    } elseif ($month === "مهر") {
        $day .= "-مهر";
    } elseif ($month === "آبان") {
        $day .= "-آبان";
    } elseif ($month === "آذر") {
        $day .= "-آذر";
    } elseif ($month === "دی") {
        $day .= "-دی";
    } elseif ($month === "بهمن") {
        $day .= "-بهمن";
    } elseif ($month === "اسفند") {
        $day .= "-اسفند";
    }
}


    // تابع برای ارسال پیام به کانال
    function sendMessage($text, $chatId, $apiUrl) {
        $sendMessageUrl = $apiUrl . "sendMessage?chat_id=$chatId&text=" . urlencode($text) . "&parse_mode=HTML";
        file_get_contents($sendMessageUrl);
    }

    // تابع برای حذف آخرین سطر از متن
    function removeLastLine($text) {
        $lines = explode("\n", trim($text)); // تقسیم متن به خط‌ها
        array_pop($lines); // حذف آخرین خط
        return implode("\n", $lines); // بازگشت به متن بدون آخرین خط
    }

    // بررسی اگر پیام ویرایش شده باشد
    if (isset($update['edited_message']) || isset($update['edited_channel_post'])) {
        
        $chatId = $message['chat']['id'];
        $messageId = $message['message_id'];
        $editedText = $message['text'];

        // بررسی اگر شناسه کانال برابر با '1001884680475' باشد
        if ($chatId == $channelId) {
            return; // خروج از کد
        }

        // دریافت زمان ویرایش پیام
        if (isset($message['edit_date'])) {
            $editTimestamp = $message['edit_date'];
            $editDate = jDateTime::date('Y-m-d', $editTimestamp, false); // استخراج تاریخ ویرایش پیام
        } else {
            $editDate = jDateTime::date('Y-m-d', time(), false); // اگر ویرایش نشده باشد، تاریخ امروز
        }

        // تاریخ امروز
        $currentDate = jDateTime::date('Y-m-d', time(), false);


// بررسی اگر پیام ویرایش شده باشد و تاریخ آن مربوط به امروز یا قبل باشد
        if ($editDate <= $currentDate) {
            // بررسی تعداد علامت های "#"
            if (substr_count($editedText, '#') >= 3) {
                // بررسی وجود "vless"
                if (strpos($editedText, 'vless') !== false) {
                    // پیدا کردن موقعیت "vless" و "➖"
                    $startPos = strpos($editedText, 'vless');
                    $endPos = strpos($editedText, '➖', $startPos);

                    if ($endPos === false) {
                        $endPos = strlen($editedText);
                    }

                    $vlessText = trim(substr($editedText, $startPos, $endPos - $startPos));



    if (strpos($editedText, 'سرور') !== false) {
        // پیدا کردن موقعیت کلمه "سرور" در متن
        $serverPosition = strpos($editedText, 'سرور');
        
        // پیدا کردن موقعیت علامت "#" بعد از "سرور"
        $hashPosition = strpos($editedText, '#', $serverPosition);
        
        
        // اگر علامت "#" پیدا شد
        if ($hashPosition !== false) {
            // گرفتن متنی که بعد از "#" قرار دارد تا انتهای سطر
            $serverValue = substr($editedText, $hashPosition + 1);
            
            // حذف اعداد از متن
            $serverValueWithoutNumbers = preg_replace('/\d+/', '', $serverValue);
 
 //********************************************************
   $shmr = rand(0, 9999);

// تبدیل عدد به فرمت 4 رقمی
$shmr = sprintf("%04d", $shmr);

// مسیر فایل
$filePath = __DIR__ . "/coode.txt";

// خواندن محتوای فایل
$fileContent = file_exists($filePath) ? file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) : [];

// تولید عدد تصادفی تا زمانی که عدد تکراری نباشد
while (in_array($shmr, $fileContent)) {
    $shmr = rand(0, 9999); // تولید عدد جدید
    $shmr = sprintf("%04d", $shmr); // تبدیل به فرمت 4 رقمی
}

// ذخیره عدد تصادفی در فایل (اضافه کردن به انتهای فایل)
file_put_contents($filePath, $shmr . PHP_EOL, FILE_APPEND);

// ادامه کد پس از ذخیره عدد
echo "عدد تصادفی جدید: " . $shmr . "<br>";

// اینجا می‌توانید کدهای بعدی خود را قرار دهید
// برای مثال:
echo "کد به ادامه خطوط بعدی رفت!";

//***************************************************************

$day = trim($serverValueWithoutNumbers) . '--کد (' . ' ' . $shmr . ' ' . ')---' . $day;

        }
    }


                    
// چک کردن وجود "،" در متن و اضافه کردن مقدار به $day
if (strpos($editedText, '،') !== false) {
    $day = '09366060848--' . $day;
}


                    $vlessTextWithDay = $vlessText . $day;



$hasPersianMonth = false;
$persianMonths = ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'];

foreach ($persianMonths as $monthName) {
    if (strpos($vlessTextWithDay, $monthName) !== false) {
        $hasPersianMonth = true;
        break;
    }
}

if (!$hasPersianMonth) {
    $vlessTextWithDay = preg_replace('/#.*?کد\s*\(\s*(\d{4})\s*\)/', '#$1', $vlessTextWithDay);
}



                    $editedText = str_replace($vlessText, '<code>' . $vlessTextWithDay . '</code>', $editedText);
                }

               $startText = "#روی_کد_بزنید_کپی_میشه👇";
$startPos = strpos($editedText, $startText);
$endPos = strpos($editedText, '@', $startPos);

if ($endPos === false) {
    $endPos = strlen($editedText);
}

if ($startPos !== false) {
    $startTextLength = strlen($startText) + 2; // دو کاراکتر اضافه شده به طول رشته اصلی
    $copyText = substr($editedText, $startPos + $startTextLength, $endPos - ($startPos + $startTextLength));
    $copyText = trim($copyText);

    $editedText = str_replace($copyText, '<code>' . $copyText . '</code>', $editedText);
}

                
                
                  $editedText = str_replace(['+', '،','﷼'], '', $editedText);


                if (strpos($text, '+') !== false) {
                    $editedText .= "\n#عدم";
                }
                
                

                $day = jDateTime::date('j', time(), false);
                
                $day = (int) $day;
                
                $editedText .= "\n$day $month"; // افزودن روز و ماه به انتهای متن



                // ارسال پیام ویرایش شده به کانال
                sendMessage($editedText, $channelId, $apiUrl);

                // حذف پیام ویرایش شده
                $deleteUrl = $apiUrl . "deleteMessage?chat_id=$chatId&message_id=$messageId";
                file_get_contents($deleteUrl);
            }
        }
    }


 //*******************************
    //*******************************
    
    // بررسی اگر پیام جدید باشد
    if (isset($update['message']) || isset($update['channel_post'])) {
        $chatId = $message['chat']['id'];
        $messageId = $message['message_id'];
        $text = $message['text'];

        if (substr_count($text, '#') >= 3) {
            
        
       $startPos = strpos($text, '#');
$endPos = strpos($text, '➖', $startPos);

if ($startPos !== false && $endPos !== false) {
    $extractedText = trim(substr($text, $startPos + 1, $endPos - $startPos - 1));
    
    // ذخیره مقدار از ابتدای متن استخراج شده تا اولین --- در $namm، بدون ---
    $firstSeparatorPos = strpos($extractedText, '---');
    if ($firstSeparatorPos !== false) {
        $namm = trim(substr($extractedText, 0, $firstSeparatorPos)); // حذف ---
    } else {
        $namm = $extractedText; // اگر --- وجود نداشت، کل مقدار ذخیره شود
    }
}



            
            
            
            if (strpos($text, 'vless') !== false) {
                $endPos = strpos($text, '➖');
                $startPos = strrpos($text, '#', -strlen($text) + $endPos);

                if ($endPos !== false && $startPos !== false) {
                    $textToRemove = substr($text, $startPos, $endPos - $startPos);
                    $text = str_replace($textToRemove, '', $text);
                }

                $vlessStartPos = strpos($text, 'vless');
                $vlessEndPos = strpos($text, '➖', $vlessStartPos);


if ($vlessEndPos === false) {
                    $vlessEndPos = strlen($text);
                }

                $vlessText = trim(substr($text, $vlessStartPos, $vlessEndPos - $vlessStartPos));
               $vlessTextWithDay = $vlessText .'#'. $namm . '---' . $day . "\n";


                $text = str_replace($vlessText, '<code>' . $vlessTextWithDay . '</code>', $text);
            }

            $startText = "#روی_کد_بزنید_کپی_میشه👇";
$startPos = strpos($text, $startText);
$endPos = strpos($text, '@', $startPos);

if ($endPos === false) {
    $endPos = strlen($text);
}

if ($startPos !== false) {
    $startTextLength = strlen($startText) + 2; // دو کاراکتر اضافه شده به طول رشته اصلی
    $copyText = substr($text, $startPos + $startTextLength, $endPos - ($startPos + $startTextLength));
    
    $copyText = trim($copyText);

    
    $text = str_replace($copyText, '<code>' . $copyText . '</code>', $text);
}

    
              $editedText = str_replace(['+', '،'], '', $editedText);


                if (strpos($text, '+') !== false) {
                    $editedText .= "\n#عدم";
                }





              // $day = (int) $day;
            
            // حذف آخرین سطر در پیام جدید
           // $text = removeLastLine($text);

          //  $text .= "\n$day $month"; // افزودن روز و ماه به انتهای متن


function getLastLine($text) {
    $lines = explode("\n", trim($text));
    return end($lines);
}


$day = jDateTime::date('j', time(), false);
$month = jDateTime::date('F', time(), false);

// حذف تاریخ قدیمی اگر به‌صورت عدد و ماه در پایان آمده
$text = preg_replace('/\n\d{1,2}\s+(فروردین|اردیبهشت|خرداد|تیر|مرداد|شهریور|مهر|آبان|آذر|دی|بهمن|اسفند)$/u', '', $text);

// اگر #عدم در متن نیست، اضافه کن قبل از تاریخ جدید






if (strpos($text, '#عدم') === false) {
    $text .= "\n$day $month";

    $lastLine = getLastLine($text);
    $text = removeLastLine($text);
    $text .= "\n#عدم";
    $text .= "\n" . $lastLine;
} else {
    // فقط تاریخ جدید رو اضافه کن
    $text .= "\n$day $month";
}



            sendMessage($text, $channelId, $apiUrl);

            // حذف پیام جدید
            $deleteUrl = $apiUrl . "deleteMessage?chat_id=$chatId&message_id=$messageId";
            file_get_contents($deleteUrl);
        }
    }
    
    
    //*******************************
    //*******************************
    
}

?>