<?php
date_default_timezone_set("asia/tehran");
$date = date("Y-m-d");
$time = date("H:i:s");
$timeNow = time();
include_once'config.php';
include_once'Functions/functions.php';
include_once'KeyBoard/keyboard.php';
//ini_set('error_logs', 'off');
error_reporting(E_ERROR);
/*
نویسنده : 
@SeniorMehdy
اپن شده در :
@MahdyBots
اگر برای ناموست ارزش قائلی منبع بزن
*/
//==========================  update  ==============================
$update = json_decode(file_get_contents('php://input'));
$callback_query_id = $update->callback_query->id ?? null;
$data       = $update->callback_query->data ?? null;
$message_id = $update->message->message_id ?? $update->callback_query->message->message_id;
$text       = convert($update->message->text) ?? null;
$chat_id    = $update->message->chat->id ?? $update->callback_query->message->chat->id;
$type       = $update->message->chat->type ?? $callback_query->message->chat->type;
$first_name = $update->message->from->first_name ?? $callback_query->message->chat->first_name;
$from_id    = $update->message->from->id ?? $update->callback_query->from->id;
$user       = mysqli_fetch_assoc(mysqli_query($connect, "SELECT * FROM `user` WHERE `id` = '$from_id' LIMIT 1"));
$block      = mysqli_query($connect, "SELECT * FROM `block` WHERE `id` = '$from_id' LIMIT 1");

