о telegram

48 views
Skip to first unread message

илья пащук

unread,
Mar 7, 2021, 6:07:06 AM3/7/21
to luwrain-...@googlegroups.com
здравствуйте.


поставил tdlib.

как теперь войти, чтобы использовать tg в luwrain?

Michael Pozhidaev

unread,
Mar 8, 2021, 4:10:47 AM3/8/21
to luwrain-...@googlegroups.com
Илья, большое спасибо, что Вы заинтересовались этим! Опишу обязательно!
--
Michael Pozhidaev (Mr.), Tomsk, Russia.
Russian: http://www.marigostra.ru | English: http://www.marigostra.com
The LUWRAIN project: http://luwrain.org
The LUWRAIN Books project: http://books.luwrain.org

Michael Pozhidaev

unread,
Mar 9, 2021, 3:15:23 AM3/9/21
to luwrain-...@googlegroups.com
Илья, здравствуйте!

Если слить git для tdlibи собрать всё, что причитается для Java, то там
будет пример приложения в каталоге example. Я сейчас обновил свою
локальную копию и убедился, что оно оттуда никуда не делось. Этот
example - примитивное консольное приложение которое позволяет провести
авторизацию. Оно интерактивное, в нём надо указать номер телефона и
затем ввести код подтверждения. После этого в текущем каталоге появится
каталог tdlib. Его надо сохранить.

Далее нужно создать каталог ~/.luwrain/var/luwrain.telegram и в него
положить сохранённый tdlib.

После этого при открытии клиента Telegram в luwrain у Вас будет список
Ваших чатов, в которых можно писать.

Этот клиент можно развивать и постепенно превратить его в полноценный
клиент для Telegram. Как и что делать можно подумать коллективно.

Илья Пащук

unread,
Mar 9, 2021, 11:03:26 AM3/9/21
to luwrain-...@googlegroups.com
и да, сейчас качал самую последнюю nightly, там даже в списке команд по
alt+x ничего про телеграм не было.


вы его вырезали или просто он не появляется, пока не будет нужных файлов?

Michael Pozhidaev

unread,
Mar 10, 2021, 3:10:03 AM3/10/21
to luwrain-...@googlegroups.com
Не вырезал. Если нажать Alt+X и ввести console, там будет длинный лог с
историей загрузки расширений. Если что не так, там должен быть след, н
но я на следующей сборке так или иначе посмотрю, что там.

илья пащук

unread,
Mar 10, 2021, 12:27:35 PM3/10/21
to luwrain-...@googlegroups.com
сейчас это всё собрал, там в каталоге build появился файл tg_cli, оно?


требует при запуске какие-то api-ключи

Michael Pozhidaev

unread,
Mar 10, 2021, 8:20:59 PM3/10/21
to luwrain-...@googlegroups.com
Илья, здравствуйте!

Не, на то не похоже. Надо собрать то, что лежит в каталоге
examples/java. API-ключи - идентификаторы клиента. Подразумевается, что
LUWRAIN как клиент должен быть зарегистрирован в сервисе. Мы когда-то
это делали, но сейчас теми ключами не пользуемся, поскольку в tdlib в
примере есть уже общественно доступные ключи. Их можно найти в
исходниках:

parameters.apiId = 94575;
parameters.apiHash = "a3406de8d171bb422bb6ddf3bbd800e2";

Но спрашивать их никто сейчас не должен. Если есть запрос с ними, это
не оно.


илья пащук <ilusha....@gmail.com> writes:

> сейчас это всё собрал, там в каталоге build появился файл tg_cli, оно?
>
>
> требует при запуске какие-то api-ключи

Alexander Epaneshnikov

