Антипат
[LjUA] Офицер
могущество: 2242
длань судьбы
орк Ширагар
136 уровня
Tiendil
Как я понял, команда разработчиков отчасти возобновила работу над игрой. А что касается API части? Будет ли вестись работа над улучшением и расширением функционала API? В первую очередь интересует - есть ли в планах добавить в API работу с форумом: чтение и отправка постов через API?
Tiendil
[НБ] Магистр
могущество: 14660
разработчик
дварф Халлр
105 уровня
Антипат
А что касается API части?
Не планирую, надо делать новую версию API: модную, молодёжную. Поддерживать эту неудобно. Сомневаюсь что затраченные силы окупятся.

есть ли в планах добавить в API работу с форумом: чтение и отправка постов через API?
Я бы хотел заменить форум стороннюю реализацию какую-нибудь. Например на https://www.discourse.org/ Там уже есть API. Но своими руками делать не буду, так как сейчас хотелось бы найти время хотя бы на исправление багов и мелкие доработки.
Mеfi
[LjUA] Командор
могущество: 17168
длань судьбы
эльф Максиэн
148 уровня
Дайте почитать, пожалуйста, что там за критерии модности-молодёжности
Tiendil
[НБ] Магистр
могущество: 14660
разработчик
дварф Халлр
105 уровня
Mefi
Дайте почитать, пожалуйста, что там за критерии модности-молодёжности
Нормальная валидация входных данных. генерацией стандартизированных ошибок, автогенерация документации, автоматическое создание стенда для тестирования запросов.
jurikolo
без гильдии
могущество: 1993
длань судьбы
мужчина Иван
114 уровня
Всем привет! Нужна помощь с API использования карт. Некатал небольшой скрипт на Питоне для входа в игру, проверки состояния игрока, получения списка карт и применению при необходимости. Проблема в том, что применить карту не могу, получаю редирект (статус код 302). Посмотрел логи применения карты из браузера и заметил странное: у меня все карты с uid вида 9f4bf560feaf47d7b23422cf0290621d, а при использовании браузера uid карты вида 13c5bc0c-3228-4872-83cc-c46633adea85. Также по описанию API не понятно, какой должен быть Content-Type запроса.

Код доступен на GitHub'е: https://github.com/jurikolo/talekeepalive/blob/feature/python/main.py#L84 (строка 84). Скрипт на ранней стадии разработки.

В планах автоматизировать запуск скрипта через AWS Lambda и раскатывать через Terraform. Планирую поделиться всеми наработками.
CrazyNiger
[DRAGO] Магистр
могущество: 9737
длань судьбы
мужчина Злобный Дракон
261 уровня
jurikolo
Если правильно помню, то для некоторых методов (в частности для этого), необходим
Content-Type: application/x-www-form-urlencoded
и в обязательном порядке указать корректный
Content-Length
CrazyNiger
[DRAGO] Магистр
могущество: 9737
длань судьбы
мужчина Злобный Дракон
261 уровня
jurikolo
у меня все карты с uid вида 9f4bf560feaf47d7b23422cf0290621d, а при использовании браузера uid карты вида 13c5bc0c-3228-4872-83cc-c46633adea85
В каком виде uid карты из апи получаешь, в том и используй - все норм.

Если что, можешь смотреть в мой клиент на TypeScript, в нем все методы API реализованы. Правда там код там так себе.



Сообщение изменено
jurikolo
без гильдии
могущество: 1993
длань судьбы
мужчина Иван
114 уровня
CrazyNiger
Спасибо за подсказку, к сожалению пока не помогло. Requests автоматически вычисляет Content-Length и подставляет в запрос, хотя ради эксперимента выпилил body и перенёс CSRF токен в заголовок. Также стал указывать Content-Type, в итоге заголовки получились следующего вида:

{
'User-Agent': 'python-requests/2.27.1',
'Accept-Encoding': 'gzip, deflate',
'Accept': '*/*',
'Connection': 'keep-alive',
'referer': 'https://the-tale.org/',
'X-CSRFToken': '27iZ7FSzqPnvUbjGyn6hqDzqncGJ9zh6EvDvCj2YlBX7cQWvGr7cEG5zmXWh4111',
'Content-Type': 'application/x-www-form-urlencoded',
'Cookie': 'csrftoken=27iZ7FSzqPnvUbjGyn6hqDzqncGJ9zh6EvDvCj2YlBX7cQWvGr7cEG5zmXWh4111; sessionid=dpcqo8ce2bznzfdrvpv3fg46zjyvg111',
'Content-Length': '0'
}

Посмотрю в код твоего клиента, глядишь найду решение. Ну или кто-то ещё подскажет, что я делаю не так.

Тут бы Swagger / OpenAPI, мечты-мечты :)
CrazyNiger
[DRAGO] Магистр
могущество: 9737
длань судьбы
мужчина Злобный Дракон
261 уровня
jurikolo
'Content-Length': '0'
Убедись, что 'Content-Length' в реальном запросе правильный. Насколько помню, у меня тоже был затык по этой причине.
Tiendil
[НБ] Магистр
могущество: 14660
разработчик
дварф Халлр
105 уровня
jurikolo
Проще всего разобраться, повторив полностью запрос из браузера, например, curl-ом, а потом уже переносить в Python.
Антипат
[LjUA] Офицер
могущество: 2242
длань судьбы
орк Ширагар
136 уровня
https://docs.the-tale.org/ru/stable/external_api/methods.html?highlight=%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82#id23
Чуть выше промотать, будет ссылка на константы.
На данный момент константы недоступны (по крайней мере если следовать документации) - https://static.the-tale.org/static/244/game/data/constants.js
CrazyNiger
[DRAGO] Магистр
могущество: 9737
длань судьбы
мужчина Злобный Дракон
261 уровня
Антипат
https://docs.the-tale.org/ru/stable/external_api/methods.html?highlight=%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82#id23
Чуть выше промотать, будет ссылка на константы.
На данный момент константы недоступны (по крайней мере если следовать документации) - https://static.the-tale.org/static/244/game/data/constants.js

https://static.the-tale.org/static/244/ вот эту "часть урла" нужно получать с помощью метода "/api/info". В ответе будет актуальный путь до статики текущей версии игры.
Антипат
[LjUA] Офицер
могущество: 2242
длань судьбы
орк Ширагар
136 уровня
CrazyNiger
Ага, получил - static.the-tale.org/static/0.4.4.1/
Но у меня почему-то 403 по этой ссылке :(
CrazyNiger
[DRAGO] Магистр
могущество: 9737
длань судьбы
мужчина Злобный Дракон
261 уровня
Антипат
CrazyNiger
Ага, получил - static.the-tale.org/static/0.4.4.1/
Но у меня почему-то 403 по этой ссылке :(
Ну так это только часть урла, дальше надо указывать, что тебе нужно:
Антипат
[LjUA] Офицер
могущество: 2242
длань судьбы
орк Ширагар
136 уровня
CrazyNiger
❤❤❤