@logger.info'New message from [%s] to [%s]'%[msg.from,msg.to]
returnself.process_internal_command(msg.from.bare,msg.first_element_text('body'))ifmsg.to==@@transport.jid# treat message as internal command if received as transport jid
return@sessions[msg.from.bare].queue_message(msg.to.to_s,msg.first_element_text('body'))if@sessions.key?msg.from.bareand@sessions[msg.from.bare].online?# queue message for processing session is active for jid from
when'/login'then@sessions[jfrom]=XMPPSession.new(jfrom,body.split[1])# create new session for jid <jfrom> and spawn tg instance
when'/code','/password'then@sessions[jfrom].enter_auth_data(body.split[0][1..8],body.split[1])if@sessions.key?jfrom# pass auth data to telegram instance
when'/logout'then@sessions[jfrom].offline!if@sessions.key?jfrom# go offline
elsereply=Jabber::Message.new;reply.from,reply.to,reply.body,reply.type=@@transport.jid,jfrom,::HELP_MESSAGE,:chat;@@transport.send(reply)# unknown command -- we will display sort of help message.