Jump to content
Korean Random

DIVlNATOR

User
  • Content Count

    20
  • Joined

  • Last visited

Everything posted by DIVlNATOR

  1. Из за авторизации через WGApi? Кста раз коснулся токена. Тут разве при авторизации не нужно указать токен? или "-" это как раз запрос на получение нового токена? stat.modxvm.com/ /4.0/getToken/-/7047809506 P.S. Сейчас попытался дернуть что нить через Wgapi на азии - нет ответа.. Хм.. Может с этим связано?
  2. I'm sorry I didn't figure it out right away. It's not about the config, but about the http request. At the entrance to the hangar, as far as I understand, the mod tries to log in .. It's strange that the token is not transmitted (although it may be normal): /4.0/getToken/-/7047809506. Then it receives an http response, but cannot recognize the cp936 encoding. Maybe you'd better not use the DEV version of the mod? And download the standard one: https://dl1.modxvm.com/release/xvm_8.9.4.zip ? (sorry machine translation) P.S. Many thanks to the google translator for the fact that Russian can communicate with Asian. ))
  3. @XU20211108 Мне кажется кто-то сохранил файл конфига не в кодировке UTF-8 with BOM. 在我看来,有人使用 BOM 编码保存了不是 UTF-8 格式的配置文件。抱歉机器翻译 It seems to me that someone saved the config file not in UTF-8 with BOM encoding. Sorry machine translation
  4. Доброго времени суток. Не сходятся значения с моим подсчетом и данными по статистике xvm. Я высчитываю средний уровень техники за бой, используя WGAPI. Сохраняю все танки из метода раздела "Танкопедия" метод "Техника". Беру данные из раздела "Техника игрока" метода "Статистика по технике игрока" поля "tank_id" и "battles". и открываю Stream, в котором делаю mapToInt (грубо превращая объект в число, но не суть). Далее к каждому объекту делаю п.3, п4. Нахожу по "tank_id" из п.1 значение "tier". В случае если я не нахожу танк (тестерский например), то исключаю его, попутно подсчитывая сыгранные на них бои. Перемножаю "battles" на "tier" Результат полученных значений стрима суммирую. Беру данные из раздела "Аккаунты" метод "Персональные данные игрока" из них, только рандомные бои. Вычитаю из п.6 бои на тестерской технике. Результат всего этого: п7 - соответственно, за вычетом тестерских боев - количество боев со статистикой XVM не сходится. средний уровень техники за бой сходится. Если тестерские бои из рандомных не вычитать - то также со статистикой XVM сходится. Вопрос @Mixaill : Как правильно все таки считать?
  5. @дмитрий д в В данный момент наблюдаются проблемы с авторизацией через Wargaming.net OpenID в RU регионе.
  6. Добрый день господа. В связи с тем, что цветовые границы рейтингов меняются каждую неделю, существует ли версия этих данных в формате json которую можно было бы получить http запросом? В исходниках мода (c python не особо) выявил, что мод берет эти данные из конфига. Но заметил, что существует api "static.modxvm.com". Есть ли способ получить эти данные от api? Или есть документация к api? UPD. Спасибо нашел
  7. Поискал на форуме - не смог найти. Как правильно рассчитать рейтинги Wn8 и РЭ по клану? Я попробовал рассчитать среднее значение по всем игрокам, что-то не сходится.... Сравнивал по https://wotlabs.net/ Какие есть ньюансы?
  8. Есть мнение, что если порядка 35 человек не ответит на это сообщение, то акк в бан.
  9. @Ekspoint Спасибо.. Да недавно натолкнулся в исходниках night_dragon_on... Единственное я не понял как работать с кодировкой... В Orione данный фокус норм отрабатывал: string = 'Привет всем!'.decode('cp1251') string.encode("utf-8") После компиляции в названии окошка в боевом клиенте надпись типа "Ppp". В шапке файла стоит указание на кодировку файла... # -*- coding: utf-8 -*- Причем в клан чат пишется все по русски. Не знаю... Может смотрю в сторону того, что нужно найти как подгружаются файлы *.mo. Добавить свой файлик и из него уже забирать фразы.. Но думаю, что есть способ легче)))
  10. @StranikS_Scan Спасибо. Я понял уже... Прочитал про getAttr и setAttr. Попутно просто Python изучаю. Я вот так еще обернул в декоратор: # coding=utf-8 from gui.mods.autumn_core import AutumnEnum # Декоратор для замены методов обьявленного класса # # @Override(Class, 'method') # def test(self, *args) # class Override: __methodType = None __methodName = None __clazz = None MethodType = AutumnEnum(['FUNCTION', 'METHOD', 'STATICMETHOD']) @classmethod def __init__(cls, clazz, method_name, method_type=MethodType.FUNCTION): """ :type clazz: type :type method_name: str :type method_type: MethodType :return None """ cls.__clazz = clazz cls.__methodName = method_name cls.__methodType = method_type @classmethod def __call__(cls, *args, **kwargs): func = args[0] if type(func == 'function'): if cls.__methodType == Override.MethodType.METHOD: cls.__overrideMethod(func) elif cls.__methodType == Override.MethodType.STATICMETHOD: cls.__overrideStaticMethod(func) else: cls.__overrideMethod(func) @classmethod def __override(cls, new_method): if hasattr(cls.__clazz, cls.__methodName): if isinstance(getattr(cls.__clazz, cls.__methodName), property): setattr(cls.__clazz, cls.__methodName, property(new_method)) else: setattr(cls.__clazz, cls.__methodName, new_method) @classmethod def __overrideStaticMethod(cls, new_method): cls.__override(staticmethod(new_method)) @classmethod def __overrideMethod(cls, new_method): cls.__override(classmethod(new_method)) class Test(object): def test(self): return 1234 print Test.test() @Override(clazz=Test, method_name='test') def test2(): return 555 print Test.test()
  11. @Ekspoint Вроде разобрался... Но немного пока для меня это магия, что можно заменить метод инициализированного класса своим методом...
  12. @Ekspoint Спасибо... Еще вот так пробовал, но там нету сеттера: from messenger.storage import storage_getter, ChannelsStorage class ClanChannelCriteria(object): def filter(self, channel): return channel.getName() == '[SPCTE]' storage = storage_getter('channels')() if isinstance(storage, ChannelsStorage): channel = storage.getChannelByCriteria(ClanChannelCriteria()) print channel.getName()
  13. Добрый день товарищи... Python до этого не изучал, многое что не особо понятно после Java. Немного не пойму строчку из мода "mod_versus": old_getFullName = BWChannelEntity.getFullName 1) почему BWChannelEntyty - это статичный класс? 2) почему "getFullName" укзана как переменная, а не метод? 3) а. Если выполнить из PJOrion, то в первом случае исключение: *** NameError: name 'BWChannelEntity' is not defined *** *** <unbound method BWChannelEntity.getFullName> б. А если выполнить как BWChannelEntity.getFullName() то: *** TypeError: unbound method getFullName() must be called with BWChannelEntity instance as first argument (got nothing instead) 4) Я наверно не совсем понимаю как получить обьявленный ранее обьект и изменить его... В конечном итоге, я хочу получить: Найти окно клан-чата, и переименовать его
  14. Доброго времени суток сообщество! Недавно мне необходимо было поработать с WGPAPI, но для удобства работы с получением данных, я не нашел ни одной подходящей библиотеки написанной на Java (Либо плохо искал). Решил исправить это. Представляю вам свой небольшой проект: Java SDK для работы с Wargaming.net Public API Приступая к работе Перед началом работы с Wargaming.net Public API, ознакомьтесь с условиями использования и документацией. Далее вам необходимо зарегистрировать приложение. Для регистрации необходимо: Войти в кабинет разработчика Перейти в раздел "Мои приложения" Нажать "Добавить приложение" (На экране появится форма для регистрации приложения). Выбрать тип приложения. См. Типы приложений. Ввести название приложения (Когда произведён вход в приложение, его название будет отображено на странице «Сеансы» в «Личном кабинете» пользователя). Нажать "Добавить приложение" (На экране появится список добавленных приложений). После успешной регистрации приложения вы получите идентификатор приложения (Далее по тесту "application_id"), который является идентификатором вашего приложения для обращения к API. Для получения контента WG Public API регистрация приложения является обязательной. См. Использование application_id. Предварительные условия Java JDK 1.8 или новее Maven 3.3.9 или новее WgClientApi 1.0.0 или новее Зависимости проекта Расширение для WgApiClient использует: WgClientApi 1.0.0 или новее Документация проекта Документация проекта доступна тут. Установка Можно взять от сюда: Добавить в файл "pom.xml" вашего проекта следующую зависимость: <dependency> <groupId>io.github.divinator.wgapi</groupId>. <artifactId>wgapi-client-wot</artifactId> <version>LATEST_VERSION</version> </dependency> Использование Доступно несколько возможностей сконструировать обьект: Указать только "application_id" WgApiClient client = new WgApiClient("application_id"); Указать "регион" и "application_id" WgApiClient client = new WgApiClient(Region.RU, "application_id"); Указать "транспортный протокол", "регион" и "application_id" WgApiClient client = new WgApiClient(new NetHttpTransport(), Region.RU, "application_id"); Указание собственного транспортного протокола возможно потребуется в случае, если работа клиента будет осуществляться через Proxy-сервер. Далее необходимо инициализировать нужный "метод-блок", и у него вызвать нужный метод, с указанием параметров: AccountsMethod methodBlock = client.getMethodBlock(AccountsMethod.class); Map<String, AccountInformation> accountInfo = methodBlock.getAccountInfo("DIVlNATOR", null, null, null); Как вы успели уже заметить, в параметры метода можно передать значение "null". Переменные метода могут быть, как обязательные к заполнению, так и "null" (необязательные). Чтобы избавиться от "null", можно расширить нужный "метод-блок" и переопределить нужный метод. Возвращаемое значение у методов "метод-блока" может быть нескольких типов: <Entity> List <Entity> Map <String, Entity> Map <String, List <Entity>> Entity - это сущности Wargaming.net Public API (см. документацию) со своими методами. Далее описан процесс получения нужных данных из "Entity", на примере "AccountInformation" AccountInformation accountInformation = accountInfo.get("3999999"); accountInformation.getNickname(); accountInformation.getAccountId(); Лицензия Этот проект лицензируется в соответствии с лицензией Apache — подробности см. в файле LICENSE
  15. @Kotyarko_O@EkspointБольше нет способов отобразить web-страницу, не используя интерфейс встроенного браузера движка игры (Как я понял по коду. не работал с питоном, может не правильно интерпретирую синтаксис)? Например в JavaFX есть WebView и WebEngine (webkit). Что то типа открываем окно добавляем WebView c указанным URI.
  16. @Ekspoint На уровне сервера проверяется запрос??? ERROR: [WebBrowser] FAILED Url: https://www.google.ru/, Http code: 418, Browser error:None Как я понял из вики, возможно меняется протокол? Поэтому проэкт "VERSUS mod" закрылся?
×
×
  • Create New...