Size: a a a

2020 December 07

A

Arsen in Rust Beginners
diabolo
а зачем так усложнять?
да жизнь научила, что без усложнения потом только больше геморроя будет
источник

KS

Kirill Shelopugin in Rust Beginners
Привет! Посоветуйте библиотеку для использования tdlib api (телеграм апи, НЕ бот апи). Использую первую из выдачи (https://github.com/fewensa/telegram-client), но ее модельки отстают от последней версии протокола, в результате она не может попарсить ответы. Самому очень не хочется писать модели и обвязку для вызовов хттп-апи
источник

JC

Julian =) Coffee in Rust Beginners
Соболезнуем
источник

a

antuan in Rust Beginners
Kirill Shelopugin
Привет! Посоветуйте библиотеку для использования tdlib api (телеграм апи, НЕ бот апи). Использую первую из выдачи (https://github.com/fewensa/telegram-client), но ее модельки отстают от последней версии протокола, в результате она не может попарсить ответы. Самому очень не хочется писать модели и обвязку для вызовов хттп-апи
Посмотри в ишью последнем, там поддержка асинхронного апи
источник

a

antuan in Rust Beginners
И поддердка 1.6. Плюс можно в fantasy подложить съеммку поновей
источник

KS

Kirill Shelopugin in Rust Beginners
antuan
Посмотри в ишью последнем, там поддержка асинхронного апи
Дело не в асинхронном апи, как я понимаю, а в модельках. Там в последней версии моделей есть "обязательное" поле, которого уже выпилили из тг апи, в результате оно не может распарить полученный жсон
источник

a

antuan in Rust Beginners
Kirill Shelopugin
Дело не в асинхронном апи, как я понимаю, а в модельках. Там в последней версии моделей есть "обязательное" поле, которого уже выпилили из тг апи, в результате оно не может распарить полученный жсон
И много таких ошибок пофикшено.
Код ген сделан так, что все поля обязательными, все необязательное требует соответствующего указания в кодгене.
источник

KS

Kirill Shelopugin in Rust Beginners
antuan
И много таких ошибок пофикшено.
Код ген сделан так, что все поля обязательными, все необязательное требует соответствующего указания в кодгене.
То есть мне придется локально спуллить этот кодген, подложить ему актуальную схему, сбилдить и использовать локально собранную версию? Потому что та, что тянется с crates, отстаёт от протокола.
источник

KS

Kirill Shelopugin in Rust Beginners
Если конкретнее - речь о вот этом поле
https://github.com/fewensa/rtdlib/blob/master/src/types/chat.rs#L53
Оно уже отсутствует в протоколе https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1chat.html
источник

a

antuan in Rust Beginners
Kirill Shelopugin
То есть мне придется локально спуллить этот кодген, подложить ему актуальную схему, сбилдить и использовать локально собранную версию? Потому что та, что тянется с crates, отстаёт от протокола.
В ишью в предпоследнем сообщении ссылочки на форки. Там уже все актуально вроде
источник

a

antuan in Rust Beginners
antuan
В ишью в предпоследнем сообщении ссылочки на форки. Там уже все актуально вроде
Ток мб малость нестабильным может быть...)
Но я юзаю активно, вроде ок. У меинтейнера, увы, нет свободного времени :(

Либо да, пулль fantasy, подклажывай нужную схему и юзай сгенеренный код.
источник

KS

Kirill Shelopugin in Rust Beginners
antuan
В ишью в предпоследнем сообщении ссылочки на форки. Там уже все актуально вроде
Кажется, нет. Посмотрел на форки fantasy, посмотрел на ветки - это поле там всё ещё есть.
По крайней мере вот нашел самую свежую ветку с коммитом 10-дневной давности - поле присутствует
https://github.com/aCLr/fantasy/blob/features/client-async/schema/master/td_api.tl
Напротив, там даже есть поля, которые еще раньше выпилили из протокола. А каким ты пользуешься? Или сам кодген делаешь?
источник

a

antuan in Rust Beginners
Kirill Shelopugin
Кажется, нет. Посмотрел на форки fantasy, посмотрел на ветки - это поле там всё ещё есть.
По крайней мере вот нашел самую свежую ветку с коммитом 10-дневной давности - поле присутствует
https://github.com/aCLr/fantasy/blob/features/client-async/schema/master/td_api.tl
Напротив, там даже есть поля, которые еще раньше выпилили из протокола. А каким ты пользуешься? Или сам кодген делаешь?
1.6. Но если появилась новее, ничего не мешает скормить ему новую схему (.tl-файлик), можно нарыть в доках tdlib.
Если 1.6 самая новая, то можно сходить в fantasy/schema/td_type_fill.toml и по аналогии с другими полями\структурами задать optional=true. Ну и пулл-реквест закинуть было бы неплохо, да.
Есличё, все это навертел не я, просто много времени потратил, в этом добре пытаясь разобраться
источник

KS

Kirill Shelopugin in Rust Beginners
antuan
1.6. Но если появилась новее, ничего не мешает скормить ему новую схему (.tl-файлик), можно нарыть в доках tdlib.
Если 1.6 самая новая, то можно сходить в fantasy/schema/td_type_fill.toml и по аналогии с другими полями\структурами задать optional=true. Ну и пулл-реквест закинуть было бы неплохо, да.
Есличё, все это навертел не я, просто много времени потратил, в этом добре пытаясь разобраться
Интересно. Я локально собирал tdlib 1.6.0 версии (самая новая 1.7.0), запускал с 1.6.0 версией либы с crates - выдавало какую-то ошибку, связанную с версией. Я подумал, что дело в том, что 1.7.0 последняя, собирал её (и получал ошибку с отсутствием поля). Попробую собрать tdlib 1.6.0 и воспользоваться последним telegram-client с crates.
источник

a

antuan in Rust Beginners
Kirill Shelopugin
Интересно. Я локально собирал tdlib 1.6.0 версии (самая новая 1.7.0), запускал с 1.6.0 версией либы с crates - выдавало какую-то ошибку, связанную с версией. Я подумал, что дело в том, что 1.7.0 последняя, собирал её (и получал ошибку с отсутствием поля). Попробую собрать tdlib 1.6.0 и воспользоваться последним telegram-client с crates.
А в какой структуре изменения?
источник

KS

Kirill Shelopugin in Rust Beginners
antuan
А в какой структуре изменения?
Всё та же - Chat. Если глянуть вот тут, то там есть описания, что убрали
https://github.com/tdlib/td/blob/master/CHANGELOG.md
Removed the field pinned_message_id from the class chat.
источник

KS

Kirill Shelopugin in Rust Beginners
Сейчас посмотрим, что будет, если с master-версией либы и tdlib 1.6.0 вызвать
источник

a

antuan in Rust Beginners
Kirill Shelopugin
Всё та же - Chat. Если глянуть вот тут, то там есть описания, что убрали
https://github.com/tdlib/td/blob/master/CHANGELOG.md
Removed the field pinned_message_id from the class chat.
Много затащили. Не буду пока на 1.7 переезжать :)
источник

KS

Kirill Shelopugin in Rust Beginners
А как у тебя работает-то оно? Там где-то посылается версия используемого протокола?
источник

KS

Kirill Shelopugin in Rust Beginners
Видимо, моя проблема где-то в этом - посылается версия протокола, несовместимая с тем, что сделал кодген.
источник