Warning! It is beta software and it has not been tested thoroughly.
[UPD] Code restructurization. Removed unneccessary XMPPSession class.
[UPD] Recuded memory consumption.
[UPD] Seems like memory leaks fixed too, need test a bit longer
[UPD] Now running in forever-loop, use double Ctrl+C to quit
[ADD] Admin commands /sessions, /debug and /restart
[ADD] New config parameters: xmpp->debug to print XML stream and xmpp->admins[] to give access to above mentioned /commands
[ADD] We can now use memory profiler to get detailed memory usage information: run application with --profiler key (and also gem install memprof2) (yes, fucking leaks...)
[FIX] Fixed secret chat closing (I hope so...)
[UPD] Now gracefully closes all Telegram and XMPP connections when SIGINT received.
I do not fucking know how to deal with memory leaks in Ruby. I tried literally everything.
Unloading TD class, forcing garbage collection, et cetera — nothing helps, it just runs a gig in two days.
So, now we have to kill -INT our transport every... six hours, for example, and monitor/reconnect (for example with systemd).
Fuck ruby & tdlib. Hate.
[NEW] vCard support
[UPD] improved overall stability, no longer use threads
[UPD] no longer using tdlib messages and chats database — now correctly /leaving chats
[UPD] removed /info command because of vCards support
[FIX] fixed code/password forever waiting
[UPD] now completely removing session (from fs too) when /logout
[UPD] most of log messages moved to debug
[UPD] updated help message
[+] New config options (see config.yml.example)
[+] Storing transport sessions in sqlite db
[+] Auto connecting if we have stored session JID that came online
[+] Auto disconnecting when JID going offline
[+] Roster and status synchronisation with Telegram contact list
[+] Added Edited and Deleted Messages support
[+] Add Files (Audio, Photo, Documents, Stickers) support
[+] Added incoming text formatting with MSG ID, user names and login
[~] Some new config options (see config.yml.example)
[~] Some code refactoring