unread,
Mar 11, 2021, 4:17:21 AM3/11/21
to luwrain-...@googlegroups.com, Michael Pozhidaev
11.03.2021 4:20, Michael Pozhidaev пишет:
> Илья, здравствуйте!
>
> Не, на то не похоже. Надо собрать то, что лежит в каталоге
> examples/java. API-ключи - идентификаторы клиента. Подразумевается, что
> LUWRAIN как клиент должен быть зарегистрирован в сервисе. Мы когда-то
> это делали, но сейчас теми ключами не пользуемся, поскольку в tdlib в
> примере есть уже общественно доступные ключи. Их можно найти в
> исходниках:
>
> parameters.apiId = 94575;
> parameters.apiHash = "a3406de8d171bb422bb6ddf3bbd800e2";
>
> Но спрашивать их никто сейчас не должен. Если есть запрос с ними, это
> не оно.
>
>
> илья пащук <ilusha....@gmail.com> writes:
>
>> сейчас это всё собрал, там в каталоге build появился файл tg_cli, оно?
>>
>>
>> требует при запуске какие-то api-ключи
к слову встроенные в tdlib ключи очень ограничены по количеству запросов.

--
Sincerely, Alexander.

Michael Pozhidaev

unread,
Mar 11, 2021, 4:51:18 AM3/11/21
to Alexander Epaneshnikov, luwrain-...@googlegroups.com
Alexander Epaneshnikov <aarn...@gmail.com> writes:

> к слову встроенные в tdlib ключи очень ограничены по количеству
> запросов.

А где про это можно почитать? Использую активно, проблем не было.

Alexander Epaneshnikov

unread,
Mar 11, 2021, 4:54:35 AM3/11/21
to Michael Pozhidaev, luwrain-...@googlegroups.com
11.03.2021 12:51, Michael Pozhidaev пишет:
> Alexander Epaneshnikov <aarn...@gmail.com> writes:
>
>> к слову встроенные в tdlib ключи очень ограничены по количеству
>> запросов.
> А где про это можно почитать? Использую активно, проблем не было.
>
честно говоря я уже не помню где я читал об этом. толе в доках самой
либы, Толи в доках какого-то клиента на её основе. но с ограничениями
этих ключей я столкнулся сам. это было месяца 4 назад. может сейчас что
и изменилось.

--
Sincerely, Alexander.

илья пащук

unread,
Mar 11, 2021, 11:18:31 AM3/11/21
to luwrain-...@googlegroups.com
в любом случае, бывал на my.telegram.org и не заметил в процессе
регистрации ничего сложного.

если только ключь не завязан на авторизацию, но тогда тем более надо
делать какой-то виззард.


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

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


если у tdlib одинаковый формат хранения для всех реализаций, то, может,
можно создать нативные exe-шники, статически слинкованные с tdlib, чтобы
юзеру не надо было тянуть столько машинерии лишь для того, чтобы
залогиниться?

илья пащук

unread,
Mar 11, 2021, 12:46:55 PM3/11/21
to luwrain-...@googlegroups.com
unable to load JNI library
libtdjni.so:java.lang.UnsatisfiedLinkError:/tmp/.lwr.jni.11882457965803435307.libtdjni.so.tmp:
libssl.so.1.0.0: невозможно открыть разделяемый объектный файл: Нет
такого файла или каталога


это было в console

Michael Pozhidaev

unread,
Mar 12, 2021, 6:39:19 AM3/12/21
to luwrain-...@googlegroups.com
Илья, вероятность, что libssl у Вас не установлен, невелика. Стало быть,
у Вас какая-то другая версия. Поскольку Вы всё равно компилируете tdlib,
давайте запакуем её. Как срочную меру, может быть, можно загрузить Вашу
собранную версию JNI для tdlib через LD_PRELOAD.

Издержки бинарной совместимости при использовании JNI: та версия tdlib,
которая запаковалась в дистрибутив, не совместима с libssl, который на
Вашем компьютере.

илья пащук

unread,
Mar 12, 2021, 8:38:50 AM3/12/21
to luwrain-...@googlegroups.com
там же он вроде жалуется именно на отсутствие какого-то файла.


почему бы тогда не тянуть с собой и этот libssl тоже?


tdlib jni у меня лежит по пути /home/u2013/td/tdlib/bin/libtdjni.so


в arch нет пакета именно с именем libssl, возможно, тут это как-то иначе
называется, но, насколько понимаю, если бы у меня не было этой
библиотеки, оно просто не собралось бы и тем более не запустилось
(авторизация через example прошла успешно)


