LINUX.ORG.RU

Zhabogram 0.1 — Транспорт из Telegram в Jabber

 , ,


6

3

Zhabogram — транспорт (мост, шлюз) из сети Jabber (XMPP) в сеть Telegram, написанный на Ruby, преемник tg4xmpp.
Данный релиз посвящается команде Telegram, которая решила, что третьи лица имеют право затрагивать историю переписки, находящуюся на моих устройствах.

  • Зависимости:

    • Ruby >= 1.9
    • ruby-sqlite3 >= 1.3
    • xmpp4r == 0.5.6
    • tdlib-ruby == 2.0 и скомпилированная tdlib == 1.3
  • Возможности:

    • Авторизация в Telegram
    • Синхронизация списка чатов с ростером
    • Отправка и приём сообщений, в т.ч. в группах и супергруппах
    • Сохранение сессий, автоматическое восстановление и завершение сессии Telegram при входе и выходе из Jabber
    • Приём и сохранение файлов (поддерживаются документы, фото, аудио и стикеры)

Фичреквесты и баг-репорты принимаются.

>>> Mercurial-репозиторий

Ответ на: комментарий от Neko_Kun

Да при чем тут дизайн? У ТГ есть апи, есть возможность отправлять сообщения вообще тупо curl'ом. Самый удобный способ для сообщений от мониторинга, например.

Nill ()
Ответ на: комментарий от xaizek

А не только лишь участники переписки? Просто это не третьи лица.

Видимо, вы не вполне правильно понимаете термин «третьи лица». В данном случае имеет место взаимодействие между владельцем устройства и «хозяином» вредоносной софтины, на этом устройстве установленной (да, телеграм и всё что с ним связано — вредоносный софт; с каких пор? вот ровно с этих, когда решили, что им всё можно). Все остальные, будь они хоть пятьсот раз «участники переписки», являются третьими лицами. И то, что хозяева телеграма считают возможным удалять сообщения на чьём-то устройстве по просьбе не любых третьих лиц, а только удовлетворяющих определённым условиям, не отменяет того факта, что те лица всё-таки третьи. И что их софт — вредоносный.

Croco ()
Ответ на: комментарий от anonymous

По мнение ВС РФ, например, для записи разговора достаточно того, что одна сторона(то есть записывающий) знает об этом.

Вот именно. Второго участника разговора никто не спрашивает и не должен спрашивать, ибо это моё дело, что мне делать со звуком, издаваемым мембраной МОЕГО телефона. Хочу — пишу, не хочу — не пишу. Не нравится — не разговаривай. А хозяева «телеги» решили, что, видите ли, участник коммуникации имеет право (!) удалить (!) запись разговора с устройства, принадлежащего другому участнику.

На кол за такое как минимум. Впрочем, я изначально не вполне понимал, как можно пользоваться телеграмом.

Croco ()

Вообще штука-то хорошая, нужная, вот только не буду я ради этого на сервере собирать ни экосистему для Ruby, ни mercurial. Жизнь коротка.

Croco ()
Ответ на: комментарий от odin_ago

Наверно если пораскинуть мозгом, твой бэкап = пару .json файлов не являются доказательством ибо, могут быть тобой же подправлены? А переписка с аккаунта является доказательством ?

shpinog ()
Ответ на: комментарий от Croco

имеет право (!) удалить (!) запись разговора с устройства, принадлежащего другому участнику.

1 - Он не удаляет на прямую, пока ты не законектишься к серверу ничего не удалится. 2 - И это прекрасно, разговор это сумма сообщений двух людей и более, если все участники имеют равные права на это «общее» - это справедливо. 3 - Устройство твоё, но не всё на нём «твоё». Пока вроде никто не приходит и телефон не забирает, а следую такой логике то и git не Го*но, и модерация Го*но, и отсутствие модерации тоже Го*но.

Всегда удивляюсь, у вас вроде хорошие книги, топите за свободу.

издаваемым мембраной МОЕГО телефона

Он ваш формально, и динамик тоже не ваш, вы не являетесь абсолютным лицензиатом всех технологий применяемых в нём. Вы не можете при наличии возможностей воспроизвести «свой» телефон, ибо являетесь держателем патентов, следовательно, он не ваш.

