Перейти к публикации

Бот API VimeWorld VK


Рекомендованные сообщения

Опубликовано:

апи вайма не показывает точное местоположение модератора, мб он играет в такой же режим как  и я, какой смысл?

Просто предупреждает, что в вашу мини-игру зашёл модер (Мб и следит) и что вы должны быть осторожны в юзанье софта.

Опубликовано:

-NEW-


Получение информации о топе в мини-играх 


UcRQHK2.png


Ссылка: https://yadi.sk/d/5LlxCk0ufTwBbQ


Vtotal: https://www.virustotal.com/#/file/67a229473892e09c1e1c0a32dd9d24678444b5ba705a2d526820d98ee6b66b39/detection


 Исходник(DevelNext): https://yadi.sk/d/0db_BMRr_RxWWg


Плюсы программы:


-Жрёт мало трафика


-Не нужно заходить в браузер


-Любое(почти) количество записей (от 15 до 1000)


Минусы программы:


-Нету дизайна


-Туча говно-кода


-Неудобно располагаются строчки (Легко решить, но мне лень c:)

  • 2 недели спустя...
Опубликовано:

---===NEW===---

Получение информации о игроке в VK

 

До первого запроса:

uNeDGXx.png

 

После 1 запроса:

iCOvmIY.png

YvgirsB.png

Исходник(DEVELNEXT): https://yadi.sk/d/-eY6gegSGfY9yA

Программа: https://yadi.sk/d/fjswBStElbxtYQ

Код самой функции:

function doButtonClickLeft(UXMouseEvent $e = null)
{
VK::longPollConnect(function ($updates) { //Подключаемся с лонгполу
foreach ($updates as $update) {
if($update[6]) {
$peer_id = $update[3];
$body = explode(" ", $update[6]);

if (str::contains($body[0], 'Инфа,')) { //Проверяем будет ли в сообщениях слово 'Инфа,'
$this->edit->text = $body[0]; //Если есть то в edit вбиваем фулл сообщение
$string = $this->edit->text; //в $string заносим данные из edit
$newString = str::replace($string, 'Инфа,', ''); //Заменяем 'Инфа,' для получения ника
$string5 = $newString; //Хз зачем это но есть))
$hh = str::trim($string5); //Попытка убрать пробелы но что-то не удалось ;D
$this->textArea->text = ''; //Очищаем поле для текста
$response = $this->httpClient->get("https://api.vime.world/user/name/". $hh); //Берём информацию о игроке исходя из полученной информации из сообщения
$out = $response->body(); 
if ($out == ''){ //Проверяем сообщение
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => 'Игрок не найден в базе данных']); // Если ник не найден в API то пишется это
} else { if ($out[0]['guild']["name"] == ''){ //Если найден то след.проверка на наличие гильдии, если нет то дальше
$arr = [
'---===Статистика игрока===---', 
'[' . $out[0]["rank"] . '] ' . $out[0]["username"], 
'Номер аккаунта (ID) - ' . $out[0]["id"], 
'Уровень - ' . $out[0]["level"],
'Гильдия отсутствует',
];
$this->textArea->text = Str::join($arr, "\n"); //Заносим информацию в textArea
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea->text]); //Отправляем информацию обратно тому, кто написал
} else { //Если гильдия найдена то дальше
$arr = [
'---===Статистика игрока===---',
'[' . $out[0]["rank"] . '] ' . $out[0]["username"],
'Номер аккаунта (ID) - ' . $out[0]["id"],
'Уровень - ' . $out[0]["level"],
'--Гильдия игрока--',
'Название гильдии - ' . $out[0]['guild']["name"],
'ID гильдии - ' . $out[0]['guild']["id"],
'Уровень гильдии - ' . $out[0]['guild']["level"],
];
$this->textArea->text = Str::join($arr, "\n");  //Заносим информацию в textArea
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea->text]); //Отправляем сообщение с данными обратно тому, кто отправил запрос боту
}
}
}

         }
            }
        });
    }


}

 

Опубликовано:

 

---===NEW===---

Получение информации о игроке в VK

 

До первого запроса:

uNeDGXx.png

 

После 1 запроса:

iCOvmIY.png

YvgirsB.png

Исходник(DEVELNEXT): https://yadi.sk/d/-eY6gegSGfY9yA

Программа: https://yadi.sk/d/fjswBStElbxtYQ

Код самой функции:

function doButtonClickLeft(UXMouseEvent $e = null)

{

VK::longPollConnect(function ($updates) { //Подключаемся с лонгполу

foreach ($updates as $update) {

if($update[6]) {

$peer_id = $update[3];

$body = explode(" ", $update[6]);

 

if (str::contains($body[0], 'Инфа,')) { //Проверяем будет ли в сообщениях слово 'Инфа,'

$this->edit->text = $body[0]; //Если есть то в edit вбиваем фулл сообщение

$string = $this->edit->text; //в $string заносим данные из edit

$newString = str::replace($string, 'Инфа,', ''); //Заменяем 'Инфа,' для получения ника

$string5 = $newString; //Хз зачем это но есть))

$hh = str::trim($string5); //Попытка убрать пробелы но что-то не удалось ;D

$this->textArea->text = ''; //Очищаем поле для текста

$response = $this->httpClient->get("https://api.vime.world/user/name/". $hh); //Берём информацию о игроке исходя из полученной информации из сообщения

$out = $response->body(); 

if ($out == ''){ //Проверяем сообщение

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => 'Игрок не найден в базе данных']); // Если ник не найден в API то пишется это

} else { if ($out[0]['guild']["name"] == ''){ //Если найден то след.проверка на наличие гильдии, если нет то дальше

$arr = [

'---===Статистика игрока===---', 

'[' . $out[0]["rank"] . '] ' . $out[0]["username"], 

'Номер аккаунта (ID) - ' . $out[0]["id"], 

'Уровень - ' . $out[0]["level"],

'Гильдия отсутствует',

];

$this->textArea->text = Str::join($arr, "\n"); //Заносим информацию в textArea

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea->text]); //Отправляем информацию обратно тому, кто написал

} else { //Если гильдия найдена то дальше

$arr = [

'---===Статистика игрока===---',

'[' . $out[0]["rank"] . '] ' . $out[0]["username"],

'Номер аккаунта (ID) - ' . $out[0]["id"],

'Уровень - ' . $out[0]["level"],

'--Гильдия игрока--',

'Название гильдии - ' . $out[0]['guild']["name"],

'ID гильдии - ' . $out[0]['guild']["id"],

'Уровень гильдии - ' . $out[0]['guild']["level"],

];

$this->textArea->text = Str::join($arr, "\n");  //Заносим информацию в textArea

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea->text]); //Отправляем сообщение с данными обратно тому, кто отправил запрос боту

}

}

}

         }
            }
        });
    }

}

 

 

А если я изменил код на свой, как мне сделать что бы сама программа изменилась и при запуске не через DevelNext она была такой же как я её делал?

Опубликовано:

А если я изменил код на свой, как мне сделать что бы сама программа изменилась и при запуске не через DevelNext она была такой же как я её делал?

Ответил в вк)

Опубликовано: (изменено)

---===Обновление===---

-Добавил 2 функции:

--Информация о гильдии по ID

--Статус игрока (Онлайн/Не онлайн)

-Изменил все команды на вид 'команда*информация' для API

X8gaGqe.pnguADP6aR.png

Ссылка на программу: https://yadi.sk/d/J6Gq_adequi2mw

Ссылка на исходник(DevelNext):https://yadi.sk/d/m6TFoXgxYTEnrg

Код 2-х новых функций:

