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

Мои скрипты: нужна помощь, в благодарность -- геймеркард


flashgun
 Поделиться

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

В общем, граждане, я даже передать вам не могу, насколько я за эти дни расширил горизонты своего невежества. Я вообще по жизни, решая такие задачки, ценю возможность попробовать и изучить что-то новое, вот в данном конкретном случае я перешёл с перла на php/cli, где впервые поработал с постгресом (ничего необычного) и научился распараллеливать процесс (тут повозился немало). Но самое, конечно, это докопаться до недокументированного интерфейса xboxlive.com. И тут я достиг некоторого успеха, в частности, я теперь умею получать, помимо всей необходимой инфы про Xbox One, ещё и ачивки с Xbox 360, что не так уж мало, по крайней мере xboxapi.com пока так не умеет.

 

Но больше всего я провозился со статистикой игр/пользователей, это второй столбец текста в моём геймеркарде. Для форзы, к примеру, это уровень водителя, число кредитов и прочее. Ради этого я

а) поработал с браузерами на xbox.com, где в отладчике ловил обращения к скриптам, которые возвращали json (используется всего один вид, как оказалось, остальное генерится в html)

б) поставил фиддлер и попробовал поперехватывать обращения к https (не получилось)

в) скачал xbox for android apk, попытался дизассемблировать его в джава-код (получилось, в яве я не силён, правда, но было интересно)
г) поставил студию + эмулятор в надежде поотлаживать (не вышло)

д) читал этот джава-код, ресурсы, грепами искал запросы, заголовки, названия полей (от отчаяния)

 

В процессе всего этого решил все до единой задачи получения информации, кроме одной, вот этой вот статистики. Пару раз ложился около 4 утра и не мог уснуть. Заставлял себя отвлечься, играя в Forza Horizon 3, иначе бы совсем с ума сошёл. Короче, когда понял, что всё, дальше тупик, собрался и написал письмо Алану Винну, это мужик, который как раз создал xboxapi.com, и которого я кидаю каждый месяц примерно на 10 фунтов стерлингов, ловко перебирая присланные вами, некоторые пользовали xboxland, бесплатные ключи. Понимая, что вот прямо сейчас я занимаюсь ничем иным, как конкурирую с ним, я вкратце изложил свою историю, поделился наработками в части Xbox 360, описал, докуда мне удалось продвинуться в получении статистики (реально -- нашёл нужный url для обращения к сервису, но не мог подобрать параметры), и что для этого пришлось сделать, и попросил помочь мне, показать, где я ошибаюсь, или не туда тычусь.

 

На удивление, ответил он мне быстро, буквально через 15 минут. Написал, что он "glad to see somebody saying they want some help, but not the keys to the castle", после чего заметил, что я на правильном пути, и, хоть в его привычку не входит делиться коммерческими секретами, ибо это его бизнес, я на 99% решил задачу, поэтому попросил прислать мне POST-запрос, а он покажет, где я не прав и поможет.

 

После чего я прислал, а он показал пример обращения к сервису. Я ещё провозился пару часов (совпало с проблемами у хостера дипы, зато он, хостер, прислал свои извинения "+15 дней к вашей аренде", что меня вполне устроило), но потом нашёл, что всё-таки адрес обращения немного другой, после чего всё заработало.

 

Вообще это не просто замена xboxapi.com. Это новые, невероятные возможности. В отличие от Алановского сервиса, xboxlive.com для некоторых наиболее интересных запросов имеет batch-версию, то есть можно в одном запросе получить информацию сразу за кучу пользователей. И сейчас, например, чтение геймскора/геймертага для 680 человек занимает меньше минуты. И получается, что геймеркард как у меня я скоро смогу раздать всем, вообще всем желающим, без ключей, регистраций и смс.

 

Короче, я счастлив просто. Хотя работы впереди ещё невпроворот.

Ссылка на комментарий
Поделиться на других сайтах

Сильно. Главное чтобы не пропадала мотивация. Огромное уважение к человеку. Таких найти нереально чтобы с такой охотой, тратили время на как бы массовые вещи. Понятно что все в стезю саморазвития. Но все очень круто. Считаю что надо продолжать
Ссылка на комментарий
Поделиться на других сайтах