shpinog ()
Ответ на: комментарий от shpinog

издаваемым мембраной МОЕГО телефона

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

Совсем дурак штоле? Настолько копирасты уже мозги запудрили?

anonymous ()
Ответ на: комментарий от Croco

А я думаю наоборот. Софт – лишь посредник между участниками переписки. Удаляют не авторы телеграма (они предоставляют строго определённую возможность), а непосредственные участники переписки, которых я не могу назвать третьими лицами, ведь они же авторы сообщений.

xaizek ★★★★★ ()
Ответ на: комментарий от anonymous8

А, тогда это уже хуже. Я собственно об этом моменте и спрашивал, хотя они всё равно не «третья сторона» в моём понимании термина. Мне тоже не нравится, когда я не могу найти свои сообщения на лоре из-за того, что тему/ветку снесли (доступ мне к моим же сообщениям не должен быть ограничен).

xaizek ★★★★★ ()
Ответ на: комментарий от Nill

Маня, API ботов есть у многих мессенджеров, и везде он простой, как валенок, что можно хоть курлой отправлять. К полноценному Client API он отношения не имеет; документацию по Client API давным-давно забросили, оно живёт за счёт того, что из официального клиента выдирают схему функций; если это закручивание гаек продолжится и ещё и официальные клиенты позакрывают — станет вообще печально. И даже сейчас в Client API зубодробительное байтодрочерство с велосипедной криптографией, его так просто на коленке не реализуешь. С точки зрения производительности и безопасности это, допустим, хорошо — макакичи, которые без REST и JSON шагу ступить не могут, должны страдать — но тем не менее, показательно. У Viber, например, тоже кастомный обфусцированный протокол с кучей магических констант, вот только ни документации, ни открытых реализаций нету, как результат — сторонних реализаций 0.

anonymous ()
Ответ на: комментарий от Croco

Вредоносность — вещь субъективная. Банальный netcat по мнению всяких там ФСБ тоже вредоносен: ведь им можно просто взять и переслать с компьютера на компьютер сообщения, да без идентификации, да без привязки к телефону, да как так-то? а вдруг там террористы? надо срочно этот ваш KISS запретить, разрешить устанавливать соединения только через сертифицированную библиотеку на полгигабайта, прибитую гвоздями к Национальной ОС(tm) — ну чтоб как в банковской сфере всё было, а то ишь распоясались.

anonymous ()
Ответ на: комментарий от anonymous

Совсем дурак штоле? Настолько копирасты уже мозги запудрили?

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

shpinog ()
Ответ на: комментарий от Croco

не буду я ради этого на сервере собирать ни экосистему для Ruby, ни mercurial. Жизнь коротка.

То есть поставить Ruby & Mercurial для тебе нетривиальная задача? Как с таким уровнем некомпетентности ты на ЛОР-то умудряешься заходить?

zabbal ()

тем временем, тихо и незаметно v0.3

 	
Release v0.3

[UPD] more correct way to handle user/chat/auth updates
[UPD] removed successful login message, using presence instead
[NEW] config option `content_upload_prefix` that says which url prefixes will be treated as media and uploaded as file to telegram
[NEW] processing self outgoing messages that sent via another telegram instance
[NEW] added gif animations, locations, video, chat events support
[NEW] control commands implemented:
	/s/old/new (edit), /d (delete), /info @username, /add @username or uid, /join invite.link or id, /invite @username, /kick @username, /ban @username [hours], /block, /unblock, /leave, /delete



почти весь функционал из tg4xmpp реализован в жабограме, кроме vcard'ов.

annerleen ★★ ()
Ответ на: комментарий от shpinog

И это прекрасно, разговор это сумма сообщений двух людей и более, если все участники имеют равные права на это «общее» - это справедливо

какой же это разговор, если каждый будет говорить за другого?

Пока вроде никто не приходит и телефон не забирает

телефон не забирают, а данные удаляют.

и модерация Го*но

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

anonymous ()

тем временем, v0.4

- завезли поддержку VCards
- избавились от тредов, теперь не должно иногда сегфолтится
- выключили использование локальной БД в tdlib, теперь кушоем меньше памяти а так же корректно (насовсем), удаляем чаты

стоит забабахать новую новость, или нет?

