

Отзывы и пожелания. Wargaming Public API
#202 Отправлено 07 окт 2013 - 13:17
armor_kiev (07 Окт 2013 - 13:14) писал:
Формат - серилизация PHP. Обновляется с каждым патчем.
P.S. Админы, если мой последний ответ shizzard исчезает вашими трудами как флуд, то там надо весь тред тереть, а не выборочно мой последний ответ.
#203 Отправлено 07 окт 2013 - 13:31
thunderspb (07 Окт 2013 - 13:17) писал:
Конкретно там мусор - описание наград, т.к. по имеющейся задаче они не нужны :)
Это данные из текстовых ресурсов игры. Хотите, ждите реализации в API, хоть особой необходимости в этом я и не вижу, а хотите - элементарным скриптом, который пишется один раз за 10 мин, получайте из предложенного массива только описания наград.
Честно говоря, я на месте разработчиков API никакие справочные данные через API не выдавал бы - обязательно найдутся клоуны, которые каждый раз эти ресурсы будут бессмысленно дергать через API. Просто сделал бы справочный статичный раздел, в котором справочники в одном zip файле для скачивания с указанием даты последнего обновления.
#204 Отправлено 07 окт 2013 - 13:35
armor_kiev (07 Окт 2013 - 13:14) писал:
Формат - серилизация PHP. Обновляется с каждым патчем.
P.S. Админы, если мой последний ответ shizzard исчезает вашими трудами как флуд, то там надо весь тред тереть, а не выборочно мой последний ответ.
#205 Отправлено 07 окт 2013 - 13:37
Drahtigel (07 Окт 2013 - 13:35) писал:
#206 Отправлено 07 окт 2013 - 14:58
Получите медали и их описания: http://armor.kiev.ua.../achivments.php - при выходе патча обновится автоматически.
Надеюсь воспользоваться ключами вида medalCarius, medalCarius_descr и medalCarius_heroInfo проблем не составит?
UPD: во исправление возникших проблем с юникодом изменил формат.
Сообщение отредактировал armor_kiev: 07 окт 2013 - 16:41
#207 Отправлено 07 окт 2013 - 15:01
armor_kiev (07 Окт 2013 - 14:58) писал:
Получите медали и их описания: http://armor.kiev.ua.../achivments.php - при выходе патча обновится автоматически.
Надеюсь воспользоваться ключами вида medalCarius, medalCarius_descr и medalCarius_heroInfo проблем не составит?

