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

IDragonKingI

Игрок
  • Публикаций

    9
  • Зарегистрирован

  • Посещение

Изменения репутации

  1. Вышка
    IDragonKingI изменил репутацию defracted в VimeStats | Очередной сайт по просмотру статистики   
    Всем доброго времени суток! Я разработчик такого проекта, как "VimeStats" - это веб-сайт.
     
    Как вообще появился такой сайт? При каких обстоятельствах?
    Если честно, то я не преследовал цели создать проект для просмотра статистики игроков VimeWorld, нет. Данный проект я начал разрабатывать скорее для себя, для своего удобства. Да и вообще, изначально мне было интересно разобраться с фреймворком ReactJS и ещё с парой интересностей, связанных с серверной частью. Я посчитал, что создание подобного сайта поможет мне понять и определить то, что мне интересно в сфере разработки. Так уж вышло, что VimeWorld API мне знаком и я решил остановиться на нём :) Какие есть преимущества над уже существующими проектами?
    Это довольно хороший вопрос! На своём сайте я решил добавить раздел, где вы бы могли смотреть последние снятия/принятия на должность, смотреть более подробную статистику по некоторым режимам (мотемотичка спосеба).  Ну и конечно - open-source. Да-да, весь проект, все исходники вы сможете найти на GitHub! При большом желании, вы можете даже поучаствовать в разработке.   
    Немного скриншотиков
     
     


    Разработчики

    Я - Defracted


    Контрибьюторы

    Владик - Vlad_Cyphersky


    Планы
     
     

    Ссылки

    VimeStats: перейти по ссылке
    GitHub: перейти по ссылке
     
    Всем спасибочки за внимание! Буду рад вашим предложениям :)
     
  2. Вышка
    IDragonKingI изменил репутацию BedGun в GUI | Moderator MG 2.0 (Очень офигенная версия).   
  3. Вышка
    IDragonKingI изменил репутацию Charkos0ff в [Гайд] Создание ботов для ВКонтакте, а также работа с API VimeWorld   
    Краткая информация:
    Python - это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.
     
    Подготовка:
    Прежде всего, нужно включить LongPool в вашей группе (смотрите спойлер).

     
    Теперь, давайте создадим проект/папку для нашего проекта. А в ней - bot.py
     
    Начинаем кодить:
    Для начала, давайте установим нужные нам пакеты.
    Библиотека для работы с ВК API
    python -m pip install vk_apiДля работы с интернетом:
    python -m pip install requestsВвести эти две команды можно в IDE, или консоле (cmd).
     
    Приступим к самому коду!
     
    Импортируем библиотеки
    import requests import vk_api from vk_api.longpoll import VkLongPoll, VkEventTypeИ вставляем этот код, содержащий функцию отправки сообщения и авторизацию в Апи
    def send_message(user_id, message): vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': 0}) # Ключ доступа к сообществу token = "aeb83497cbdbb6f2d2eadce6b474d2637b4c8350bdec4818acc237221513a257f7b016d3a415536664f91" vk = vk_api.VkApi(token=token) data = VkLongPoll(vk) Далее, можем написать и обработчик команд. Состоять он будет из цикла, проверки новых событий и простого обработчика команд
    for event in data.listen(): # Если пришло новое сообщение if event.type == VkEventType.MESSAGE_NEW: if event.to_me: text = event.text text = text.split() if text[0] == "/help": send_message(event.user_id, "Доступные команды:\n/stats < ник > - просмотр статистики игроков") В итоге ваш код должен выглядеть так:
    import requests import vk_api from vk_api.longpoll import VkLongPoll, VkEventType def send_message(user_id, message): vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': 0}) token = "aeb83497cbdbb6f2d2eadce6b474d2637b4c8350bdec4818acc237221513a257f7b016d3a415536664f91" vk = vk_api.VkApi(token=token) data = VkLongPoll(vk) for event in data.listen(): if event.type == VkEventType.MESSAGE_NEW: if event.to_me: text = event.text text = text.split() if text[0] == "/help": send_message(event.user_id, "Доступные команды:\n\n/stats < ник > - просмотр статистики игроков") Пожалуй, теперь стоит запустить этот Python файл
     
    Важно! Если вы это ранее не сделали, то включите сообщения сообщества!
     
    Если вы всё сделали правильно и вам не выдало никаких ошибок, то тогда давайте напишем нашему боту "/help".

     
     
    Собственно если вы получили такое сообщение, то можем начинать работать с самим API. 
     
    Работа с API:
    Для получения информации об игроке мы будем использовать библиотеку requests.
     
    Давайте добавим новую команду - /stats. Для этого перейдем в обработчик команд и вставим под ифом с "/help" этот текст:
    #или если текст равен /stats elif text[0] == "/stats": send_message(event.user_id, "Тестовая команда") Теперь, можем наконец-то поработать с апи. Перед send_message добавим подключение к нему
    response = requests.get(f'https://api.vimeworld.ru/user/name/{text[1]}').json()[0]Но не стоит забывать, про обработку ответа от сервера. Поэтому, нужно создать условие:
    #если айди равен чему-то if response['id']: #создаем переменную с данными игрока player = f"Профиль игрока: {response['username']}\nРанг: {response['rank']}" #иначе else: #создаем переменную с ошибкой player = f"Такого игрока не существует!" Теперь переменная player является нашим текстом для ответа, поэтому изменяем строчку с send_message на эту:
    send_message(event.user_id, player)И в окончании данного этапа, давайте перезапустим бота (сохранив пред этим файлик) и напишем боту "/stats barahag"

     Теперь, как насчет добавления новой информации в нашу команду?
    Давайте зайдем в официальную документацию к апи (ну или под спойлер), и посмотрим, какую информацию предоставляет нам VimeWorld

     
     
    Для гильдии можно написать простой обработчик:
    if response['guild']: guild = response['guild']['name'] else: guild = "Отсутствует" А так же как и в PHP, стоило бы преобразовать наигранное время в человеческий вид:
    days = str(response['playedSeconds']/60/60/24).split(".")[0] hour = str(response['playedSeconds']/60/60%24).split(".")[0] min = str(response['playedSeconds']/60%60).split(".")[0] sec = str(response['playedSeconds']%60).split(".")[0] В конце же, давайте изменим значение переменной:
    player = f"Профиль игрока: {response['username']}" \ f"\nРанг: {response['rank']}" \ f"\nГильдия: {guild}" \ f"\nПроведено в игре: {days} дн. {hour} ч. {min} мин. {sec} сек." Новые команды:
    Но зачем ограничиваться только статистикой? Давайте также добавим две новые команды: /staff и /streams.
     
    В отличие от "/stats", здесь мы должны подключиться один раз к апи и работать с информацией в цикле.
     
    /streams:
    elif text[0] == "/streams" or text[0] == "/стримы": response = requests.get(f'https://api.vimeworld.ru/online/streams').json() count = len(response) s = -1; if count > 1: while s != count: s += 1 time1 = str(response[s]['duration'] / 60 / 60 / 24).split(".")[0] time2 = str(response[s]['duration'] / 60 / 60 % 24).split(".")[0] time3 = str(response[s]['duration'] / 60 % 60).split(".")[0] time4 = str(response[s]['duration'] % 60).split(".")[0] streams = streams + f"{response[s]['title']}\nСтример: {response[s]['owner']} \nЗрителей: {response[s]['viewers']}\nСсылка: {response[s]['url']}\nСтрим идёт: {time1} дн. {time2} ч. {time3} мин. {time4} сек.\n" send_message(event.user_id, f"Стримы в данный момент:{streams}\nВсего стримов: {count}") else: send_message(event.user_id, f"Стримы в данный момент:\n\nВсего стримов: {count}") /staff:
    elif text[0] == "/staff" or text[0] == "/модеры": requests.get(f'https://api.vimeworld.ru/online/staff').json() count = len(response) moders = "" if count > 1: for i in range(0, count): if response[i]['rank'] == 'MODER': rank = '[Модер]' if response[i]['rank'] == 'WARDEN': rank = '[Пр.Модер]' if response[i]['rank'] == 'CHIEF': rank = '[Гл.Модер]' moders += f"\n{rank} {response[i]['username']}" send_message(event.user_id, f"Модераторы в сети:\n{moders}\n\nВсего Модераторов: {count}") else: send_message(event.user_id, f"На данный момент модерация в сети отсутствует") После добавления новых команд, весь ваш код должен выглядеть так:

     Поздавляю! Теперь у вас есть бот способный показывать модераторов, стримы и статистику игроков!
  4. Вышка
    IDragonKingI изменил репутацию Charkos0ff в [Гайд] Создание ботов для ВКонтакте, а также работа с API VimeWorld   
    Общая информация
    API (Application Programming Interface) - составляющая часть сервера, которая получает запросы и отправляет ответы.
    У VimeWorld'а тоже присутствует публичный апи. С помощью него мы можем просмотреть статистику любого игрока, стримы в данный момент, последние матчи на сервере, или например модераторов в сети.
     
    Подготовка
    Для создания бота в ВК присутствует несколько видов апи: CallBack (для PHP) и LongPool (для остальных языков). Основная разница в том, что CallBack будет отправлять нам события. А LongPool же сам обращается к серверам.
    В любом случае для работы бота нам нужен ключ доступа к сообществу. Получить его можно зайдя в настройки группы, и перейдя по этому пути: Настройки->Работа с API. После этого нужно кликнуть на кнопку "Создать ключ" и выдать ему все права.
    В этом гайде будет присутствовать 3 языка программирования: PHP, Python и JavaScript (NodeJS).
     
    Полезные ссылки
    Официальная документация к API VimeWorld - https://vimeworld.github.io/api-docs/ Json Formatter (красивый JSON в браузере) - https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa Бесплатный хостинг (для PHP) - https://beget.com/ru/free-hosting Бесплатный хостинг (для Python и NodeJS) - https://heroku.com/ Python - https://www.python.org/downloads/ NodeJS - https://nodejs.org/en/  
  5. Вышка
    IDragonKingI изменил репутацию barsikus07 в [Гайд] Робота с API через хакерский язык python3   
    Всем привет перейду сразу к делу
    (Текст цвета мочи для хакеров если вы не хакер нечитайте текст цвета мочи!!!)
    Хакеры могут устонавить пакетный менегер chocolatey (хз чтоита сами гуглите)
    Научу вас делать зломы хаки короче програмы все мы к ним привыкли да
    1) Скачайте змея по ссылке этой и установите (не меняйте галочки при установке) (для хакеров команда choco install python в powershell)...
    2) Советую скачать также блокнот какойнибудь типа notepad++ или вообше ide какую нибудь хацкерскую... (впринипе с питонексом идет свой блокнот так что можно пропустить) (choho install pycharm)
    3) Чо там дальше ахда на робочем столе создаете файлик "название.py" вот вам экзампл
     
    дальше открывайте любой удобный вам лист бумаги (блокнот ну да) я юзаю vscode
    тем кто ничего не устанавливал можно сделать пкм (не буду говорить что такое пкм загуглите -_-) и там будет чтото типа Edik with IDLE вот на нее кликните да
    4) пишем код
    ну вы вроде уже умеете писать теперь просто после каждого слова можете писать что вы програмист после этого шага поехали короче
    ах да забыл сказать вам нужно будет прописать одну компнду в командной скроке она открывается так

    вот и там пишете эта 
     
    pip install requestsу меня установлена поэтому у меня пишет что установлена у вас оно установится и дальше переъодим к нашему блакноту

    так вот открыли блокнот и нам надо чтобы код брал ту штуку что мы установили пишем в коде
     
    import requests вот теперь мы этай штукай будет получать данные переходим на сайт станицу в фармате http  вимворд ап и
    ссылка на антон.апи теперь что делать? теперь читаем что хотим делать ктсати советую заметить что аватары апи предлагают использовать сайт 
    https://api.vimeworld.ru/ его и будет использовать (блин его все используют бедный сайт)
    теперь делаем наше тело програмы (вам придется работать с голым телом)
    пишем чо хотим узнать дляэтого на сайте с апи смотрим метод например я хачю палучить списак матчией играка для этого нам нужно посмотреть какие параметры принимает нужный метод

    ага вот эти... так нас надо айди по нику узнать точна узнаем в этом методи

    вот там надо получить айди вобщем алгаритм понятен теперь давайте перейлем к прописанию програмы пишем такую штуку как переменную которая у нас будет считываться с консоли вот так
     
    nick = input("введи ник ало: ") вот теперь нам нужно сделать реквест на сервер хз чтоита такое вобщем пишем такую штуку
     
    igrok = requests.get(f'https://api.vime.world/user/name/{nick}') обьясняю один раз слушать внимательно!!! мы получили (get) информацию об игроке с ником nick который мы ввели раньше доэтава
    теперь давайте ее напечатаем для это нам понадобится принтер
     
    print(igrok.text) если мы просто напечатаем igrok нам напечатает статус запроса не заморачивайтесь ок?
    теперь сделаем вконце какойнибудь инпут чтобы нажа програма не закрылась мгновенно
     
    input("нажмите альтф4 чтобы выйти...") вот посмотрим шо получилось
    import requests nick = input("введи ник ало: ") igrok = requests.get(f'https://api.vime.world/user/name/{nick}') print(igrok.text) input("нажмите альтф4 чтобы выйти...") воу теперь запустим 2 раза лкм по файлику anton.py или как вы его там обозвали


    кстати если мы зайдем на сайт "https://api.vime.world/user/name/ник"вот пример  https://api.vime.world/user/name/barsikus07 то получим тоже самое витоге
    вау вы хакер блин оно в какомто непонятном виде но айди мы видим. этот тип файла называется json джейсон короче и нам нада его прочитать и достать айды
    для этого вместо текста напишем джейсон вопщем щас напишу поймете 
     
    igrok_id = requests.get(f'https://api.vime.world/user/name/{nick}').json()[0]["id"] теперб обьясню мы можем получить информацию о нескольких игроках за запрос но мы делаем это только для одного соответственно в джейсоне у нас 1 элемент (он массив короче погуглите короче на информатике в 5ом класе рассказывают)
    вот мы короче обращаемся к нему(у массивов нумерация с 0 начинаеца) вот и берем параметр с ключом id все просто и понятно если вы сопоставите то что нам дала програма и то что я написал щас значит запустим и посмотрим что выведет незабываем писать принтер)))
    вот шо получилос
     
    import requests nick = input("введи ник ало: ") igrok = requests.get(f'https://api.vime.world/user/name/{nick}') print(igrok.text) igrok_id = requests.get(f'https://api.vime.world/user/name/{nick}').json()[0]["id"] print(igrok_id) input("нажмите альтф4 чтобы выйти...") и запускаем (я думою вы умеите я же говорил вам...)
    и теперь у нас вывело то что выводило раньше (потому что мы это не убрали) и ниже наш айди вот

    отлична значит в переменной igrok_id у нас айди отлично теперь вспоминаем то апи которое чтобы получить матчи
    оно принимает параметр айди игрока и необязательные параметры кол-ва матчей и оффсета (сложное слово короче это отступ чтобы последние матчи пролистать)
    думаем думаем и формируем воттакой запрос count это количество я хачю 3
     
    matchi = requests.get(f'https://api.vime.world/user/{igrok_id}/matches?count=3').json() и делаем принт какобычно смотрим что получилось
     
    import requests nick = input("введи ник ало: ") igrok_id = requests.get(f'https://api.vime.world/user/name/{nick}').json()[0]["id"] print(igrok_id) matchi = requests.get(f'https://api.vime.world/user/{igrok_id}/matches?count=3').json() print(matchi) input("нажмите альтф4 чтобы выйти...") получили злом хак информацию

    вот наши матчи. теперь сами думайте чо с ними делать, я покажу сложное колдунство на продвинутом рте програмирования смотрите можете пользоваться я разрешаю)))
     
    import requests nick = input("введи ник ало: ") igrok_id = requests.get(f'https://api.vime.world/user/name/{nick}').json()[0]["id"] print(igrok_id) matchi = requests.get(f'https://api.vime.world/user/{igrok_id}/matches?count=50').json() for i in matchi["matches"]: print(f"{i['map']['id']} - {('ПоБеда' if i['win'] else 'Проигрыш or Nichia')}") input("нажмите альтф4 чтобы выйти...") вобщем я сделал цикл который проходится по матчам и печатает карту и смотрет победа или нет все просто и я еще увеличил кол-во матчей до 50 (макс 50)
    вот что получилось...

    если вы хотите научится так-же прогромировать харашо то я рекомендую вам stepik Програмирвоанние на пайтон там все актуально и просто
    вот так на сегодня все всем удачи в програмирование ставвьте лайки подписывайтесь с днем програмиста!!!)))
×
×
  • Создать...