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

API vimeworld'a для обычных игроков =) #1


crypt0x0

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

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

Приветсвие
Всем привет, здраствуйте!!!!!!!! Cегодня вы узнаете:
1. Что такое API и познакомитесь с либо 'requests' на python'e.
2. Научитесь немного пользоваться либо "requests"
3. Воспользуемся API VimeWorld, и как её использовать для своих целей!


ДИСКЛЕЙМЕР!!!!!
АВТОР ДАННОЙ ТЕМЫ НЕ НЕСЁТ ОТВЕТСВЕННОСТИ ЗА ПОКАЗАННЫЕ ДЕЙСТВИЯ В ЭТОЙ ТЕМЕ!! ТЕМА ИСКЛЮЧИТЕЛЬНО ДЛЯ РАЗВЛЕКАТЕЛЬНЫХ ЦЕЛЕЙ!!!

Немного о API и библиотеке "requests"

API — описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой.

Requests - это HTTP-библиотека для языка программирования Python.

Так-же у ваймворлда есть своё API, что бывает полезным для нас. К примеру можно сделать бота, который будет уведомлять о заходе в гильдию прямо в чат телеграм.

Ссылка на AP
I - *тык*

Приступим к работе

Первым делом, для уменьшения лимита на отправления запросов нам понадобиться получить API ключ разработчика. Для этого заходим на вайм(minigames) и прописываем команду /api dev. Вам отправят примерно такое сообщение:
 

Скрытый текст

Копируем ссылку, заходим в текстовый редактор и стираем всё лишнее. У вас примерно получится такое:
 

Цитата

DBi1Dbpq1VdwlOCkV7S8PQVm75Uq1lP

Теперь заходим в любой текстовый редактор(у меня sublime) и вводим следующее:
 

import requests #Импортируем библиотеку "requests", она по умолчанию устанавливается с python'ом

r = requests.get('https://api.vimeworld.ru/online?Token=DBi1Dbpq1VdwlOCkV7S8PQVm75Uq1lP') # Создаём переменную, для requests выбираем метод get. В скобочки вставляем ссылку 'https://api.vimeworld.ru/'. online - метод, который скажет нам весь онлайн на данный момент. Потом идёт наш токен.

print(r.text) # Выводим информацию в консоль


Первым делом импортируем библиотеку "requests", (import requests). Далее мы создаём переменную, просто написав "r"(или другое что-то), ставим знак "=" и прописываем "request.get('')" В скобочках мы пишем ссылку "https://api.vimeworld.ru/". После слеша "/", мы прописываем ":?(Знак вопроса, после любого метода(разделяет методы и параметры после них. В нашем случае параметр это Токен.))Token=DBi1Dbpq1VdwlOCkV7S8PQVm75Uq1lP(ваш токен)" .Мы подготовили шаблон для взаимодействия с нашим API.


А продолжение будет в следующем уроке. Так же пишите, что ещё добавить. Могу сделать оповещение в бота тг. Жду вашего актива пупсы<3




P.S За пунктуацию и ошибки извиняюсь. *Чмок*

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

Почему в примере ты решил показать именно `r.text`? Ты что, работаешь со строкой вместо массива? Im PrOgRaMeR GoD fRoM gOgle.com

Опубликовано:
1 час назад, ATree4 сказал:

Почему в примере ты решил показать именно `r.text`? Ты что, работаешь со строкой вместо массива? Im PrOgRaMeR GoD fRoM gOgle.com

Незнаю =)

Опубликовано: (изменено)
29.08.2021 в 17:29, crypt0x0 сказал:

Приветсвие
Всем привет, здраствуйте!!!!!!!! Cегодня вы узнаете:
1. Что такое API и познакомитесь с либо 'requests' на python'e.
2. Научитесь немного пользоваться либо "requests"
3. Воспользуемся API VimeWorld, и как её использовать для своих целей!


ДИСКЛЕЙМЕР!!!!!
АВТОР ДАННОЙ ТЕМЫ НЕ НЕСЁТ ОТВЕТСВЕННОСТИ ЗА ПОКАЗАННЫЕ ДЕЙСТВИЯ В ЭТОЙ ТЕМЕ!! ТЕМА ИСКЛЮЧИТЕЛЬНО ДЛЯ РАЗВЛЕКАТЕЛЬНЫХ ЦЕЛЕЙ!!!

Немного о API и библиотеке "requests"

API — описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой.

Requests - это HTTP-библиотека для языка программирования Python.

Так-же у ваймворлда есть своё API, что бывает полезным для нас. К примеру можно сделать бота, который будет уведомлять о заходе в гильдию прямо в чат телеграм.

Ссылка на AP
I - *тык*

Приступим к работе

Первым делом, для уменьшения лимита на отправления запросов нам понадобиться получить API ключ разработчика. Для этого заходим на вайм(minigames) и прописываем команду /api dev. Вам отправят примерно такое сообщение:
 

  Показать содержимое