java версии openjdk 15.0.2 2021-01-19

Michael Pozhidaev

unread,
Mar 14, 2021, 5:54:35 AM3/14/21
to luwrain-...@googlegroups.com
Илья, здравствуйте!

>если только ключь не завязан на авторизацию, но тогда тем более надо

Нет, не завязан.

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

Да, и такой шаблон уже создан. Его можно найти в классе
org.luwrain.controls.WizardArea. Все экраны клиента для books являются
его экземплярами. Сейчас предстоит распространить этот опыт на прочие
задачи. Как мне кажется, люди поведение экранов регистрации и пр. для
books понимают довольно хорошо. Следовательно, это можно распространять.

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

Michael Pozhidaev

unread,
Mar 16, 2021, 8:30:06 PM3/16/21
to luwrain-...@googlegroups.com
Илья, здравствуйте!

илья пащук <ilusha....@gmail.com> writes:

> там же он вроде жалуется именно на отсутствие какого-то файла.

Когда версия не совпадает, он тоже говорит, что файл не найден.

> почему бы тогда не тянуть с собой и этот libssl тоже?

Возможно, что так и придётся сделать.

> tdlib jni у меня лежит по пути /home/u2013/td/tdlib/bin/libtdjni.so

Давайте, пожалуйста, первым экспериментом попробует запустить так:

LD_PRELOAD=/home/u2013/td/tdlib/bin/libtdjni.so ./luwrain

Это не единственный способ, конечно, но самый простой. Может сработать.
Если не сработате, применим более методы посложнее.

> в arch нет пакета именно с именем libssl, возможно, тут это как-то

Можно сделать аfind /usr -iname 'libssl*' 2> /dev/null
Будем видно, что там.

> библиотеки, оно просто не собралось бы и тем более не запустилось

Конечно, именно так.

> (авторизация через example прошла успешно)

Круто! Каталог tdlib появился?

илья пащук

unread,
Mar 17, 2021, 1:10:12 PM3/17/21
to luwrain-...@googlegroups.com
/bin/bash: error while loading shared libraries: libjvm.so: cannot open
shared object file: No such file or directory


похоже, эта библиотека загружается раньше, чем нам надо.

и так как не запустились присутствующие, судя по всему, в контейнере
subvirting хуки, отвечающие за подгрузку всяких библиотек из контейнера,
tdlib что-то там не нашла и это обрушило bash, которому она вообще не
требуется.


а в какой среде это компилировалось у вас?

Michael Pozhidaev

unread,
Mar 19, 2021, 3:13:58 AM3/19/21
to luwrain-...@googlegroups.com
Илья, здравствуйте!

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

http://download.luwrain.org/tmp/jni.tar

Это каталог, с которого собираются jar'ы с библиотеками jni. Замените,
пожалуйста, тамошнюю версию tdlib на Вашу и вызовите ./build. Если имя
файла библиотеки отличается от того, который там был, то надо поправить
autoload.txt.

После ./build у Вас должны появиться файлы для linux и windows. Файл,
который для linux, положите, пожалуйста, на место одноимённого файла в
luwrain. После этого tdlib должен активироваться.
--
Michael Pozhidaev (Mr.), Tomsk, Russia.
Russian: http://www.marigostra.ru | English: http://www.marigostra.com
The LUWRAIN Project: http://luwrain.org

илья пащук

unread,
Mar 20, 2021, 8:40:44 AM3/20/21
to luwrain-...@googlegroups.com
проделал, лог попытки запуска во вложении



log.txt

Michael Pozhidaev

unread,
Mar 27, 2021, 4:01:29 PM3/27/21
to luwrain-...@googlegroups.com
Илья, здравствуйте!

Простите, пожалуйста, за задержку с ответом. Рабочая гипотеза - часть на
Java, которая осталась старой, разъехала с той библиотекой, которую Вы
пересобрали. Сейчас попробую изготовить новый jar.

илья пащук <ilusha....@gmail.com> writes:

> проделал, лог попытки запуска во вложении

Reply all
Reply to author
Forward
0 new messages