if(in_array($from_id, $developers))
{
    bot('sendmessage', ['chat_id' => $chat_id, 'text' => "starting..."]);
}
//===========================// block //===========================
Spam($from_id);
if (strpos($text, '#') !== false or strpos($text, '"') !== false or strpos($text, '*') !== false or strpos($text, '<?') !== false or strpos($text, '{') !== false or strpos($text, "'") !== false)
{
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
    bot('sendmessage', ['chat_id' => $admin[0], 'text' => "🚨 تشخیص کد مخرب 🚨 
ارسال کننده :
 <code>$chat_id</code>
متن :
. . . . . . . . . . 
<code>$text</code>
. . . . . . . . . . ", 'parse_mode' => 'html' ]);
    exit(false);
}
if (mysqli_num_rows($block) > 0) exit(false);
//===========================//data//==============================
/*
نویسنده : 
@SeniorMehdy
اپن شده در :
@MahdyBots
اگر برای ناموست ارزش قائلی منبع بزن
*/
elseif ($data === 'join')
{
    if (check_join("$from_id") == 'true')
    {
        bot('sendmessage', ['chat_id' => $chat_id, 'text' => "☑️ عضویت شما در کانال تایید شد

به ربات Instagram Downloader خوش آمدید ❤️

لطفا لینک پست، ریلز یا استوری مورد نظرتونو از اینستاگرام کپی کرده و اینجا بفرستید
تا براتون دانلود شه 🌹", 'reply_to_message_id' => $messageid, 'reply_markup' => $home]);
    } elseif (check_join("$from_id") != 'true') bot('answercallbackquery', ['callback_query_id' => $callback_query_id, 'text' => "❌ هنوز داخل کانال عضو نیستی", 'show_alert' => true]);
}
//===========================================
elseif($text === '/start')
{
	bot('sendmessage',['chat_id'=>$from_id,'text'=>"🌹 سلام $first_name عزیز به $botname خوش آمدید

لینک مورد نظر خود جهت دانلود ارسال کنید  👇🏿",'reply_to_message_id'=>$message_id,'reply_markup' => json_encode(['KeyboardRemove' => [], 'remove_keyboard' => true])]);
if($user['id'] != true) $connect->query("INSERT INTO `user` (`id` , `started`) VALUES ('$from_id' , '$date | $time')");
$connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
}
//===========================// back //===========================
elseif ($text === '🔙 بازگشت')
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "⬅️ به منوی اصلی بازگشتید
	
در صورتی که سوال و یا مشکلی دارید میتواند از طریق بخش پشتیبانی مطرح کنید❤️", 'reply_to_message_id' => $message_id, 'reply_markup' => $home]);
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
}
//===========================// join //===========================
elseif (check_join("$from_id") != 'true')
{
    if ($user['id'] != true) $connect->query("INSERT INTO `user` (`id` , `started`) VALUES ('$from_id' , '$date | $time')");
    is_join("$from_id");
}
//========================== // key // ==============================
elseif (preg_match('/^https(.*)/', $text) && $type === 'private')
{
    // $countRequest = mysqli_fetch_array(mysqli_query($connect,"select count(*) from `request` where `userId` = '$from_id' and `result` = 1 and `datetime` >= date_sub(now(), interval 1 minute);"))[0];
    // if(in_array($from_id, $developers)) {
    //         bot('sendmessage',['chat_id'=>$from_id,'text'=> "countRequest: " . print_r($countRequest, true)]);
    // }
    
    if (($timeNow - $user['time']) >= 60 || in_array($from_id, $developers)) //if ($countRequest < 5)
    {
        bot('sendChatAction', ['chat_id' => $from_id, 'action' => 'upload_video']);
        
        $INSTA = ['ok' => 0]; // -1: invalid url , 0: api error , 1: api ok
        
        // from cache
        
        if(in_array($from_id, $developers)) {
            bot('sendmessage',['chat_id'=>$from_id,'text'=> "from_Cache:?"]);
        }
        
        $baseUrl = explode('?', $text, 2)[0];
        $apiCache = mysqli_fetch_assoc(mysqli_query($connect, "select * from `cache` where `link` = '$baseUrl' and `date_insert` >= date_sub(now(), interval 5 day) limit 1;"));

        if($apiCache != null) {
            if(in_array($from_id, $developers)) {
                bot('sendmessage',['chat_id'=>$from_id,'text'=> print_r($apiCache, true)]);
            }
            
            $result = $apiCache['result'];
            $INSTA = json_decode($result,true);
            
            $connect->query("INSERT INTO `request` (`userId` , `url` , `datetime` , `result`, `api_name`) VALUES ('$from_id' , '$baseUrl' , now() , 1, 'cache')");
            
            if(in_array($from_id, $developers)) {
                bot('sendmessage',['chat_id'=>$from_id,'text'=> "from_Cache:1"]);
            }
        }
        
        // from apis
        $apis = [
            //'codesazan_p1s1' => "INRE_codesazan.php?p=1&s=1",
            //'codesazan_p2s2' => "INRE_codesazan.php?p=2&s=2", 
            //'hajiapi' => "INRE_hajiapi.php?", 
            'oneapi' => "INRE_oneapi.php?",
            ]; 
            
        foreach ($apis as $api => $apiAddress) {
            if($INSTA['ok'] == 1) break;
            
            if(in_array($from_id, $developers)) {
                bot('sendmessage',['chat_id'=>$from_id,'text'=> "from_${api}:?"]);
            }
            
            $result = files_get(Domin ."api/${apiAddress}&url=" . $text);

            if(in_array($from_id, $developers)) {
                bot('sendmessage',['chat_id'=>$from_id,'text'=> $result]);
            }
            
            $INSTA = json_decode($result, true);
            
            $connect->query("INSERT INTO `request` (`userId` , `url` , `datetime` , `result`, `api_name`) VALUES ('$from_id' , '$baseUrl' , now() , '${INSTA['ok']}', '${api}')");
            
            $result = str_replace("\\n", " ", $result);
            if($INSTA['ok'] == 1 && $INSTA['Results']['number'] >= 0) {
                if($apiCache != null)
                    $connect->query("UPDATE `cache` SET `api_name` = '${api}', `date_insert` = now(), `result` = '$result' WHERE `link` = '$baseUrl' LIMIT 1");
                else
                    $connect->query("INSERT INTO `cache` (`api_name`, `link` , `date_insert` , `result`) VALUES ('${api}', '$baseUrl', now(), '$result')");
                    
                if(in_array($from_id, $developers)) {
                    bot('sendmessage',['chat_id'=>$from_id,'text'=> "from_${api}:1"]);
                }
            }
        }
        
        if(in_array($from_id, $developers)) {
            bot('sendmessage',['chat_id'=>$from_id,'text'=> "sending result:?"]);
        }
        // send result files
        if($INSTA['ok'] == 1)
        {
            for($x = 0; $x <= $INSTA['Results']['number']; $x++) 
            {
                if(in_array($from_id, $developers)) {
                    bot('sendmessage',['chat_id'=>$from_id,'text'=> "sending ${x}: \r\nlink: " . $INSTA['Results'][$x]['link'] . " \r\ncaption: " . $INSTA['Results'][$x]['caption']]);
                }
                
                $c = bot('sendDocument', ['chat_id' => $from_id, 'document' => $INSTA['Results'][$x]['link'], 'caption' =>
                    $INSTA['Results'][$x]['caption'].
"
➖➖➖➖➖➖➖➖
📥 دانلود رایگان فیلم و سریال‌های ایرانی 

 در کانال فیلیمو 📺

🎬 @FilimoUp
➖➖➖➖➖➖➖➖
📥 @$usernamebot", ]);
            }

            
//             bot('sendmessage', ['chat_id' => $from_id, 'text' => "🔲 تور بزرگ قونیه ( ترکیه )
// بزرگداشت مولانا


// جهت دريافت آخرين پكيج هاي آذر ماه 
// با شماره هاى زير تماس بگيريد

// 021-43926

// 09121437184 


// https://t.me/KonyaKonya" ]);
            
        } else bot('sendmessage', ['chat_id' => $from_id, 'text' => "404 ! Not Found !" ]);
        
        $connect->query("UPDATE `user` SET `step` = 'none', `time` = '$timeNow' WHERE `id` = '$from_id' LIMIT 1");
    } else bot('sendmessage', ['chat_id' => $from_id, 'text' => "لطفا صبر کنید ! بعد از ارسال هر لینک یک دقیقه مکث کنید 🙏" ]);
}
//-----------------------------------------------------------------------
elseif ((substr($text, 0, 9) == "delcache:" or substr($text, 0, 9) == "remcache:" or substr($text, 0, 9) == "cachedel:" or substr($text, 0, 9) == "cacherem:") and in_array($from_id, $developers))
{
    $cacheId = mysqli_real_escape_string($connect, trim(substr($text, 9)));
    $connect->query("DELETE FROM `cache` WHERE `id` = ${cacheId} limit 1");
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "CacheId ${cacheId} Deleted." ]);
}
//===========================// panel admin //===========================
elseif (($text === '/panel' and $type === 'private') and in_array($from_id, $admin))
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "📍 ادمین عزیز به پنل مدریت ربات خوش امدید", 'reply_markup' => $panel ]);
}
elseif ($text === 'برگشت 🔙' and $type === 'private' and in_array($from_id, $admin))
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "📍 به منوی مدیریت بازگشتید", 'reply_markup' => $panel ]);
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
}
elseif ($text === '📊  آمار ربات' and $type === 'private' and in_array($from_id, $admin))
{
    $alluser = mysqli_num_rows(mysqli_query($connect, "select `id` from `user`"));
    $load = sys_getloadavg();
    $ver = phpversion();
    $domin = $_SERVER['SERVER_NAME'];
    $ChannelsCount = count($Channels);
    $adminCount = count($admin);
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "➕➖➖➖➖➖➖➖➖➕
🤖 آمار ربات شما در تاریخ $date و ساعت $time :
		
👤 تعداد کاربران : $alluser
👨🏻‍💻 تعداد ادمین ها  : $adminCount
📢 تعداد کانال های جویین اجباری : $ChannelsCount
📡 لود سرور : $load[0]
🐘 نسخه php سرور : $ver
🌐 دامنه ی ربات : $domin
➕➖➖➖➖➖➖➖➖➕", ]);
}
elseif ($text === '📬 ارسال به کاربران' and $type === 'private' and in_array($from_id, $admin))
{
    $send = mysqli_fetch_assoc(mysqli_query($connect, "SELECT * FROM `sendall` LIMIT 1"));
    if (!isset($send['text']))
    {
        bot('sendmessage', ['chat_id' => $from_id, 'text' => "📍 لطفا متن یا رسانه خود را ارسال کنید [میتواند شامل عکس باشد]  همچنین میتوانید رسانه را همراه با کپشن [متن چسبیده به رسانه ارسال کنید]", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
        $connect->query("UPDATE `user` SET `step` = 'sendtoall' WHERE `id` = '$from_id' LIMIT 1");
    } else bot('sendmessage', ['chat_id' => $from_id, 'text' => "پیام در صف ارسال قرار دارد لطفا صبر کنید!!!!!", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
}
/*
نویسنده : 
@SeniorMehdy
اپن شده در :
@MahdyBots
اگر برای ناموست ارزش قائلی منبع بزن
*/
elseif ($text === '📫 فروارد به کاربران' and $type === 'private' and in_array($from_id, $admin))
{
    $send = mysqli_fetch_assoc(mysqli_query($connect, "SELECT * FROM `sendall` LIMIT 1"));
    if (!isset($send['text']))
    {
        bot('sendmessage', ['chat_id' => $from_id, 'text' => "📍 لطفا پیام خود را فوروارد کنید [پیام فوروارد شده میتوانید از شخص یا کانال باشد]", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
        $connect->query("UPDATE `user` SET `step` = 'fortoall' WHERE `id` = '$from_id' LIMIT 1");
    } else bot('sendmessage', ['chat_id' => $from_id, 'text' => "پیام در صف ارسال قرار دارد لطفا صبر کنید!!!!!", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
}
elseif ($text === '⛔️ مسدود کردن' and $type === 'private' and in_array($from_id, $admin))
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "📍 لطفا شناسه کاربری فرد را ارسال کنید", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
    $connect->query("UPDATE `user` SET `step` = 'block' WHERE `id` = '$from_id' LIMIT 1");
}
elseif ($text === '✅  لغو مسدودیت' and $type === 'private' and in_array($from_id, $admin))
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "📍 لطفا شناسه کاربری فرد را ارسال کنید", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
    $connect->query("UPDATE `user` SET `step` = 'unblock' WHERE `id` = '$from_id' LIMIT 1");
}
elseif ($text === '📢 مدیریت چنل ها' and $type === 'private' and in_array($from_id, $admin))
{
    bot('sendmessage', ['chat_id' => $chat_id, 'text' => "برای مدیریت چنل ها از دکمه پایین استفاده کنید", 'reply_markup' =>json_encode(['inline_keyboard' => [[['text' => '📢', 'web_app' => ['url' => 'https://' . Domin . 'channels/chManage.php']]]]])]);
    $connect->query("UPDATE `user` SET `step` = 'sendpmuser' WHERE `id` = '$from_id' LIMIT 1");
}
elseif ($text === '📨 پیام به کاربر' and $type === 'private' and in_array($from_id, $admin))
{
    bot('sendmessage', ['chat_id' => $chat_id, 'text' => "📍 لطفا در خط اول آیدی عددی کابر و در خط بعدی پیام خود را ارسال کنید
مثال
1100991740
hello !", 'reply_markup' => json_encode(['keyboard' => [[['text' => "برگشت 🔙"]]], 'resize_keyboard' => true]) ]);
    $connect->query("UPDATE `user` SET `step` = 'sendpmuser' WHERE `id` = '$from_id' LIMIT 1");
}
/*
نویسنده : 
@SeniorMehdy
اپن شده در :
@MahdyBots
اگر برای ناموست ارزش قائلی منبع بزن
*/
//===========================// admin step //===========================
elseif ($user['step'] === 'block' && $type === 'private' && $text != 'برگشت 🔙')
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "✅ فرد با موفقیت مسدود شد", ]);
    $connect->query("INSERT INTO `block` (`id`) VALUES ('$text')");
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
}
elseif ($user['step'] === 'unblock' && $type === 'private')
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "✅ فرد با موفقیت لغو مسدودیت شد", ]);
    $connect->query("DELETE FROM `block` WHERE `id`='$text'");
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
}
elseif ($user['step'] === 'sendpmuser' && $text != 'برگشت 🔙')
{
    $all = explode("\n", $text);
    bot('sendmessage', ['chat_id' => $chat_id, 'text' => "پیام با موفقیت ارسال شد ✅", ]);
    bot('sendmessage', ['chat_id' => $all[0], 'text' => "پاسخ پشتیبانی برای شما 📮:
➕➖➖➖➖➖➖➕
{$all[1]}
{$all[2]}
{$all[3]}
➕➖➖➖➖➖➖➕
@$usernamebot
@$usernamesup", ]);
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
}
/*
نویسنده : 
@SeniorMehdy
اپن شده در :
@MahdyBots
اگر برای ناموست ارزش قائلی منبع بزن
*/
elseif ($user['step'] === 'sendtoall' && $text != 'برگشت 🔙')
{
    $photo = $update->message->photo[count($update->message->photo) - 1]->file_id;
    $caption = $update->message->caption;
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "✔️ پیام شما با موفقیت برای ارسال همگانی تنظیم شد", ]);
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
    $connect->query("UPDATE `sendall` SET step = 'send' , `text` = '$text$caption' , `chat` = '$photo' LIMIT 1");
}
elseif ($user['step'] === 'fortoall' && $text != 'برگشت 🔙')
{
    bot('sendmessage', ['chat_id' => $from_id, 'text' => "✔️ پیام شما با موفقیت به عنوان فوروارد همگانی تنظیم شد", ]);
    $connect->query("UPDATE `user` SET `step` = 'none' WHERE `id` = '$from_id' LIMIT 1");
    $connect->query("UPDATE `sendall` SET `step` = 'forward' , `text` = '$message_id' , `chat` = '$from_id' LIMIT 1");
}
?>