annerleen ★★ ()
Последнее исправление: annerleen (всего исправлений: 1)
Ответ на: комментарий от zabbal

То есть поставить Ruby & Mercurial

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

Croco ()
Ответ на: комментарий от xaizek

Удаляют не авторы телеграма (они предоставляют строго определённую возможность), а непосредственные участники переписки,

Неважно. Есть понятие «интересов третьих лиц», и при этом вряд ли найдётся хоть один юрист, который заявит, что любые (пусть даже законные, хотя в данном случае они не законны ни разу) интересы третьих лиц должны автоматически удовлетворяться.

Даже если я вот лично у вас сопру, скажем, э... подзорную трубу, во (это чтобы совсем абстрагироваться от конкретики телеграма) и отнесу её к себе домой, она, труба эта, моей не станет, останется вашей. Но при этом вы не сможете просто взломать дверь моей квартиры и забрать свою подзорную трубу — точнее, если вы это сделаете, то сядете за кражу со взломом, несмотря на то, что труба ваша. И если, скажем, вы обратитесь к тем, кто умеет вскрывать запертые двери — ну, там, всякие службы спасения etc — то они по вашей заявке ломать мою дверь не будут. И это как раз будет ситуация с заявленными интересами третьих лиц, причём третьим лицом будете вы: первые два — я и тот, кого просят ломать дверь моей квартиры, а он отказывается, все остальные — третьи. Несмотря на то, что ваши интересы (забрать свою собственную трубу) тут совершенно законны.

я не могу назвать третьими лицами, ведь они же авторы сообщений.

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

Croco ()
Ответ на: комментарий от Croco

а кто-то их стирает — то первые два лица здесь я и тот, кто стирает (в рассматриваемом случае — телеграм)

Так я телеграм за лицо не считаю, это же не субъект, а лишь программа. И здесь не авторы удаляют, они лишь предоставляют средства удаления. Или получается, что при rm file тоже участвуют два лица (я и rm)? Я понимаю, что авторы могут нести отвественность, но разве это делает их лицами? При убийстве ножом, его производители же не идут в суд.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

Так я телеграм за лицо не считаю, это же не субъект, а лишь программа

В данном случае это не программа, это некое лицо, предоставившее возможность сделать что-то там с моим телефоном. С помощью программы или как-то иначе — неважно. В норме ни у кого нет доступа к моему телефону, а они вот предоставили.

Или получается, что при rm file тоже участвуют два лица (я и rm)

rm не предоставляет никуда никакого доступа, особенно туда, куда доступа быть не должно

авторы могут нести отвественность, но разве это делает их лицами?

В данном случае речь точно не об авторах, речь о владельце системы, которая помимо прочего предоставляет (да, именно третьим лицам) незаконный доступ к моей системе.

При убийстве ножом, его производители же не идут в суд.

Это абсолютно некорректная аналогия. Корректная аналогия была бы сложнее: например, представьте себе, что какая-нибудь коммунальная служба, ну там водопровод, канализация, энергоснабжение — встроила в свои оконечные устройства возможность их при некоторых условиях дистанционно взрывать. И поставила такое оконечное устройство в вашей квартире. А потом кто-то третий, которому вы, например, что-то когда-то не так сказали или не так посмотрели, вас взял да и взорвал, причём ему коммунальщики такую возможность сознательно предоставили (ну, мол, наши замечательные оконечные устройства позволяют взрывать всяких нехороших людей, которые на других людей не так смотрят или что-то им не то говорят, и это правильно).

Croco ()

апдейты

Release v0.8

[ADD] added /setname, /setusername, /setbio, /setpassword commands (see /help)


Release 0.7
[FIX] now trying to revive stream if any exception occured
[FIX] fixed >quotes without messages ID
[UPD] using unicode symbols to compact msg prefix
[UPD] logging slightly modified
[UPD] added garbage collection after each incoming message


Release 0.6.1
[FIX] fixed messages echo when xmpp session goes offline
[UPD] do not sync all telegram statuses immediately because it leads to stream error
[UPD] now using messages and files database again to reduce thousands of requests


Release 0.6
[NEW] broadcasting vcard photo update
[NEW] new commands: /secret, /group, /supergroup, /channel, /search, /history (send /help to any contact)
[UPD] improved formatting

annerleen ★★ ()