Сколько боли и потраченного времени. А дело то всего лишь в отсутствии официального открытого api xbox live. Казалось бы, что стоит Microsoft создать микросервис который бы отдавал публичные данные пользователя в формате json. Надо им ссылку на этот пост кинуть, вдруг сжалятся.

 

Насколько я понимаю api есть но доступен только избранным, а все что есть в открытом доступе это парсеры сайтов, принадлежащих тем-самым "избранным".

Ссылка на комментарий
Поделиться на других сайтах

@DimoniXo, там всё сложнее. Если вывалить в сообщество api, будут тут же созданы сервисы, которые быстро выведут на чистую воду всех "чемпионов продаж", ибо как бы ни было распиарено говно, если по статистике его запустили куча человек, поиграла 20 минут, а потом закрыла к хренам и больше про него не вспоминала, то это говно, и покупать его нельзя ни в каком случае. Все эти сервисы уменьшат количество случайных и неудачных покупок, что приведёт к общему уменьшению числа покупок и падению цифр выручки.

 

Второй аспект, связанный с первым -- появится спрос, и, соответственно, предложение, на "накрутку" такой вот игровой статистики. Как мне написал один чел, "можно представить себе кучу подростков, которые шпилят в убогий тайтл за небольшое вознаграждение".

 

Поэтому простого и открытого xbox live api ждать не приходится, более того, могут прикрыть и существующие методы получения информации. В том числе поэтому я отказался от мысли перевести всю свою статистику на английский и вообще расширить аудиторию пользователей моих скриптов.

 

Ну и нет, инфа всё-таки берётся из первоисточника, вполне себе доступный всем желающим restful api на <service>.xboxlive.com, единственная проблема -- он не документирован. Поэтому и весь этот цирк с конями в виде реверс-инжиниринга и изучения декомпайлов Xbox App.

Изменено пользователем flashgun
Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

Ну что за говно на лопате?! Я разочаровался во всех этих хостерах-фигостерах. Конечно, странно ожидать скоростного хостинга за $30/год, но обещано 2 ядра CPU и 3 Гб памяти и 50 гиг стораджа. И вроде как не обманули, и память на месте, и проц показывает два ядра от Intel Xeon E3-1245 v2. Вот только оно уже трижды умирало (вот и сейчас лежит в третий раз, тикет открыт 4 часа назад), и самое говённое -- оно адово, как выяснилось, тормозит. Причём, в двух аспектах, первый -- замирания от 3 до 30 секунд, причём на примитивных обращениях к диску, иногда даже не на запись, а на чтение, типа ls, touch, w и прочих. Похоже, на все виртуалки к хранилищу единая очередь запросов, без приоритезации и с тормозами. Ну и сам проц, как выяснилось, тоже оставляет желать.

 

Понял просто: всю прошлую неделю тюнил некий запрос, возвращающий сводную статистику. Возился с индексами, jsonb-индексацией, группировал по всякому. А в четверг психанул и развернул на древнем домашнем сервере с Pentium G620 и 8Гб памяти. Казалось бы, должен был просрать Xeon-у с треском, а запрос уверенно выполнялся вместо 30-90 секунд за секунду. Ну не говно с отрубями?!

 

Файлы БД при этом занимают 3,5 Гб, таблицы небольшие, сессии на 450 тысяч строк, ачивки чуть больше миллиона, остальное вообще фигня меньше 100 тысяч строк. Где там тормозить?

 

И вот теперь в раздумьях: есть доступ к халявному Azure SQL, к плану S0 Standard, которого мне выше крыши. Но, блин, я только-только изучил postgresql на комфортном для меня уровне!!! Включая тонкую работу с JSON и timestamp! Понял, как буду управлять сообщениями с помощью NOTIFY/LISTEN! Перетащил в базу всю старую статистику! Полный дамп базы занимает без малого 5 гиг. Как я буду его лить в MS SQL? Да и вообще я фанат свободного ПО и открытых технологий, а тут проприетарщина, облака и подписка.

 

