Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- #if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; }
- ini_set('error_reporting', 'off');
- include "vk_api.php";
- mb_internal_encoding("UTF-8");
- date_default_timezone_set("Europe/Moscow");
- const VK_KEY = "fghfghfgh"; // Токен сообщества
- const ACCESS_KEY = "fghfghfgh"; // Тот самый ключ из сообщества
- const VERSION = "5.103"; // Версия API V
- $vk = new vk_api(VK_KEY, VERSION); // создание экземпляра класса работы с api, принимает токен и версию api
- $data = json_decode(file_get_contents('php://input')); //Получает и декодирует JSON пришедший из ВК
- if ($data->type == 'confirmation') { //Если vk запрашивает ключ
- exit(ACCESS_KEY); //Завершаем скрипт отправкой ключа
- }
- $vk->sendOK(); //Говорим vk, что мы приняли callback
- $pdo = new PDO('mysql:host=localhost;dbname=fghfghfgh;charset=utf8', 'fghfghfgh', 'fghfghfgh');
- $peer_id = $data->object->message->peer_id;// Узнаем ID пользователя, кто написал нам
- $chat_id = $peer_id - 2000000000;
- $from_id = $data->object->message->from_id;// Узнаем ID юзера
- $message = $data->object->message->text;// Само сообщение от юзера
- $id = $data->object->message->from_id;// Узнаем ид пользователя который отправляет
- $time2 = date('d-m-Y H:i:s');
- $callchat = 2000000003; // Чат, где логируются действия в боте.
- if (isset($data->object->message->payload)) { //получаем payload
- $payload = json_decode($data->object->message->payload, true); // Декодируем в JSON формат
- } else {
- $payload = null; // Иначе кнопок нет
- }
- $payload = $payload['command']; // $payload = название нашей кнопки
- $infuser = $pdo->query("select * FROM fghfghfghWHERE user = '" . $id . "' and peer = '" . $id . "'")->fetch(PDO::FETCH_ASSOC);
- const BTN_ADMIN = [["command" => 'btn_admin'], "Позвать администратора", "blue"];
- const BTN_EXAMPLE = [["command" => 'btn_example'], "Примеры ботов", "red"];
- const BTN_MENU = [["command" => 'btn_menu'], "Меню", "green"];
- const BTN_ACCESS = [["command" => 'btn_access'], "Подтвердить", "green"];
- if ($data->type == 'message_new') { // Создаем проверку на новое сообщение и вызываем кнопки
- $getuserid = $pdo->query("SELECT user,peer FROM fghfghfghWHERE user='" . $id . "' AND peer = $peer_id")->fetch(PDO::FETCH_NUM);
- if (empty($getuserid[0])) {
- $userInfo = $vk->request("users.get", ["user_ids" => $id, "fields" => 'domain']);
- $userJson = json_decode($userInfo, true);
- $firstname = $userJson['response']['0']['first_name'];
- $lastname = $userJson['response']['0']['last_name'];
- $domainuser = $userJson['response']['0']['domain'];
- $sql = "INSERT INTO fghfghfgh(user, peer, name, surname) VALUES ('$id', '$peer_id', '$firstname', '$lastname')";
- $pdo->prepare($sql)->execute([$user, $firstname, $lastname, $surname]);
- }
- if ($data->object->message->action->type == 'chat_invite_user') {
- $useradd = $data->object->message->action->member_id;
- if ($useradd < 0) {
- $vk->kick($chat_id, "$useradd");
- $vk->kick($chat_id, "$id");
- $vk->sendMessage($peer_id, "Пользователь и сообщество исключены из беседы по причине добавления сообщества в официальную беседу LCC Studio. Это запрещено правилами.");
- }
- }
- if ($infuser[adminask] == '1') {
- exit();
- }
- $messageid = $data->object->conversation_message_id; // id сообщения
- $vk->sendMessage(2000000002, "MSGID: " . $messageid . "\nCHATID: " . $peer_id . "\nMSG: " . $message . "
- #USERID - vk.com/id" . $id . " ($infuser[name] $infuser[surname])
- #DATE - " . $time2 . "");
- if ($message == 'Начать' or $payload == 'btn_menu') {
- $vk->sendButton($peer_id, "Начинаем!
- Список команд отображен на кнопках:
- 1 -- Вызвать администрацию: Вызываете администрацию и Вы можете договориться о покупке
- 2 -- Примеры: Можете посмотреть на примеры ботов", [[BTN_ADMIN, BTN_EXAMPLE]]);
- $pdo->prepare("UPDATE fghfghfgh SET module='menu' WHERE peer = $peer_id AND user = $id")->execute();
- }
- if ($payload == 'btn_admin') {
- if ($id !== $peer_id) {
- $vk->sendMessage($peer_id, "Вызвать администрацию можно только через личные сообщения");
- } else {
- $vk->sendButton($peer_id, "Подтвердите вызов администрации
- Внимание! Вызов просто так карается блокировкой в группе.", [[BTN_ACCESS, BTN_MENU]]);
- }
- }
- if ($payload == 'btn_access') {
- $vk->sendButton($peer_id, "Мы вызвали администрацию. В данный момент не будет вам отвечать бот на ваши запросы", [[BTN_MENU]]);
- $pdo->prepare("UPDATE fghfghfgh SET adminask='1' WHERE peer = '$id'")->execute();
- $vk->sendMessage(230558063, "Вас вызвали в военкомат: vk.com/gim190927715?sel=$id");
- }
- if ($payload == 'btn_example') {
- $vk->sendMessage($peer_id, "LeetProject: @leetproject
- LCC Studio: @lcc_studio [Бот, которым Вы на данный момент пользуетесь]");
- }
- if ($infuser[admin] == 1) {
- if (mb_strtolower($message) == 'пред') {
- $answer = $data->object->message->reply_message->from_id;
- if ($infuser[warns] == '2') {
- $vk->sendMessage($peer_id, "@id$answer (Пользователь) получил 3/3 предупреждений.
- Если пользователь получает 3 предупреждения -- пользователь исключается");
- $vk->sendMessage($peer_id, "@id$answer (Пользователь) исключен из беседы по причине получения 3 предупреждения");
- $vk->kick($chat_id, "$resend");
- $pdo->prepare("UPDATE fghfghfgh SET warns='0' WHERE user = $answer and peer = $answer")->execute();
- } else {
- $wanrs = $infuser[warns]+1;
- $vk->sendMessage($peer_id, "@id$answer (Пользователь) получил $warns/3 предупреждений.
- Если пользователь получает 3 предупреждения -- пользователь исключается");
- $pdo->prepare("UPDATE fghfghfgh SET warns=(warns+1) WHERE user = $answer AND peer = $answer")->execute();
- }
- }
- }
- }
- if ($data->type == 'message_reply') {
- if ($message == 'Завершить') {
- $vk->sendMessage($peer_id, "Администрация завершила с Вами.
- Если у Вас нет кнопки на выход в меню, напишите следующим сообщением <<Начать>>");
- $pdo->prepare("UPDATE fghfghfgh SET adminask='0' WHERE user = $peer_id and user = $id")->execute();
- }
- if ($message == 'Выключить') {
- $vk->sendMessage($peer_id, "Администрация отключила возможность боту отвечать на ваши запросы.
- Скорее всего, у Вас сейчас будет разговор с администрацией");
- $pdo->prepare("UPDATE fghfghfgh SET adminask='1' WHERE user = $peer_id and user = $id")->execute();
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement