Новости xboxstat.ru: вернулся просмотр отзывов магазина Xbox

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

Почему отзывы интересны? Потому что, в отличие от г*&@нокритиков, чтобы его оставить, вы должны поиграть в игру. Я могу не просто показать отзыв, я могу показать, сколько человек играл, до того, как написал свой коммент, чего добился. Можно посмотреть другие отзывы этого человека - вдруг это тупо хейтер?

Главная проблема - отзывы возвращает запрос к beige.xboxservices.com. Но, в отличие от остальных запросов к *.xboxlive.com и прочих, где необходим JWT, тут требуется заголовок Authorization. И он меняется каждые 24 часа.

Что пытался: любимый Fiddler, WinDBG, и даже IDA. Безуспешно. Заголовок просто в какой-то момент менялся на новый.

Весь мой комплекс построен на виртуальных машинах Linux, поэтому работающее решение теперь выглядит так: несколько раз в день линукс-машина запускает виртуалку с Windows 10 в облаке, в этой виртуалке стоит автологон и запуск скрипта AutoHotKey - потрясающий инструмент. Скрипт запускает Xbox App, ждёт 20 секунд, посылает туда семь нажатий Shift-Tab и один Enter, после чего Xbox App переключается на вкладку Store и авторизует себя в beige.xboxservices.com. Тут скрипт ждёт ещё 10 секунд и вызывает ProcDump, снимая 800-мегабайтный образ памяти в файл. После чего в этом образе ищется строка authorization и отправляеся по ssh на линукс-машину, где засовывается в базу. Windows-машина же на этом выключается и деактивируется до следующего запуска.

Есть и проблемы: майки всё ещё не исправили баг с листанием этих отзывов. При переключении на вторую, третью и так далее страницы, вам всегда возвращаются первые 25 значений. Такое поведение было для отзывов на платформе Windows, и его исправли, но для Xbox всё до сих пор работает с багом. Надеюсь, это поправят. Сейчас из-за этого можно видеть "дырку" с августа по декабрь 2020 примерно. Ну и недоступна, надеюсь, пока, часть отзывов.

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

#xbox#xboxstore#xboxstat#xboxstat.ru

66
7 комментариев

Заходил вчера ради отзывов, сайт стал быстрее, он летает!

2
Ответить

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

2
Ответить

Комментарий недоступен

1
Ответить

Как-то так, например:

https://pastebin.com/Fq9wSHqa

Завтра он работать перестанет.

При этом, такое ощущение, что авторизация идёт через отправку (POST) и приём XML на https://login.live.com/RST2.srf , то ест всё очень похоже, как если бы мы авторизовывались на sharepoint online.

Ответить