Три дня покоя себе не нахожу.

 

Ну, ещё вариант -- перетащить всё домой, тем более, что у меня сейчас два провайдера, оба с белыми IP. На домашний сервер ставить не хочу, он старенький, 5 лет ему летом стукнуло. Винты собраны в кривожопое btrfs, чисто поржать, потому что собран он из двух usb-дисков и одной партиции. Приценивался к более-менее компактным решениям, идеально -- неттоп на i3/i5/i7, но, цуко, выходит 22 тысячи минимум. Второй вариант -- купить б/у ноут с убитой матрицей. Тоже нашёл, 13 тысяч без экрана и винтов. То есть плюс SSD гиг на 60 и памяти туда добить бы, то есть получится те же 20 тысяч.

 

Получается, что всё-таки финансово правильнее ехать в Azure, заодно можно попробовать и саму машину перетащить с dedistation на Azure план A2 или что там у них есть. Только надо уточнить лимит халявы, чтобы вписаться со всеми моими хотелками.

 

Короче, надо уже что-то решать.

Ссылка на комментарий
Поделиться на других сайтах

То, что ты делаешь круто в плане саморазвития, но в общем это имхо пустая трата времени. В своё время из-за полного наплевательства мс умер единственный хороший сервис статистики mygamercard. Смотрел бы ты лучше в сторону стима, там есть api для людей и ты бы мог потратить свои знания на что-то типа steamspy, а не на борьбу с ветряными мельницами.
Ссылка на комментарий
Поделиться на других сайтах

То, что ты делаешь круто в плане саморазвития, но в общем это имхо пустая трата времени. В своё время из-за полного наплевательства мс умер единственный хороший сервис статистики mygamercard. Смотрел бы ты лучше в сторону стима, там есть api для людей и ты бы мог потратить свои знания на что-то типа steamspy, а не на борьбу с ветряными мельницами.

Я не играю на пекарне => стим не актуален ни в каком месте.

 

Лично для меня оно отбилось уже многократно, как сэкономленным временем, так и деньгами. Мне теперь гораздо проще принимать решения относительно целесообразности той или иной покупки, собственно то, ради чего оно всё затевалось.

Ссылка на комментарий
Поделиться на других сайтах

@flashgun, не обращай на него внимания. Это обиженный на МС типчик, который почему то до сих пор сидит в темах коробки.

Ссылка на комментарий
Поделиться на других сайтах

Уехал на Azure, план A3 Basic, поменял зону, должно расползтись в течение нескольких часов. Даже любопытно, как оно будет работать. Пока точно быстрее, чем старый dedistation, но самое интересное даже не это, а попробовать возможности масштабирования системы, типа уполовинить число ядер, зато удвоить память. Или уполовинить память и ядра, но уползти на SSD. Главное -- уложиться в свой лимит, спасибо работе.

 

Не могу отделаться от ощущения, что дипа стала заметно быстрее.

Ссылка на комментарий
Поделиться на других сайтах

Я не играю на пекарне => стим не актуален ни в каком месте.

 

Лично для меня оно отбилось уже многократно, как сэкономленным временем, так и деньгами. Мне теперь гораздо проще принимать решения относительно целесообразности той или иной покупки, собственно то, ради чего оно всё затевалось.

Мне кажется, он имел ввиду сделать что-то типа steamspy, но для иксбокс. Если не в курсе что это, то это сервис, который может отслеживать примерные данные цифровых продаж на основании частной выборки пользователей. По крайней мере раньше создавался именно для этого, может там что-то новое появилось.

Ознакомься на досуге steamspy.com. Вот это был бы действительно уникальный сервис, хотя то что ты делаешь всё равно заслуживает уважения.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Начав кодить, очень сложно остановиться. Почти полтора месяца ушло на создание новой, более полной и правильной статистики. Сейчас описывать особенности уже нет сил, хочу спать, но могу сказать, что стала доступна инфа по обратке, хотя и в ограниченном объёме. Ссылка в подписи актуальна.

 

