Browse Source

Small adjustments on PresenceBuffer, fix rooms presences

pull/932/head
Timothée Jaussoin 6 years ago
parent
commit
2a6c41a500
  1. 2
      app/PresenceBuffer.php
  2. 48
      lib/moxl/src/Moxl/Xec/Action/Presence/Muc.php
  3. 16
      lib/moxl/src/Moxl/Xec/Payload/Presence.php

2
app/PresenceBuffer.php

@ -54,7 +54,7 @@ class PresenceBuffer
{
// Only presences that can be inserted, not updated
if ($presence->created_at == null) {
$this->_models[$presence->muc ? $presence->mucjid : $presence->jid.$presence->resource] = $presence->toArray();
$this->_models[$presence->muc ? $presence->jid.$presence->mucjid : $presence->jid.$presence->resource] = $presence->toArray();
$this->_calls->push($call);
} else {
$presence->save();

48
lib/moxl/src/Moxl/Xec/Action/Presence/Muc.php

@ -59,32 +59,32 @@ class Muc extends Action
$presence->mucjid = current(explode('/', (string)$stanza->attributes()->to));
}
PresenceBuffer::getInstance()->append($presence, function () use ($presence) {
if ($this->_mam) {
$message = \App\User::me()->messages()
->where('jidfrom', $this->_to)
->whereNull('subject')
->orderBy('published', 'desc')
->first();
$g = new \Moxl\Xec\Action\MAM\Get;
$g->setTo($this->_to)
->setLimit(300);
if (!empty($message)
&& strtotime($message->published) > strtotime('-3 days')) {
$g->setStart(strtotime($message->published));
} else {
$g->setStart(strtotime('-3 days'));
}
if (!$this->_mam2) {
$g->setVersion('1');
}
$g->request();
if ($this->_mam) {
$message = \App\User::me()->messages()
->where('jidfrom', $this->_to)
->whereNull('subject')
->orderBy('published', 'desc')
->first();
$g = new \Moxl\Xec\Action\MAM\Get;
$g->setTo($this->_to)
->setLimit(300);
if (!empty($message)
&& strtotime($message->published) > strtotime('-3 days')) {
$g->setStart(strtotime($message->published));
} else {
$g->setStart(strtotime('-3 days'));
}
if (!$this->_mam2) {
$g->setVersion('1');
}
$g->request();
}
PresenceBuffer::getInstance()->append($presence, function () use ($presence) {
$this->pack($presence);
$this->deliver();
});

16
lib/moxl/src/Moxl/Xec/Payload/Presence.php

@ -27,15 +27,15 @@ class Presence extends Payload
$presence = DBPresence::findByStanza($stanza);
$presence->set($stanza);
PresenceBuffer::getInstance()->append($presence, function () use ($presence, $stanza) {
$refreshable = $presence->refreshable;
if ($refreshable) {
$r = new Get;
$r->setAvatarhash($presence->avatarhash)
->setTo((string)$refreshable)
->request();
}
$refreshable = $presence->refreshable;
if ($refreshable) {
$r = new Get;
$r->setAvatarhash($presence->avatarhash)
->setTo((string)$refreshable)
->request();
}
PresenceBuffer::getInstance()->append($presence, function () use ($presence, $stanza) {
if ($presence->muc
&& isset($stanza->x)) {
foreach ($stanza->x as $x) {

Loading…
Cancel
Save