Перейти к публикации
View in the app

A better way to browse. Learn more.

VimeWorld - Форум

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VimeWorldGuildChecker [Python]

Featured Replies

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

Всем привет!

Недавно гильдиям исполнилось 3 года и мы с EvilSkyV сделали парсер гильдий для постов одной группы.

 

Сейчас я решил поделиться этим парсером со всеми, чтобы все могли в любой момент узнать всю интересующую их информацию.

 

Ниже будет инструкция по установке парсера.

 

Заходим на оф. сайт Python

Качаем питон

Устанавливаем

Скачиваем файл или открываем текстовый документ и вставляем код ниже (сохранить нужно как угодно, но в конце .py [не русское ру])

Если хотите, можете отредактировать код.

Добавляем Api Dev

Запускаем

Ждем 3-4 часа (можно делать что угодно, но не закрывать файл/консоль/хз где вы будете открывать этот файл)

Профит.

 

Ссылка на файл: *тык*

 

Код:

 

 

#импорт библиотек :)
from requests import get
from time import sleep
#импорт библиотек :)

api = "&token=ВАШ /API DEV ТОКЕН СЮДА" #ваш /api dev токен.

#тип переменные. можно было и без них, но мне так удобнее.
end_line = 0
guilds = 0
errors = 0

total_coins = 0
total_exp = 0

total_players = 0

admin = 0
chief = 0
warden = 0
moder = 0
organizer = 0
dev = 0
youtube = 0
maplead = 0
builder = 0
immortal = 0
holy = 0
premium = 0
vip = 0
players = 0

x = 0

rankss = ["PLAYER", "VIP", "PREMIUM", "HOLY", "IMMORTAL", "BUILDER", "MAPLEAD", "YOUTUBE", "DEV", "ORGANIZER", "MODER", "WARDEN", "CHIEF", "ADMIN"]
rankz = [players, vip, premium, holy, immortal, builder, maplead, youtube, dev, organizer, moder, warden, chief, admin]

#тип переменные. можно было и без них, но мне так удобнее.


while x < 10: #пока гильдии есть.
    x += 1 #прибавляем кол-во гильдий.
    req_guild = get("https://api.vimeworld.ru/guild/get?id=" + str(x) + api).json() #берем инфу с api вайма.

    if "error" in req_guild:                            #тут мы проверяем есть ли ошибка.
        if "error_code" in req_guild["error"]:          #ошибка возникает если гильдия не найдена (удалена/не создана).
            guilds += 1                                 #guilds - кол-во гильдий.
            errors += 1                                 #errors - кол-во ошибок.
            end_line += 1                               #end_line - если слишком много ошибок, то это скорее всего конец списка гильдий. на момент 2020.10.29 их около 30к. Если будет меньше 30к и останавливать программу, вбахайте 200-300.
            if end_line > 100:                          #проверка если это происходит.
                break                                   #блок кода, а следовательно вывод всей инфы ниже.
        else:                                           #бывает также ситуация, когда прокает "error" в нике, названии гильдии или другой фигне и, если 2 уровень проверки дал нам знать, что это не ошибка, продолжаем сбор информации.
            guilds += 1                                 #прибавляем гильдию в общий список.
            total_coins += req_guild["totalCoins"]      #собираем общее кол-во монет.
            total_coins += req_guild["totalExp"]        #собираем общее кол-во опыта.
            total_players += len(req_guild["members"])  #собираем общее кол-во игроков.
            for i in range(len(req_guild["members"])):  #а тут начинаются цыганские фокусы.
                for j in range(len(rankss)):                                 #тут идет проверка на превилегию.
                	if req_guild["members"][i]["user"]["rank"] == rankss[j]: #инфа о игроках с различными привилегиями выведется ниже.
                		rankz[j] += 1
                		
            end_line = 0                                                     #нужно сбросить end_line, чтобы программа не остановилась. мы же не хотим остановиться на 200 или 300 гильдии?
    else:                                                                    #дальше код полностью повторяется, только в случае ниже "error" вообще нигде не присутствует.
        guilds += 1
        total_coins += req_guild["totalCoins"]
        total_exp += req_guild["totalExp"]
        total_players += len(req_guild["members"])
        for i in range(len(req_guild["members"])):
            for j in range(len(rankss)):                                 
                if req_guild["members"][i]["user"]["rank"] == rankss[j]:
                	rankz[j] += 1
        end_line = 0
    print(x)                                                                #тут просто выводится id гильдии. можно поменять x на любую интересующую вас информацию, но учтите, что в erorr нельзя просмотреть название гильдии и другую информацию.
    sleep(.24)                                                              #так как у нас всего 300 запросов в минуту, нам нужно ограничение. 0.24 секунд достаточно