if (str::contains($body[0], '/guild*')) { //Проверяем слово
$this->edit->text = $body[0];
$string = $this->edit->text;
$hh = str::replace($string, '/guild*', ''); //убираем это слово оставляя другие
$content228 = fs::get('https://api.vime.world/guild/get?id='. $hh); //берём данные с api для проверки
if ($content228 == '{"error":{"error_code":12,"error_msg":"Guild not found"}}'){
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => 'Гильдия в базе данных не найдена']);
} else {
$result = Json::decode(file_get_contents('https://api.vime.world/guild/get?id='. $hh)); //если проверку прошли то берём нормально
$res = $result;
if ($res['tag'] == '') { //ещё одна проверка на тэг)
$this->listView->items->clear();
$perks = $result['perks'];
$this->listView->items->add('Тэг отсутствует. ' . $res['name']);
$this->listView->items->add('Уровень: ' . $res['level']);
$this->listView->items->add('Внесено коинов: ' . $res['totalCoins'])
$this->listView->items->add('Перк(Участники): ' . $perks['MEMBERS']['name'] . '. Уровень: ' . $perks['MEMBERS']['level']);
$this->listView->items->add('Перк(Коины): ' . $perks['COINS']['name'] . '. Уровень: ' . $perks['COINS']['level']);
$this->listView->items->add('Перк(Группы): ' . $perks['PARTY']['name'] . '. Уровень: ' . $perks['PARTY']['level']);
$this->listView->items->add('Перк(Приветственное сообщение): ' . $perks['MOTD']['name'] . '. Уровень: ' . $perks['MOTD']['level']);
$this->listView->items->add('Перк(Тэг): ' . $perks['TAG']['name'] . '. Уровень: ' . $perks['TAG']['level']);
$this->listView->items->add('Перк(Цвет): ' . $perks['COLOR']['name'] . '. Уровень: ' . $perks['COLOR']['level']);
$this->listView->items->add('Перк(Войны): ' . $perks['GUILD_WAR']['name'] . '. Уровень: ' . $perks['GUILD_WAR']['level']);
$this->listView->items->add('Подробнее: https://vimetop.ru/guild/'. $hh);
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->listView->itemsText]); //берём нужную информацию без тэга и отсылаем
} else {
$this->listView->items->clear();
$perks = $result['perks'];
$this->listView->items->add('[' . $res['tag'] . '] ' . $res['name']);
$this->listView->items->add('Уровень: ' . $res['level']);
$this->listView->items->add('Внесено коинов: ' . $res['totalCoins'])
$this->listView->items->add('Перк(Участники): ' . $perks['MEMBERS']['name'] . '. Уровень: ' . $perks['MEMBERS']['level']);
$this->listView->items->add('Перк(Коины): ' . $perks['COINS']['name'] . '. Уровень: ' . $perks['COINS']['level']);
$this->listView->items->add('Перк(Группы): ' . $perks['PARTY']['name'] . '. Уровень: ' . $perks['PARTY']['level']);
$this->listView->items->add('Перк(Приветственное сообщение): ' . $perks['MOTD']['name'] . '. Уровень: ' . $perks['MOTD']['level']);
$this->listView->items->add('Перк(Тэг): ' . $perks['TAG']['name'] . '. Уровень: ' . $perks['TAG']['level']);
$this->listView->items->add('Перк(Цвет): ' . $perks['COLOR']['name'] . '. Уровень: ' . $perks['COLOR']['level']);
$this->listView->items->add('Перк(Войны): ' . $perks['GUILD_WAR']['name'] . '. Уровень: ' . $perks['GUILD_WAR']['level']);
$this->listView->items->add('Подробнее: https://vimetop.ru/guild/'. $hh);
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->listView->itemsText]);//берём нужную информацию с тэгом и отсылаем
}
}
}
if (str::contains($body[0], '/active*')) { //Проверяем сообщение со словом /active*
$this->edit->text = $body[0];
$string = $this->edit->text;
$hh = str::replace($string, '/active*', ''); //убираем это слово и оставляем те, которые после него
$response = $this->httpClient->get("https://api.vime.world/user/name/". $hh); //берём данные с API
$out = $response->body();
$this->textArea3->text = '';
$arr = [
$out[0]['id'], //Берём ID с функции
];
$this->textArea3->text = Str::join($arr, "\n");
$response = $this->httpClient->get("https://api.vime.world/user/session/". $this->textArea3->text); //Вставляем ID в нужный API (Тот нужен был чтобы ID не вводить)
$out = $response->body();
$this->textArea3->text = '';
$arr = [
'[' . $out[0]['rank'] . '] ' . $out[0]['username'],
'ID: ' . $out[0]['id'],
'Уровень: ' . $out[0]['level'],
'Статус: ' . $out[0]['online']['message'], //Берём нужную информацию
];
$this->textArea3->text = Str::join($arr, "\n");
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea3->text]); //Передём
}

 

Не стал делать на последней функции проверку на подлинность ника (Если существует то выдаёт инфу, если нет то нет, просто если не будет - выдаст пустые значение ID:, Уровень:, Статус: =))

UPD функция с проверкой:

if (str::contains($body[0], '/active*')) {
$this->edit->text = $body[0];
$string = $this->edit->text;
$hh = str::replace($string, '/active*', '');
$response = $this->httpClient->get("https://api.vime.world/user/name/". $hh);
$out = $response->body();
$this->textArea3->text = '';
$arr = [
$out[0]['id'],
];
$this->textArea3->text = Str::join($arr, "\n");
if ($this->textArea3->text == ''){
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => 'Такой ник не найден в базе данных']);
} else {
$response = $this->httpClient->get("https://api.vime.world/user/session/". $this->textArea3->text);
$out = $response->body();
$this->textArea3->text = '';
$arr = [
'[' . $out[0]['rank'] . '] ' . $out[0]['username'],
'ID: ' . $out[0]['id'],
'Уровень: ' . $out[0]['level'],
'Статус: ' . $out[0]['online']['message'],
];
$this->textArea3->text = Str::join($arr, "\n");
VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea3->text]);
}
}

 

Изменено пользователем Sergey1337
Опубликовано:

 

---===Обновление===---

-Добавил 2 функции:

--Информация о гильдии по ID

--Статус игрока (Онлайн/Не онлайн)

-Изменил все команды на вид 'команда*информация' для API

X8gaGqe.pnguADP6aR.png

Ссылка на программу: https://yadi.sk/d/J6Gq_adequi2mw

Ссылка на исходник(DevelNext):https://yadi.sk/d/m6TFoXgxYTEnrg

Код 2-х новых функций:

if (str::contains($body[0], '/guild*')) { //Проверяем слово

$this->edit->text = $body[0];

$string = $this->edit->text;

$hh = str::replace($string, '/guild*', ''); //убираем это слово оставляя другие

$content228 = fs::get('https://api.vime.world/guild/get?id='. $hh); //берём данные с api для проверки

if ($content228 == '{"error":{"error_code":12,"error_msg":"Guild not found"}}'){

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => 'Гильдия в базе данных не найдена']);

} else {

$result = Json::decode(file_get_contents('https://api.vime.world/guild/get?id='. $hh)); //если проверку прошли то берём нормально

$res = $result;

if ($res['tag'] == '') { //ещё одна проверка на тэг)

$this->listView->items->clear();

$perks = $result['perks'];

$this->listView->items->add('Тэг отсутствует. ' . $res['name']);

$this->listView->items->add('Уровень: ' . $res['level']);

$this->listView->items->add('Внесено коинов: ' . $res['totalCoins'])

$this->listView->items->add('Перк(Участники): ' . $perks['MEMBERS']['name'] . '. Уровень: ' . $perks['MEMBERS']['level']);

$this->listView->items->add('Перк(Коины): ' . $perks['COINS']['name'] . '. Уровень: ' . $perks['COINS']['level']);

$this->listView->items->add('Перк(Группы): ' . $perks['PARTY']['name'] . '. Уровень: ' . $perks['PARTY']['level']);

$this->listView->items->add('Перк(Приветственное сообщение): ' . $perks['MOTD']['name'] . '. Уровень: ' . $perks['MOTD']['level']);

$this->listView->items->add('Перк(Тэг): ' . $perks['TAG']['name'] . '. Уровень: ' . $perks['TAG']['level']);

$this->listView->items->add('Перк(Цвет): ' . $perks['COLOR']['name'] . '. Уровень: ' . $perks['COLOR']['level']);

$this->listView->items->add('Перк(Войны): ' . $perks['GUILD_WAR']['name'] . '. Уровень: ' . $perks['GUILD_WAR']['level']);

$this->listView->items->add('Подробнее: https://vimetop.ru/guild/'. $hh);

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->listView->itemsText]); //берём нужную информацию без тэга и отсылаем

} else {

$this->listView->items->clear();

$perks = $result['perks'];

$this->listView->items->add('[' . $res['tag'] . '] ' . $res['name']);

$this->listView->items->add('Уровень: ' . $res['level']);

$this->listView->items->add('Внесено коинов: ' . $res['totalCoins'])

$this->listView->items->add('Перк(Участники): ' . $perks['MEMBERS']['name'] . '. Уровень: ' . $perks['MEMBERS']['level']);

$this->listView->items->add('Перк(Коины): ' . $perks['COINS']['name'] . '. Уровень: ' . $perks['COINS']['level']);

$this->listView->items->add('Перк(Группы): ' . $perks['PARTY']['name'] . '. Уровень: ' . $perks['PARTY']['level']);

$this->listView->items->add('Перк(Приветственное сообщение): ' . $perks['MOTD']['name'] . '. Уровень: ' . $perks['MOTD']['level']);

$this->listView->items->add('Перк(Тэг): ' . $perks['TAG']['name'] . '. Уровень: ' . $perks['TAG']['level']);

$this->listView->items->add('Перк(Цвет): ' . $perks['COLOR']['name'] . '. Уровень: ' . $perks['COLOR']['level']);

$this->listView->items->add('Перк(Войны): ' . $perks['GUILD_WAR']['name'] . '. Уровень: ' . $perks['GUILD_WAR']['level']);

$this->listView->items->add('Подробнее: https://vimetop.ru/guild/'. $hh);

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->listView->itemsText]);//берём нужную информацию с тэгом и отсылаем

}

}

}

