LINUX.ORG.RU

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

 , ,


7

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-репозиторий

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

А, во: https://core.telegram.org/api/obtaining_api_id

Ъ:


In order to ensure consistency and security across the Telegram ecosystem,
all third-party client apps must comply with the API Terms of Service.
...
1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user‘s knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the ’read‘ statuses of messages (e.g. implementing a ’ghost mode'), preventing typing statuses from being sent/displayed, etc.



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

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

обязательно нужно реагировать на «UpdateDeletedMessage»

Ну вон telegram-purple с Pidgin 2 технически такого сделать не может, потому что Pidgin 2 логи в HTML пишет, чего ему — на уровне ФС парсить все старые логи и выпиливать оттуда сообщение? А юзеров-то навалом. И поясни, как это вообще состыкуется со встроенной в официальные клиенты по требованиям GDPR фичей экспорта. Если юзер экспортнёт переписку в файл, то туда даже официальные клиенты не полезут уже.

никому до этого нет дела

Да вне мира iOS/Android до этого вообще нет дела, то правило про удаление явно на говнолопаты рассчитано, потому что там упомянуты выпилы из магазинов, а какие магазины вне говнолопат? Ну отозвут id, подумаешь — юзер самостоятельно может себе новый id сгенерировать, у некоторых программ, юзающих Client API, это даже в руководстве прописано, ЕМНИП, а зашитов в программу id нету.

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

У меня тут на днях знакомая, которая попыталась авторизоваться TDLib'ом, поймала пермобан.
Тележный саппорт сказал «malicious software was detected, sorry, bye», лол.
Да, пример из официального репозитория tdlib, лол.

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

Хех, это, что ли?

В ишшуях telegram_backup тоже отписывались, что забанило кого-то внезапно. Но то скорее совпадение.

Мне вот интересно, а у этой знакомой зарегистрированные боты были? У меня в последнее время есть подозрение, что в Telegram по этому признаку определяет «разработчиков», и их не трогают.

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

Ну, установка транспорта тащемта предполагает наличие собственного Jabber-сервера.

А в остальном, все XMPP компоненты (транспорты) вроде одинаково подключаются, всё зависит от сервера.
Например, на ejabberd:

listen: 
...
  -
    port: 8888
    module: ejabberd_service
    access: all
    shaper_rule: fast
    ip: "127.0.0.1"
    service_check_from: false
    hosts:
      "transportjid.yourjabberserver.tld":
         password: "very.secret.password"


Ну и далее в конфиге самого транспорта прописываешь эти же параметры для подключения и авторизации.

...
xmpp:
...
    jid: 'transportjid.yourjabberserver.tld'
    host: 'localhost'
    port: 8888
    secret: 'very.secret.password'

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

ага, поэтому там запрещены неофициальные клиенты.

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

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

Русский, зачем ты врешь? Ты не можешь не врать? Вот это что?

А раздел Unofficial apps на официальном сайте это что?

Unigram, a UWP Telegram client for mobile, desktop and Xbox One (based on TDLib)

Telegram CLI for Linux

MadelineProto

Всем приглючилось?

Тебе еще ссылок дать?

anonymous ()

Упало после /login:

[ 1][t22][1554665921.352728844][TdDb.cpp:381][!Td]      Destroy bad sqlite db because of: [Error : 0 : [query:SELECT sqlcipher_export('encrypted')] failed: disk I/O error]
I, [2019-04-07T21:38:41.377309 #8895]  INFO -- [TelegramClient: <jid>/<number>]: Spawning Telegram client instance..
I, [2019-04-07T21:38:41.377555 #8895]  INFO -- [TelegramClient: <jid>/<number>]: Spawning Telegram client instance..
[ 2][t45][1554665921.381902218][TdDb.cpp:280][!Td]      got PRAGMA user_version = 0
[ 2][t45][1554665921.427261353][DialogDb.cpp:54][!Td]   Drop old pmc dialog_db
[ 2][t45][1554665921.428234339][DialogDb.cpp:60][!Td]   Drop dialog_db [version:0][current_db_version:8]
[ 1][t25][1554665921.366179228][TdDb.cpp:381][!Td]      Destroy bad sqlite db because of: [Error : 0 : [query:SELECT sqlcipher_export('encrypted')] failed: disk I/O error]
[ 2][t18][1554665921.380014658][TdDb.cpp:280][!Td]      got PRAGMA user_version = 0
[ 2][t18][1554665921.435289860][DialogDb.cpp:54][!Td]   Drop old pmc dialog_db
[ 0][t18][1554665921.436039448][Status.h:190][!Td]      Unexpected Status [Error : 0 : [query:CREATE TABLE IF NOT EXISTS common (k BLOB PRIMARY KEY, v BLOB)] failed: database is locked] in file /root/td/td/telegram/DialogDb.cpp at line 56
Aborted
anonymous ()
Ответ на: комментарий от anonymous

[ 1][t22][1554665921.352728844][TdDb.cpp:381][!Td] Destroy bad sqlite db because of: [Error : 0 : [query:SELECT sqlcipher_export('encrypted')] failed: disk I/O error]
disk I/O error

такого явно не должно быть
это tdlib причём падает, может, билд не совсем подошёл

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

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

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

1.4. It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user‘s knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the ’read‘ statuses of messages (e.g. implementing a ’ghost mode'), preventing typing statuses from being sent/displayed, etc.

Интересно, скоро ли будет чип в голову, чтобы стирать реплики по запросу авторов. Наговорил такой гадостей, а потом передумал и стер. Ты же владелец авторских прав, фигли)

goingUp ★★★★★ ()

Данный релиз посвящается команде Telegram, которая решила, что третьи лица имеют право затрагивать историю переписки, находящуюся на моих устройствах.

Так и раньше ж можно было удалить любое сообщение, по крайней мере в обычных чатах десктопной версии

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

Раньше собеседник мог удалить свои сообщения
Теперь он может удалить твои

Ну и раньше нельзя было удалять сообщения старше суток, вроде, теперь нет ограничений.

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

Раньше было 48 часов на удаление. Если в течении 48 часов не удалял, то оно оставалось в чате навсегда. Теперь ты можешь в любой момент удалить реплики в чате, так как это твой чат.

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

В соответствии со словарями, прилагательное нелицеприятный — это не основанный на лицеприятии; буквально: не принимающий (от слова «приятие», а не от «приятный») кого-либо по лицу, (ср. невзирая на лица). Синонимы нелицеприятного — непредубежденный, беспристрастный, объективный и т.д.

Ту уверен, что хотел именно это сказать?

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

Почему бы просто не пользоваться джаббером? Альзо, пашеграм не нужен.

Вот прямо всех своих знакомых возьмёшь и пересадишь на Jabber?

пашеграм

Меньшее из зол.
Хотя бы API открытое и нет анальных верификаций.

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

Вот прямо всех своих знакомых возьмёшь и пересадишь на Jabber?

Без проблем.

нет анальных верификаций

Зато есть рега по номеру, что как бы уже намекает на псевдоприватность. Можно, конечно, попердолиться с левой симкой, но зачем, если есть джаббер?

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

Я имею в виду то, что телега не является анонимным мессенджером.

Если в некоторых странах нужно светить документами, чтобы приобрести SIM-карту, тем самым «привязывая» её к своей личности — это проблема законов конкретной страны, а не мессенджера, не?

Я не защищаю телегу с телефоном в качестве логина, но это всё-таки продукт для масс-маркета, тут без этого никуда.

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

98.7% сервисов с «виртуальными номерами» сдадут твой IP-адрес и способ оплаты товарищу майору по первому звонку, даже без официальнго запроса и санкции на проведение ОРМ.

Инфа даже не сто, а двести процентов.

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

Если в некоторых странах нужно светить документами, чтобы приобрести SIM-карту, тем самым «привязывая» её к своей личности — это проблема законов конкретной страны, а не мессенджера, не?

По триангуляции все равно найдут тебя.

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

Справедливости ради, это доступно немногим. Анонимность страдает, приватность меньше. А вот десять лет назад купить переписку абонента sms/историю звонков стоило 500 рублей.

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

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

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

зато вместо этого привязывает IP к человеку, наес.

VPN ты купил, конечно же, за криптовалюту, которую подержал в миксере хотя бы пару дней, через Tor по мобильному интернету с левой SIM-карты и телефона в безлюдном месте?

И да, чтобы не было непоняток — почти все популярные датацентры (Hetzner, OVH — точно) делились персональными данными по запросу российского трёхбуквенного ведомства на букву «Ф».

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

VPN ты купил, конечно же, за криптовалюту, которую подержал в миксере хотя бы пару дней, через Tor по мобильному интернету с левой SIM-карты и телефона в безлюдном месте?

Всякие там наркобарыги, киллеры и прочая — так и делают, и от камер ещё прячутся. И лучше не по мобильному инету, а по публичному вайваю. VPN тут явно лишнее звено, правда; если использовать, то уж лучше наоборот: трафик до точки выхода в TOR завернуть в VPN, чтобы владельцы хотспота не перехватили, а вот с сайтом покупки можно и с выходного узла Tor соединяться непосредственно.

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

Он просто соврал про запрет неофициальных клиентов. По привычке соврал. Не может не врать. Неофициальные клиенты существуют в больших количествах и для упрощения их создания даже есть либа. А если не хочешь готовую либу, то можешь с нуля писать, так как API полностью открыт.

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

It is forbidden to ... preventing typing statuses from being sent/displayed, etc.

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

unclechu ()