<?php
## Changing credits indicates failure
## Only those without ethics change my credits
## @SeroBots - @iT_bero

$API_KEY = "7998437771:AAFl8NiNOUouPpNXdSb4wjqkjZtaTFxh7TY";

define('API_KEY', $API_KEY);
define("IDBot", explode(":", $API_KEY)[0]);
echo file_get_contents("https://api.telegram.org/bot" . API_KEY . "/setwebhook?url=" . $_SERVER['SERVER_NAME'] . "" . $_SERVER['SCRIPT_NAME']);

function bot($method, $datas = []) {
    $url = "https://api.telegram.org/bot" . API_KEY . "/" . $method;

    $mh = curl_multi_init();

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($datas));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']);

    curl_multi_add_handle($mh, $ch);

    $running = null;
    do {
        curl_multi_exec($mh, $running);
        curl_multi_select($mh);
    } while ($running > 0);

    $res = curl_multi_getcontent($ch);

    curl_multi_remove_handle($mh, $ch);
    curl_close($ch);
    curl_multi_close($mh);

    if ($res === FALSE) {
        return json_encode(['error' => 'Request failed']);
    } else {
        return json_decode($res);
    }
}

$usrbot = bot("getme")->result->username;
$emoji = "➡️
🎟️
↪️
🔘
🏠";

$emoji = explode("\n", $emoji);
$b = $emoji[rand(0, 4)];
$NamesBACK = "Back $b";

define("USR_BOT", $usrbot);

function SETJSON($INPUT) {
    if ($INPUT != NULL || $INPUT != "") {
        $F = "xC.json";
        $N = json_encode($INPUT, JSON_PRETTY_PRINT);

        file_put_contents($F, $N);
    }
}

$update = json_decode(file_get_contents('php://input'));

if ($update->message) {
    $message = $update->message;
    $message_id = $message->message_id;
    $username = $message->from->username;
    $chat_id = $message->chat->id;
    $title = $message->chat->title;
    $text = $message->text;
    $user = $message->from->username;
    $name = $message->from->first_name;
    $from_id = $message->from->id;
}

$xC = json_decode(file_get_contents("xC.json"), true);

if ($update->callback_query) {
    $data = $update->callback_query->data;
    $chat_id = $update->callback_query->message->chat->id;
    $title = $update->callback_query->message->chat->title;
    $message_id = $update->callback_query->message->message_id;
    $name = $update->callback_query->message->chat->first_name;
    $user = $update->callback_query->message->chat->username;
    $from_id = $update->callback_query->from->id;
}

$update = json_decode(file_get_contents('php://input'));
if ($update->message) {
    $message = $update->message;
    $message_id = $update->message->message_id;
    $username = $message->from->username;
    $chat_id = $message->chat->id;
    $title = $message->chat->title;
    $text = $message->text;
    $user = $message->from->username;
    $name = $message->from->first_name;
    $from_id = $message->from->id;
}

if ($update->callback_query) {
    $data = $update->callback_query->data;
    $chat_id = $update->callback_query->message->chat->id;
    $title = $update->callback_query->message->chat->title;
    $message_id = $update->callback_query->message->message_id;
    $name = $update->callback_query->message->chat->first_name;
    $user = $update->callback_query->message->chat->username;
    $from_id = $update->callback_query->from->id;
}

function decodeUnicode($text) {
    $text = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($matches) {
        return mb_convert_encoding(pack('H*', $matches[1]), 'UTF-8', 'UCS-2BE');
    }, $text);

    return $text;
}

function processText($text) {
    $text = decodeUnicode($text);
    $text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
    return $text;
}

function GPT($text) {
    $url = "https://aichat.youxiong.win/askai";
    $data = json_encode([
        "stream" => true,
        "uuid" => "and@chatAI2@c5fd42b0-f1ae-4828-b50d-5a56d22a3ab2",
        "session_id" => "and@chatAI2@c5fd42b0-f1ae-4828-b50d-5a56d22a3ab2_1721700709796",
        "message" => $text,
        "history" => [],
        "sign" => "2eb974addb19d63918e102d66c2ceefd"
    ]);

    $headers = [
        'User-Agent: Dalvik/2.1.0 (Linux; U; Android 12; SM-A025F Build/SP1A.210812.016)',
        'Accept: text/event-stream',
        'Accept-Encoding: gzip',
        'Content-Type: application/json; charset=utf-8'
    ];

    $mh = curl_multi_init();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = '';
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($curl, $data) use (&$response) {
        $response .= $data;
        return strlen($data);
    });

    curl_multi_add_handle($mh, $ch);

    $running = null;
    do {
        curl_multi_exec($mh, $running);
        curl_multi_select($mh);
    } while ($running > 0);

    curl_multi_remove_handle($mh, $ch);
    curl_close($ch);
    curl_multi_close($mh);

    $response = str_replace("data:", "", $response);
    $response = trim($response); 

    $messages = explode("\n", $response);

    $results = [];
    foreach ($messages as $message) {
        $message = trim($message);
        if (strpos($message, '"message":"') !== false) {
            $message = substr($message, strpos($message, '"message":"') + 11);
            $message = substr($message, 0, strpos($message, '"'));
            $results[] = $message;
        }
    }

    $results = implode("", $results);

    $aray = ["OpenAI", "BotPress",'\n','\u0026',''.$vb.''];
    $afay = ["Sero Team", "Sero Team","\n",'&','<'];
    $results = str_replace($aray, $afay, $results);
    
    return processText($results);
}
    
// AI Translation Feature Removed

if ($text != "/start") {
    if ($data) {
        die();
    }
    
    $coder = rand(999999, 99999999);

    if ($update->message->sticker) {
        $text = $update->message->sticker->emoji;
    }

    $hp = bot("sendMessage", [
        "chat_id" => $chat_id,
        "text" => "📝",
        "parse_mode" => "Markdown",
    ]);

    $ch = GPT($text);
    bot('EditMessageText', [
        'chat_id' => $chat_id,
        'message_id' => $hp->result->message_id,
        'text' => $ch,
        "parse_mode" => "Markdown",
        'reply_markup' => json_encode([
            'inline_keyboard' => [
                [["text" => "Cᴀʟʟ Mᴇ Bʜᴀʙɪ 🦋", "callback_data" => "https://t.me/l_abani"]],
            ]
        ])
    ]);

    $xC[$coder] = $ch;
    SETJSON($xC);
} else {
    bot("sendMessage", [
        "chat_id" => $chat_id,
        "text" => "*- Welcome to the AI Bot 🫧* 
I'm developed by [Bero](t.me/iT_BerO). I answer all your questions ✨
What would you like to ask?",
        "parse_mode" => "Markdown",
        "disable_web_page_preview" => true,
        'reply_markup' => json_encode([
            'inline_keyboard' => [
                [["text" => "Bot Channel", "url" => "t.me/SeroBots"]],
            ]
        ])
    ]);
}