print(f"Всего было создано {str(guilds - end_line)} гильдий.")              #а тут мы просто выводим информацию
print(f"Из них удалено {str(errors - end_line)}.")
print(f"Осталось {str(guilds - errors)} гильдий.")
print(" ")
print(f"За все время было набрано {str(total_exp)} опыта и {str(total_coins)} коинов.")
print(" ")
print(f"На данный момент во гильдиях {str(total_players)} игроков.")
print(f"Из них {str(rankz[0])} Игроков, {str(rankz[0])} VIP, {str(rankz[2])} Premium, {str(rankz[3])} Holy, {str(rankz[4])} Immortal, {str(rankz[5] + rankz[6])} Билдеров, {str(rankz[7])} Ютуберов, {str(rankz[8])} Разработчиков, {str(rankz[9])} Организаторов, {rankz[10]} Модераторов, {rankz[11]} Проверенных модераторов, {rankz[12]} Главных модераторов, {rankz[13]} Админов.")
input() #конец. нажмите "Enter", чтобы закрыть программу. 

 

 

 

Надеюсь вам когда-нибудь понадобится это. Удачи.  :huh:

Изменено пользователем ZrangoYT

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

kGX0LEc.png

услада для глаз

да уж... немного стыдна)

да уж... немного стыдна)

но код изначально делался чисто для меня, поэтому я и позволил себе такую "красоту"

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

да уж... немного стыдна)

но код изначально делался чисто для меня, поэтому я и позволил себе такую "красоту"

очень часто вижу подобное на питоне

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

очень часто вижу подобное на питоне

Потому что дыаааа)

 

через 3-4 часа скину норм код, тк ща в шк

 

Изменено пользователем ZrangoYT

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

Почему-то нет проверки на ошибку связанную с тем, что закончился лимит запросов в минуту, вопрос - почему?

sleep(.24) #так как у нас всего 300 запросов в минуту, нам нужно ограничение. 0.24 секунд достаточно

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

sleep(.24) #так как у нас всего 300 запросов в минуту, нам нужно ограничение. 0.24 секунд достаточно

Всё намного проще, там в заголовках тебе пишет сколько осталось до следующего сбрасывания лимита. Да и если пинга небольшая то 300 запросов быстро выполняются

Изменено пользователем BestPlayTop

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

Всё намного проще, там в заголовках тебе пишет сколько осталось до следующего сбрасывания лимита. Да и если пинга небольшая то 300 запросов быстро выполняются

Ты думаешь я не знаю об этом? Он решил сделать так решение этой проблемы, чем получать заголовок запроса 

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

Ты думаешь я не знаю об этом? Он решил сделать так решение этой проблемы, чем получать заголовок запроса 

А, извиняюсь, не думал что это взято с кода. Тоже такое себе решение этой проблемы на самом деле (это адресованно автору)

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

Всё намного проще, там в заголовках тебе пишет сколько осталось до следующего сбрасывания лимита. Да и если пинга небольшая то 300 запросов быстро выполняются

Хм, хорошая идея. Буду использовать в будущем.

Но мой способ также имеет право на жизнь.

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

Сейчас на странице 0

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

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.