public function handle($stanza, $parent = false) { $message = $stanza->forwarded->message; $jid = explode('/', (string) $message->attributes()->from); $to = current(explode('/', (string) $message->attributes()->to)); if ($message->composing) { $this->event('composing', array($jid[0], $to)); } if ($message->paused) { $this->event('paused', array($jid[0], $to)); } if ($message->gone) { $this->event('gone', array($jid[0], $to)); } if ($message->body || $message->subject) { $m = new \Modl\Message(); $m->set($message, $stanza->forwarded); if (!preg_match('#^\\?OTR#', $m->body)) { $md = new \Modl\MessageDAO(); $md->set($m); $this->pack($m); $this->deliver(); } } }
public function handle($stanza, $parent = false) { $jid = explode('/', (string) $stanza->attributes()->from); $to = current(explode('/', (string) $stanza->attributes()->to)); if ($stanza->composing) { $this->event('composing', array($jid[0], $to)); } if ($stanza->paused) { $this->event('paused', array($jid[0], $to)); } if ($stanza->gone) { $this->event('gone', array($jid[0], $to)); } if ($stanza->body || $stanza->subject) { if ($stanza->request) { $from = (string) $stanza->attributes()->from; $id = (string) $stanza->attributes()->id; \Moxl\Stanza\Message::receipt($from, $id); } $m = new \Modl\Message(); $m->set($stanza, $parent); if (!preg_match('#^\\?OTR#', $m->body)) { $md = new \Modl\MessageDAO(); $md->set($m); $this->pack($m); $this->deliver(); } } }
function onRemoved() { $md = new Modl\MessageDAO(); $md->clearMessage(); $pd = new Modl\PostnDAO(); $pd->deleteNode($this->user->getLogin(), 'urn:xmpp:microblog:0'); RPC::call('Account.clearAccount'); }
public function request() { $this->store(); $session = \Session::start(); if (empty($this->_nickname)) { $this->_nickname = $session->get('username'); } // We clear all the old messages $md = new \Modl\MessageDAO(); $md->deleteContact($this->_to); Presence::muc($this->_to, $this->_nickname); }
public function handle($stanza, $parent = false) { $id = (string) $stanza->attributes()->id; $md = new \Modl\MessageDAO(); $m = $md->getId($id); if ($m) { $m->delivered = gmdate('Y-m-d H:i:s'); $m->newid = $id; $md->set($m); $this->pack($m); $this->deliver(); } }
public function handle($stanza, $parent = false) { if ($stanza->forwarded->delay) { $m = new \Modl\Message(); $m->set($stanza->forwarded->message, $stanza->forwarded); if (!preg_match('#^\\?OTR#', $m->body)) { $md = new \Modl\MessageDAO(); $md->set($m); $this->pack($m); $this->deliver(); } } }
/** * @brief Get history */ function ajaxGetHistory($jid) { if (!$this->validateJid($jid)) { return; } $md = new \Modl\MessageDAO(); $messages = $md->getContact(echapJid($jid), 0, 1); $g = new \Moxl\Xec\Action\MAM\Get(); $g->setJid(echapJid($jid)); if (!empty($messages)) { $g->setStart(strtotime($messages[0]->published)); } $g->request(); }
function ajaxSend($to, $pack, $file) { if (!$this->validateJid($to)) { return; } list($key, $ext) = explode('.', $file); $filepath = dirname(__FILE__) . '/stickers/' . $pack . '/' . $key . '.png'; if (!file_exists($filepath)) { return; } // We get the base64 $base64 = base64_encode(file_get_contents($filepath)); // Caching the picture if (!file_exists(CACHE_PATH . md5($key) . '.png')) { $p = new Picture(); $p->fromBase($base64); $p->set($key, 'png'); } // Creating a message $m = new \Modl\Message(); $m->session = $this->user->getLogin(); $m->jidto = echapJid($to); $m->jidfrom = $this->user->getLogin(); $m->sticker = $key; $m->body = $this->__('sticker.sent'); $m->published = gmdate('Y-m-d H:i:s'); $session = \Session::start(); $m->id = Uuid::uuid4(); $m->type = 'chat'; $m->resource = $session->get('resource'); // Sending the sticker $html = "<p><img alt='Sticker' src='cid:sha1+" . $key . "@bob.xmpp.org'/></p>"; $p = new Publish(); $p->setTo($m->jidto)->setContent($m->body)->setHTML($html)->setId($m->id)->request(); $md = new \Modl\MessageDAO(); $md->set($m); // Sending it to Chat $packet = new Moxl\Xec\Payload\Packet(); $packet->content = $m; $c = new Chat(); $c->onMessage($packet); }
/** * @brief Get history */ function ajaxGetHistory($jid = false) { $g = new \Moxl\Xec\Action\MAM\Get(); $md = new \Modl\MessageDAO(); if ($jid == false) { $chats = Cache::c('chats'); foreach ($chats as $jid => $value) { $messages = $md->getContact(echapJid($jid), 0, 1); $g->setJid(echapJid($jid)); if (!empty($messages)) { $g->setStart(strtotime($messages[0]->published) + 10); } $g->request(); } } elseif ($this->validateJid($jid)) { $messages = $md->getContact(echapJid($jid), 0, 1); $g->setJid(echapJid($jid)); if (!empty($messages)) { // We add a little delay of 10sec to prevent some sync issues $g->setStart(strtotime($messages[0]->published) + 10); } $g->request(); } }
function prepareMessages($jid) { if (!$this->validateJid($jid)) { return; } $md = new \Modl\MessageDAO(); $messages = $md->getContact(echapJid($jid), 0, 30); if (is_array($messages)) { $messages = array_reverse($messages); foreach ($messages as $message) { $this->prepareMessage($message); } } $view = $this->tpl(); $view->assign('jid', $jid); $cd = new \Modl\ContactDAO(); $contact = $cd->get($jid); $me = $cd->get(); if ($me == null) { $me = new \Modl\Contact(); } $view->assign('contact', $contact); $view->assign('me', false); $left = $view->draw('_chat_bubble', true); $view->assign('contact', $me); $view->assign('me', true); $right = $view->draw('_chat_bubble', true); $room = $view->draw('_chat_bubble_room', true); RPC::call('Chat.setBubbles', $left, $right, $room); RPC::call('Chat.appendMessages', $messages); }
function prepareMessages($jid, $muc = false) { if (!$this->validateJid($jid)) { return; } $md = new \Modl\MessageDAO(); if ($muc) { $messages = $md->getRoom(echapJid($jid)); } else { $messages = $md->getContact(echapJid($jid), 0, $this->_pagination); } if (is_array($messages)) { $messages = array_reverse($messages); /*foreach($messages as $message) { $this->_msgMap[$message->published.$message->jid] = $message; } foreach($this->_msgMap as $message) {*/ foreach ($messages as $message) { $this->prepareMessage($message); } } $view = $this->tpl(); $view->assign('jid', $jid); $cd = new \Modl\ContactDAO(); $contact = $cd->get($jid); $me = $cd->get(); if ($me == null) { $me = new \Modl\Contact(); } $view->assign('contact', $contact); $view->assign('me', false); $left = $view->draw('_chat_bubble', true); $view->assign('contact', $me); $view->assign('me', true); $right = $view->draw('_chat_bubble', true); $room = $view->draw('_chat_bubble_room', true); RPC::call('Chat.setBubbles', $left, $right, $room); //RPC::call('Chat.appendMessages', $messages); RPC::call('Chat.appendMessagesWrapper', $this->_wrapper); RPC::call('MovimTpl.scrollPanel'); }