<?php
date_default_timezone_set("asia/tehran");
$date = date("Y-m-d");
$time = date("H:i:s");
$timeNow = time();
$developers=[143242845, 1734375276];
include_once'config.php';
include_once'Functions/functions.php';
include_once'KeyBoard/keyboard.php';
ini_set('error_logs', 'off');
error_reporting(0);
/*
نویسنده : 
@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' => $from_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);
elseif ($data === 'join')
{
    if (check_join("$from_id", $chat_id) == 'true')
    {
        bot('sendmessage', ['chat_id' => $chat_id, 'text' => "☑️ عضویت شما در کانال تایید شد

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

لطفا لینک پست مورد نظرتونو از یوتیوب کپی کرده و اینجا بفرستید
تا براتون دانلود شه 🌹", 'reply_to_message_id' => $messageid, 'reply_markup' => $home]);
    } 
    elseif (check_join("$from_id", $chat_id) != 'true') 
        bot('answercallbackquery', ['callback_query_id' => $callback_query_id, 'text' => "❌ هنوز داخل کانال عضو نیستی", 'show_alert' => true]);
}
//=======================// callback_data download link //=====================
elseif(strpos($data, 'download: ') === 0)
{
    $id = substr($data, strlen('download: '));
    if(in_array($from_id, $developers)) {
        bot('sendmessage', ['chat_id' => $chat_id, 'text' => "download: ".$id]);
    }
    
    $linkInfo = $connect->query("SELECT * FROM `link` WHERE id = '$id'")->fetch_object();
    
    if(in_array($from_id, $developers)) {
        bot('sendmessage', ['chat_id' => $chat_id, 'text' => print_r($linkInfo, true)]);
    }
    
    switch ($linkInfo->type) {
        case 'audio':
            bot('sendChatAction', ['chat_id' => $from_id, 'action' => 'upload_audio']);
            bot('sendmessage', ['chat_id' => $chat_id, 'text' => 'audio:'.$linkInfo->result_link]);
            bot('sendAudio', ['chat_id' => $from_id, 'audio' => $linkInfo->result_link, 'caption' => '']);
            break;
        case 'video':
            bot('sendChatAction', ['chat_id' => $from_id, 'action' => 'upload_video']);
            bot('sendmessage', ['chat_id' => $chat_id, 'text' => 'video:'.$linkInfo->result_link]);
            bot('sendVideo', ['chat_id' => $from_id, 'video' => $linkInfo->result_link, 'caption' => '']);
            break;
        default:
            bot('sendChatAction', ['chat_id' => $from_id, 'action' => 'upload_video']);
            bot('sendVideo', ['chat_id' => $from_id, 'video' => $linkInfo->result_link, 'caption' => '']);
            break;
    }
    
    if(in_array($from_id, $developers)) {
        bot('sendmessage', ['chat_id' => $chat_id, 'text' => "downladed " . $linkInfo->type]);
    }
}
//===========================================
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')
{
    if (($timeNow - $user['time']) >= 60 || in_array($from_id, $developers))
    {
        bot('sendChatAction', ['chat_id' => $from_id, 'action' => 'typing']);
        
        if(in_array($from_id, $developers)) {
            bot('sendmessage', ['chat_id' => $from_id, 'text' => "getFromApi:"]);
        }
        
        $result = files_get(Domin ."api/INRE.php?url=" . $text);
        
        if(in_array($from_id, $developers)) {
            bot('sendmessage',['chat_id'=>$from_id,'text'=> $result]);
        }
        
        $INSTA = json_decode($result,true);
        
        if($INSTA['ok'] == true)
        {
            bot('sendChatAction', ['chat_id' => $from_id, 'action' => 'typing']);
            
            if(in_array($from_id, $developers)) {
                bot('sendmessage',['chat_id'=>$from_id,'text'=> "show buttons:"]);
            }
            
            for($x = 0; $x <= $INSTA['Results']['number']; $x++) 
            {
                $inlineKeyboards = [];
                
                foreach($INSTA['Results'][$x]['links'] as &$link)
                {
                    $connect->query("INSERT INTO `link`(`result_link`, `type`, `date_insert`) VALUES ('".$link['url']."', '".$link['type']."', now())");
                    
                    $inlineKeyboards []= [
                        'text' => $link['title'],
                        'callback_data' => 'download: ' . $connect->insert_id,
                    ];
                }
                
                if(in_array($from_id, $developers)) {
                    bot('sendmessage', ['chat_id' => $chat_id, 'text' => json_encode($inlineKeyboards, true)]);
                }
                
                bot('sendmessage', ['chat_id' => $from_id, 'text' =>  $INSTA['Results'][$x]['caption'].
"
➖➖➖➖➖➖➖➖
وی‌پی‌ان پرسرعت 🚀
پشتیبانی همیشگی👨‍💻
بدون قطعی⚡️
مخصوص ادمین ها و تولید کنندگان محتوا ✍️

🆔 @Farar_VPN
➖➖➖➖➖➖➖➖
📥 @$usernamebot", 
                     'reply_markup' => json_encode(['inline_keyboard' => array_chunk($inlineKeyboards, 2)]),
                    'disable_web_page_preview' => true
                    ]);
                
            }
        } else bot('sendmessage', ['chat_id' => $from_id, 'text' => "404 ! Not Found !" ]);
    } else bot('sendmessage', ['chat_id' => $from_id, 'text' => "لطفا صبر کنید ! بعد از ارسال هر لینک یک دقیقه مکث کنید 🙏" ]);
    $connect->query("UPDATE `user` SET `step` = 'none', `time` = '$timeNow' WHERE `id` = '$from_id' LIMIT 1");
}
// elseif (preg_match('/^download:(.*)/', $text))
// {
//     $url = substr($text, 0, 9);
//     bot('sendDocument', ['chat_id' => $from_id, 'document' => $url]);
// }
//===========================// 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' => "📍 لطفا در خط اول آیدی عددی کابر و در خط بعدی پیام خود را ارسال کنید
مثال
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");
}