#208 Отправлено 07 окт 2013 - 15:07
armor_kiev (07 Окт 2013 - 14:58) писал:
Получите медали и их описания: http://armor.kiev.ua.../achivments.php - при выходе патча обновится автоматически.
Надеюсь воспользоваться ключами вида medalCarius, medalCarius_descr и medalCarius_heroInfo проблем не составит?
#209 Отправлено 07 окт 2013 - 15:16
armor_kiev (07 Окт 2013 - 14:58) писал:
Получите медали и их описания: http://armor.kiev.ua.../achivments.php - при выходе патча обновится автоматически.
Надеюсь воспользоваться ключами вида medalCarius, medalCarius_descr и medalCarius_heroInfo проблем не составит?
Мало того, что это самопал не-от-разработчиков, так еще и кривой: http://imgur.com/2b8xggx
#210 Отправлено 07 окт 2013 - 15:30
Цитата
"medalWittmann_descr" : "Уничтожить не менее 7 машин противника на танке или ПТ-САУ либо не менее 10 на САУ.
• IV уровень уничтоженной техники и выше.
• Не выдаётся с 25 сентября 2012 года.
Ганс Бёльтер — один из наиболее успешных немецких танковых асов Второй мировой войны. Участвовал в боевых действиях в Польше, Франции, Греции, на территории СССР и в Нормандии.",
#211 Отправлено 07 окт 2013 - 16:38
shizzard (07 Окт 2013 - 15:16) писал:
Изменил. Теперь должно работать.
Drahtigel (07 Окт 2013 - 15:30) писал:
2) Я не предлагаю и не навязываю сторонний ресурс - выложено там, где мне это проще всего сделать. Кому нужны описания медалей из игры здесь и сейчас, пока их нет в API - получите. Кто выше не смог пройти мимо и его уже утомили, пусть проходит мимо в нужном направлении.
P.S. Начал переходить на API2.0 и таки обнаружил, что все медали теперь не совпадают по кодам с апи1.х (а в апи1.х использовались игровые) - мало того, что потеряна обратная совместимость с апи1.х, так теперь коды медалей в 2.0 не соответствуют игровым... рука_лицо.жпг :( Кстати, игровые коды и в названиях файлов используются, поэтому проблемы Drahtigel с изображениями медалей мне вначале показались надуманными, а они с новыми кодами таки возникают в самом деле...
Сообщение отредактировал armor_kiev: 07 окт 2013 - 17:54
#212 Отправлено 07 окт 2013 - 19:29
API v.1 = > API v.2 [Название изображения]
Bat_Chatillon155_58 => Bat_Chatillon155 [france-bat_chatillon155_58.png]
F10_AMX_50B = > AMX_50_68t [france-f10_amx_50b.png]
Object252 => IS-6 [ussr-object252.png]
M44 => _M44 [usa-m44.png]
и тд.
Сообщение отредактировал Vov_chiK: 07 окт 2013 - 19:30
#213 Отправлено 07 окт 2013 - 20:13
Vov_chiK (07 Окт 2013 - 19:29) писал:
И это тоже. Но с изображениями техники у меня проблем не возникло:
1) Цифровые ID техники в API берутся не от балды, используется формула:
$tankID = 256 * $xmlTankID + 16 * $nationID + 1;
где: $xmlTankID - id танка, заданное ему в xml файле;
$nationID - от 0 до 6 соответственно в таком порядке: 'ussr', 'germany', 'usa', 'china', 'france', 'uk', 'japan'
2) из тех же xml получаем соответствующие рассчитанным ID коды техники. Как в этом массиве.
3) имя изображения получаем: <код_нации>-<код_машины_в_нижнем_регистре>.png.
Т.е. я просто по ID танка сразу получаю его игровой код без участия API и в остальном работаю без каких-либо изменений программного кода.
По медалям вероятно надо символ за подчеркиванием переводить в верхний регистр и удалять подчеркивания. Только я совсем не уверен в универсальности этого метода - надо проверять для всех медалей. Вообще глупо делать игровой апи с кодами "не такими, как в игре".
#214 Отправлено 07 окт 2013 - 22:51
хыхы)
#215 Отправлено 07 окт 2013 - 23:07
thunderspb (07 Окт 2013 - 22:51) писал:
хыхы)
#216 Отправлено 07 окт 2013 - 23:57
thunderspb (07 Окт 2013 - 22:51) писал:
хыхы)

