use Friendica\Database\Database;
use Friendica\Database\DBA;
use Friendica\DI;
-use Friendica\Model\Contact;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\Verb;
class Engagement
{
+ /**
+ * Store engagement data from an item array
+ *
+ * @param array $item
+ * @return void
+ */
public static function storeFromItem(array $item)
{
if (!in_array($item['network'], Protocol::FEDERATED)) {
return;
}
- $parent = Post::selectFirst(['created', 'author-id', 'uid', 'private', 'contact-contact-type'], ['uri-id' => $item['parent-uri-id']]);
+ $parent = Post::selectFirst(['created', 'owner-id', 'uid', 'private', 'contact-contact-type'], ['uri-id' => $item['parent-uri-id']]);
if ($parent['private'] != Item::PUBLIC) {
Logger::debug('Non public posts are not stored', ['uri-id' => $item['uri-id'], 'parent-uri-id' => $item['parent-uri-id'], 'uid' => $parent['uid'], 'private' => $parent['private']]);
return;
$engagement = [
'uri-id' => $item['parent-uri-id'],
- 'author-id' => $parent['author-id'],
+ 'owner-id' => $parent['owner-id'],
'contact-type' => $parent['contact-contact-type'],
'created' => $parent['created'],
'comments' => DBA::count('post', ['parent-uri-id' => $item['parent-uri-id'], 'gravity' => Item::GRAVITY_COMMENT]),
Logger::debug('Engagement stored', ['fields' => $engagement, 'ret' => $ret]);
}
+ /**
+ * Expire old engagement data
+ *
+ * @return void
+ */
public static function expire()
{
DBA::delete('post-engagement', ["`created` < ?", DateTimeFormat::utc('now - ' . DI::config()->get('channel', 'engagement_hours') . ' hour')]);