[NEW] implemented XEP-0030 (Service Discovery) — you can now see transport in service discovery
[NEW] implemented XEP-0077 (In-Band Registration) — now you can also start session from GUI Jabber client
[NEW] implemented XEP-0100 iq:jabber:gateway — you can now add Telegram contact from your GUI Jabber client
[NEW] implemented presence cache. now sending presences once a minute to prevent presence flooding
[FIX] fixed online presence after establishing telegram session and offline after disposing session
[FIX] won't use tdlib message database anymore, implemented our own messages cache
[FIX] show "chat created" message correctly
[FIX] fixed /info command
[FIX] fixed closing secret chats
[UPD] now you can start secret chat directly by sending /secret to contact
[UPD] /debug renamed to /info, now shows active sesions, removed memory profiling as it does not helps
[UPD] removed main loop (but still shutting down correctly) — use systemd etc. to restart transport correctly
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.
[FIX] fixed sending messages to unavailable chat
[FIX] some fixes in /members command
[UPD] better formatting of /help message
[ADD] add /info id command to get user/chat info by its id
[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
[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
[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
[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