Zhabogram — a bridge (gateway) from the Jabber (XMPP) network to the Telegram network, written in Ruby. The successor to tg4xmpp.
Dependencies
- Ruby >= 1.9
- xmpp4r == 0.5.6
- tdlib-ruby == 2.0 with compiled tdlib == 1.3
Capabilities
- Authorization in an existing Telegram account
- Syncing chat list with roster
- Syncing contact statuses with roster
- Adding and removing Telegram contacts
- Support for VCard with avatars
- Sending, receiving, editing, and deleting messages
- Handling quotes and forwarded messages
- Sending and receiving files and special messages (support for photos, videos, audio, documents, voice messages, stickers, animations, locations, system messages)
- Support for secret chats
- Creating, managing, and moderating chats/supergroups/channels
- Session preservation and automatic reconnection when logging into XMPP
- Retrieving history and searching through messages
- Managing Telegram account
Notable changes before version 1.0, news of which was not available on LOR:
- Added handling of SIGINT with proper closure of all sessions
- Support for iq:jabber:register (user registration), iq:jabber:gateway (contact search) added (and later removed)
- Long struggles with the profiler in Ruby until we understood that tdlib was leaking (developers closed the bug with WONTFIX — it's a feature)
Changes before version 2.0:
- Added support for OTR (if Zhabogram is used on both sides — don't ask.)
- Using YAML serialization instead of sqlite3 for saving sessions.
- Automatic time zone detection removed due to some clients not following the protocol and sending junk
- Authorization (subscription) requests from public channels, from which a forwarded message was sent, but you are not a subscriber, have been fixed
Changes in version 2.0
- NB! Backward compatibility of config file and session file is broken (to support individual settings in the future).
- Code rewritten 80% — it is now significantly more readable. Internal logic has been tidied up.
- Number of requests to Telegram reduced by three times
- Removed jabber:iq:register, jabber:iq:gateway
- Commands rewritten — now they are different for chats and for the transport itself (system functions). To get the list of commands, send the command /help.
To install, you will need your own Jabber server. It is recommended to obtain the API ID and API HASH from Telegram for more stable operation. A detailed guide can be found in the README.md file.
Source: linux.org.ru