#217 Отправлено 08 окт 2013 - 01:02
thunderspb (07 Окт 2013 - 22:51) писал:
хыхы)
Прикольно. Неужели кроме зарубежных коллег об этом никто не знал? :)
Но проблема несоответствия кодов игровым и старому апи таки остается :( Я, к примеру, картинки держу локально и выдаю со своего сервера и использую игровые картинки, поэтому по-любому новые коды приходится конвертировать в старые.
ciklop1979 (07 Окт 2013 - 23:57) писал:
Чтобы не нарваться на возможные изменения, я новый блок achivements из АПИ2.0 конвертирую в формат АПИ1.х. Получилось так:
function achivementsConvert(&$achivsNew){ $convertMedals = array( 'medalBoelter' => 'medalWittmann', 'medalHeroesOfRassenay' => 'heroesOfRassenay', ); $achivsOld = array(); foreach ($achivsNew as $key => $value) { if (strpos($key, 'tank_expert_') === 0) { $expertNation = str_replace('tank_expert_', '', $key); $achivsOld['tankExperts'][$expertNation] = $value; continue; } if (strpos($key, 'mechanic_engineer_') === 0) { $expertNation = str_replace('mechanic_engineer_', '', $key); $achivsOld['mechanicEngineers'][$expertNation] = $value; continue; } $realKey = lcfirst(str_replace(' ', '', ucwords( str_replace('_', ' ', $key)))); if (isset($convertMedals[$realKey])) $realKey = $convertMedals[$realKey]; $achivsOld[$realKey] = $value; } return $achivsOld; }
На входе блок achivements в новом формате, на выходе - в старом.
#218 Отправлено 08 окт 2013 - 07:54
Можно ли сделать подобный метод с двумя параметрами limit, offset и дефолтной сортировкой по id?
Сообщение отредактировал morecal: 08 окт 2013 - 07:55

#219 Отправлено 08 окт 2013 - 10:56
morecal (08 Окт 2013 - 07:54) писал:
Можно ли сделать подобный метод с двумя параметрами limit, offset и дефолтной сортировкой по id?
Собственно, я написал гейт для доступа к API Вагейминга на Erlang, который представляет из себя демона, который принимает запросы в очередь и выполняет их с разрешенным рейтом. Сейчас долбит с рейтом в 4 запроса в секунду. Если вы запустите 10 экземпляров скриптов, которые будут опрашивать демона, вы все равно запросов свыше разрешенного рейта выполнить не сможете. Демон пока сыроват (реализованы только два метода - /account/info, /account/tanks). Ну и нет внешнего API, только эрланговый API, который большинству не подойдет. У меня есть несколько идей, конечно.
Например, прозрачный HTTP API, который будет дублировать API WG, но без параметра application_id, который будет указываться вами в конфиге демона. Это не очень хорошая идея, потому что HTTP довольно дорогая штука, ну и в зависимости от количества ваших воркеров количество висящих HTTP-коннектов может быть проблемой.
Другой вариант - memcached API. Тут есть свои проблемы. Например, длина ключа не больше 255 символов (емнип, захардкожено в php-драйвере memcached, но можно собрать кастомную версию).
Если есть предложения по API, который вам понравится - предлагайте. Только не предлагайте MySQL или подобное, я устану это реализовывать.
После написания внешнего интерфейса демона можно положить на гитхаб, собрать его не сложно, запустить тоже.
Сообщение отредактировал shizzard: 08 окт 2013 - 11:02
#220 Отправлено 08 окт 2013 - 13:28
thunderspb (07 Окт 2013 - 22:51) писал:
хыхы)
shizzard (08 Окт 2013 - 10:56) писал:
Собственно, я написал гейт для доступа к API Вагейминга на Erlang, который представляет из себя демона, который принимает запросы в очередь и выполняет их с разрешенным рейтом. Сейчас долбит с рейтом в 4 запроса в секунду. Если вы запустите 10 экземпляров скриптов, которые будут опрашивать демона, вы все равно запросов свыше разрешенного рейта выполнить не сможете. Демон пока сыроват (реализованы только два метода - /account/info, /account/tanks). Ну и нет внешнего API, только эрланговый API, который большинству не подойдет. У меня есть несколько идей, конечно.
Например, прозрачный HTTP API, который будет дублировать API WG, но без параметра application_id, который будет указываться вами в конфиге демона. Это не очень хорошая идея, потому что HTTP довольно дорогая штука, ну и в зависимости от количества ваших воркеров количество висящих HTTP-коннектов может быть проблемой.
Другой вариант - memcached API. Тут есть свои проблемы. Например, длина ключа не больше 255 символов (емнип, захардкожено в php-драйвере memcached, но можно собрать кастомную версию).
Если есть предложения по API, который вам понравится - предлагайте. Только не предлагайте MySQL или подобное, я устану это реализовывать.
После написания внешнего интерфейса демона можно положить на гитхаб, собрать его не сложно, запустить тоже.
Пожалуйста, до этого времени воздержитесь от использования Application ID других приложений, так как это противоречит Правилам Использования и Администрация оставляет за собой право ограничить Ваш доступ к сервису Wargaming Public API.
#221 Отправлено 08 окт 2013 - 13:31
morecal (08 Окт 2013 - 07:54) писал:
Можно ли сделать подобный метод с двумя параметрами limit, offset и дефолтной сортировкой по id?
Количество пользователей, просматривающих этот форум: 1
0 пользователей, 1 гостей, 0 анонимных