if (str::contains($body[0], '/active*')) { //Проверяем сообщение со словом /active*

$this->edit->text = $body[0];

$string = $this->edit->text;

$hh = str::replace($string, '/active*', ''); //убираем это слово и оставляем те, которые после него

$response = $this->httpClient->get("https://api.vime.world/user/name/". $hh); //берём данные с API

$out = $response->body();

$this->textArea3->text = '';

$arr = [

$out[0]['id'], //Берём ID с функции

];

$this->textArea3->text = Str::join($arr, "\n");

$response = $this->httpClient->get("https://api.vime.world/user/session/". $this->textArea3->text); //Вставляем ID в нужный API (Тот нужен был чтобы ID не вводить)

$out = $response->body();

$this->textArea3->text = '';

$arr = [

'[' . $out[0]['rank'] . '] ' . $out[0]['username'],

'ID: ' . $out[0]['id'],

'Уровень: ' . $out[0]['level'],

'Статус: ' . $out[0]['online']['message'], //Берём нужную информацию

];

$this->textArea3->text = Str::join($arr, "\n");

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea3->text]); //Передём

}

 

Не стал делать на последней функции проверку на подлинность ника (Если существует то выдаёт инфу, если нет то нет, просто если не будет - выдаст пустые значение ID:, Уровень:, Статус: =))

UPD функция с проверкой:

if (str::contains($body[0], '/active*')) {

$this->edit->text = $body[0];

$string = $this->edit->text;

$hh = str::replace($string, '/active*', '');

$response = $this->httpClient->get("https://api.vime.world/user/name/". $hh);

$out = $response->body();

$this->textArea3->text = '';

$arr = [

$out[0]['id'],

];

$this->textArea3->text = Str::join($arr, "\n");

if ($this->textArea3->text == ''){

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => 'Такой ник не найден в базе данных']);

} else {

$response = $this->httpClient->get("https://api.vime.world/user/session/". $this->textArea3->text);

$out = $response->body();

$this->textArea3->text = '';

$arr = [

'[' . $out[0]['rank'] . '] ' . $out[0]['username'],

'ID: ' . $out[0]['id'],

'Уровень: ' . $out[0]['level'],

'Статус: ' . $out[0]['online']['message'],

];

$this->textArea3->text = Str::join($arr, "\n");

VK::Query('messages.send', ['peer_id' => $peer_id, 'message' => $this->textArea3->text]);

}

}

 

 

А почему вместо "Пробела" -> "*"

Опубликовано: (изменено)

Она в оффлайне может работать

И типо в чём тут смысл, если она будет работать офлайн как она будет взаимодействовать с api, бред какой-то.

Изменено пользователем QuickSilver
Опубликовано:

---Final(Скорее всего :) )---


Собрал все функции в одну программу


Все команды этой версии (Скорее всего финальной)


"Команды" - показывает команды


"/friends*nick" - показывает друзей игрока


"/ip*ip" - показывает информацию об IP (Просто решил вставить)


"/active*nick" - даёт информацию о онлайне игрока (Онлайн или нет, если онлайн то где находится)


"/guild*id" - даёт информацию о гильдии исходя из её ID


"/nick*nick" - даёт информацию о игроке


"/online" - показывает онлайн на сервере (Как общий так и на всех мини-играх по отдельности)


"/staff" - показывает модераторов онлайн


"/streams" - показывает включенные стримы


<><><><><><><><><><>


Нововведения:


-Добавил возможность узнавать информацию из API с токеном (300 запросов в минуту будет лимит)


В программе должно работать, но это не точно)


<><><><><><><><><><>


Ссылка на исходник(DevelNext)Тык по мне


Ссылка на программу: Тык по мну


==================================


Сразу задаю вопрос, что мне делать в дальнейшем? (Какой софт)

  • 4 месяца спустя...
  • 1 год спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...