Следующие этапы -- переписать отчёты и сделать новые геймеркарты.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...

Поэтому простого и открытого xbox live api ждать не приходится, более того, могут прикрыть и существующие методы получения информации.

Братцы, проблема, которой я опасался, таки стряслась: с 23 февраля xboxlive прикрыл отдачу 'activityItemType' => 'Played' по запросу https://avty.xboxlive.com/users/xuid($uid)/activity/History?contentTypes=Game&activityTypes=Played. И это капец, потому что у меня больше нет информации о сессиях и их длительности. Потыкался в разные места -- нет, точно нет. Обратился к xboxapi-точка-com, там тоже эта инфа перестала возвращаться. Написал Алану Винну, ответа не получил, и не известно.

 

Честно говоря, и раньше недоумевал, как так много инфы можно получить про совершенно незнакомых людей, но втайне надеялся, что владельцы лайва просто станут отдавать сессии только для френдлиста, например, и эту проблему я бы решил, и даже придумал, как. Но тут я задружился со скриптом всеми дружилками, а всё равно -- только ачивки, и никаких сессий.

 

Я в горе. Статистики за март по иксбоксу нет. И, если до 23 марта решение найдено не будет, то статистика в том виде, в каком она есть сейчас, перестанет существовать.

 

Дипа останется конечно же.

Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах

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

Взрослый человек и такую глупость пишешь

Ссылка на комментарий
Поделиться на других сайтах

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

Там есть возможность собрать статистику, геймеркарты же как-то работают. Просто она (плоечная статистика) мне не интересна, а вам не нужна, цифр продаж достаточно :)

Изменено пользователем flashgun
Ссылка на комментарий
Поделиться на других сайтах

:laugh1:  Отобрали последнюю игрушку.

Пора випку отдавать  :butthurt:

Ссылка на комментарий
Поделиться на других сайтах

Взрослый человек и такую глупость пишешь

Это не глупость. Это правда жизни. Просто не все ее сразу понимают.Ну это как, например, посмеялся над инвалидом - глядишь и сам ногу сломал. )

Ссылка на комментарий
Поделиться на других сайтах

Пока сонебосота злорадно истерит по поводу изменений в лайве, у меня есть план. Во-первых, не получив ответа от Алана, написал в тематические листы рассылки и в яммер. Во-вторых приступил к изучению возможностей запроса статуса друзей. Идея простая: когда вы смотрите список друзей на хуане, вам показывается, кто из них онлайн, чем занят в данный момент. Вот эта инфа собирается одним запросом, и я планирую использовать его возможности, так как один запрос в минуту меня более чем устроит, и при этом точность будет такая же, как в предыдущей системе сбора статистики.

 

На текущий момент я вижу одну сложность: количество друзей (вроде как) не может превышать тысячу человек. Ну, это не страшно, так как у активных геймеров с ленда больше 6,5 сотен я не видел.

 

Здесь мне понадобится ваша помощь: я переименую во что-то более-менее вменяемое эккаунт, который собирает стату, и либо он с вами подружится, либо вам с ним надо будет подружиться.

 

Будьте в курсе!

 

P.S. Что за история с випкой и кубикусом? Он всякий раз раскладывается пердаком, исходя на подливу, как только видит сообщения от меня с этой жепкой.

Ссылка на комментарий
Поделиться на других сайтах

P.S. Что за история с випкой и кубикусом? Он всякий раз раскладывается пердаком, исходя на подливу, как только видит сообщения от меня с этой жепкой.

Он просто злится что казахам не дают VIP и модерки. Оппозиция.

Ссылка на комментарий
Поделиться на других сайтах

Не бросай своё дело. Очень удобно в твоей статистике смотреть/понимать годная игра или нет.
Ссылка на комментарий
Поделиться на других сайтах

 

Идея простая: когда вы смотрите список друзей на хуане, вам показывается, кто из них онлайн, чем занят в данный момент. Вот эта инфа собирается одним запросом, и я планирую использовать его возможности

А что это даст?
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

Войти

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

Войти сейчас
 Поделиться

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

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