Zhabogram 2.0 — транспарт з Jabber ў Telegram

Zhabogram – транспарт (мост, шлюз) з сеткі Jabber (XMPP) у сетку Telegram, напісаны на Ruby. Пераемнік tg4xmpp.

  • Залежнасці

    • Ruby >= 1.9
    • xmpp4r == 0.5.6
    • tdlib-ruby == 2.0 з скампіляваным tdlib == 1.3
  • Магчымасці

    • Аўтарызацыя ў наяўным акаўнце Telegram
    • Сінхранізацыя спісу чатаў з ростэрам
    • Сінхранізацыя статусаў кантактаў з ростэрам
    • Даданне і выдаленне Telegram-кантактаў
    • Падтрымка VCard з аватаркамі
    • Адпраўка, прыём, рэдагаванне і выдаленне паведамленняў
    • Апрацоўка цытат і перасланых паведамленняў
    • Адпраўка і прыём файлаў і спецыяльных паведамленняў (падтрымка фота, відэа, аўдыё, дакументаў, галасавых паведамленняў, стыкераў, анімацый, геалакацый, сістэмных паведамленняў)
    • Падтрымка сакрэтных чатаў
    • Стварэнне, кіраванне і мадэраванне чатаў/супергруп/каналаў
    • Захаванне сесій і аўтаматычнае падключэнне пры ўваходзе ў сетку XMPP
    • Атрыманне гісторыі і пошук па паведамленнях
    • Упраўленне акаўнтам Telegram
  • Значныя змены да версіі 1.0, навіны аб якой не было на LOR:

    • Дададзена апрацоўка SIGINT з карэктным закрыццём усіх сесій
    • Даданыя (і пазней выдаленыя) падтрымка iq:jabber:register (рэгістрацыя карыстальнікаў), iq:jabber:gateway (пошук кантактаў)
    • Доўгія баданні з прафайлерам у Ruby, пакуль не зразумелі, што цячэ tdlib (распрацоўнікі зачынілі баг з WONTFIX гэта фіча)
  • Змены да версіі 2.0:

    • Дададзена падтрымка OTR (калі Zhabogram выкарыстоўваецца абапал — не пытайце.)
    • Выкарыстанне серыялізацыі YAML замест sqlite3 для захавання сесій.
    • Убрана аўтаматычнае вызначэнне часавага пояса ў сувязі з тым, што некаторыя кліенты не прытрымліваюцца пратакола і адпраўляюць кашу.
    • Выпраўлены запыты на аўтарызацыю (падпіску) ад публічных каналаў, з якіх было перанакіравана (forwarded) паведамленне, але падпісчыкам якога вы не з'яўляецеся
  • Змены ў версіі 2.0

    • NB! Зламана зваротная сумяшчальнасць канфіг-файла і файла сесій (для падтрымкі індывідуальных налад у будучыні).
    • Код перапісаны на 80% — цяпер ён у разы больш чытэльны. Унутраная логіка прыведзена ў парадак.
    • Колькасць запытаў да Telegram зменшана ў тры разы
    • Прыбраныя jabber:iq:register, jabber:iq:gateway
    • Перапісаны / каманды - зараз яны розныя для чатаў і для самога транспарта (сістэмныя функцыі). Для атрымання спісу каманд дашліце каманду /help.

Для ўсталёўкі запатрабуецца ўласны Jabber-сервер. Рэкамендуецца атрымаць API ID і API HASH у Telegram для больш стабільнай працы. Падрабязную інструкцыю можна знайсці ў файле README.md.

Крыніца: linux.org.ru

Дадаць каментар