Копируем ссылку, заходим в текстовый редактор и стираем всё лишнее. У вас примерно получится такое:
 

Теперь заходим в любой текстовый редактор(у меня sublime) и вводим следующее:
 

import requests #Импортируем библиотеку "requests", она по умолчанию устанавливается с python'ом

r = requests.get('https://api.vimeworld.ru/online?Token=DBi1Dbpq1VdwlOCkV7S8PQVm75Uq1lP') # Создаём переменную, для requests выбираем метод get. В скобочки вставляем ссылку 'https://api.vimeworld.ru/'. online - метод, который скажет нам весь онлайн на данный момент. Потом идёт наш токен.

print(r.text) # Выводим информацию в консоль


Первым делом импортируем библиотеку "requests", (import requests). Далее мы создаём переменную, просто написав "r"(или другое что-то), ставим знак "=" и прописываем "request.get('')" В скобочках мы пишем ссылку "https://api.vimeworld.ru/". После слеша "/", мы прописываем ":?(Знак вопроса, после любого метода(разделяет методы и параметры после них. В нашем случае параметр это Токен.))Token=DBi1Dbpq1VdwlOCkV7S8PQVm75Uq1lP(ваш токен)" .Мы подготовили шаблон для взаимодействия с нашим API.


А продолжение будет в следующем уроке. Так же пишите, что ещё добавить. Могу сделать оповещение в бота тг. Жду вашего актива пупсы<3




P.S За пунктуацию и ошибки извиняюсь. *Чмок*

можешь также вместо либы requests использовать aiohttp. Это упростит немного задачу, и можно будет работать с функциями без синхронности (одна за другой).

Скрытый текст
import aiohttp
import asyncio
from rich import print
from rich.console import Console
from rich.traceback import install
install()
console = Console() 

urlOnline = 'https://api.vimeworld.ru/online?token=сюдатокен'
urlLatestMatches = 'https://api.vimeworld.ru/match/latest?token=сюдатокен&count=10'
async def online(): 
    async with aiohttp.ClientSession() as session:
        async with session.get(urlOnline) as response:
            online = (await response.json())['total']
            console.print(f"Онлайн: {online}", style = "bold yellow")

async def onMatches():    
    async with aiohttp.ClientSession() as sess:
        async with sess.get(urlLatestMatches) as res:
            matchesGames = (await res.json())
            for i in matchesGames:
                players = i['players']
                players = "Нет" if players == None else players
                console.print(f"Режим: {i['game']}; Карта: {i['map']['name']}; Игроков: {players}", style = "bold green")

loop = asyncio.get_event_loop()
go = loop.create_task(online())
goMatch = loop.create_task(onMatches())
loop.run_until_complete(go)
loop.run_until_complete(goMatch)

 

Результат:

epjMQPs.png

@crypt0x0, возьми на заметку

UPD: Немного переделал код.

Теперь, если режим будет BP (BlockParty) - то в списке карт будет отображаться слово "Нет".

Скрытый текст

т.к раньше могло вывести aBh08R5.png, если карты нет.

Скрытый текст
import aiohttp
import asyncio
from rich import print
from rich.console import Console
from rich.traceback import install
install()
console = Console() 

urlOnline = 'https://api.vimeworld.ru/online?token=сюдатокен'
urlLatestMatches = 'https://api.vimeworld.ru/match/latest?token=сюдатокен&count=10'
async def online(): 
    async with aiohttp.ClientSession() as session:
        async with session.get(urlOnline) as response:
            online = (await response.json())['total']
            console.print(f"Онлайн: {online}", style = "bold yellow")

async def onMatches():    
    async with aiohttp.ClientSession() as sess:
        async with sess.get(urlLatestMatches) as res:
            matchesGames = (await res.json())
            for i in matchesGames:
                game = i['game']
                maps = i['map']['name']
                players = i['players']
                try:                   
                    console.print(f"Режим: {game}; Карта: {maps}; Игроков: {players}", style = "bold green")
                except TypeError:
                    console.print(f"Режим: {game}; Карта: [bold blue]Нет[/bold blue]; Игроков: {players}", style = "bold green")

loop = asyncio.get_event_loop()
go = loop.create_task(online())
goMatch = loop.create_task(onMatches())
loop.run_until_complete(go)
loop.run_until_complete(goMatch)

 

Результат:

2xMTLpz.png

Больше не буду обновлять код haosVcG.png.

Кому надо - тот воспользуется этим с умом)

Изменено пользователем lucid
Опубликовано:
29.08.2021 в 19:41, ATree4 сказал:

Почему в примере ты решил показать именно `r.text`? Ты что, работаешь со строкой вместо массива? Im PrOgRaMeR GoD fRoM gOgle.com

кто такие 'list' вообще, м??? ахаха

Опубликовано:
03.09.2021 в 18:28, lucid сказал:

Больше не буду обновлять код haosVcG.png.

Кому надо - тот воспользуется этим с умом)

Ладно, я его обновил:

xUcTdYt.png

 

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

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

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

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

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

Войти

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

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

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