Get rid of the "item" table, enhanced "post" tables

This commit is contained in:
Michael 2021-02-13 19:56:03 +00:00
parent c918e83aa2
commit ce6ad1aa73
23 changed files with 736 additions and 235 deletions

View file

@ -35,6 +35,7 @@ use Friendica\Util\Network;
use Friendica\Core\Worker;
use Friendica\Model\Conversation;
use Friendica\Model\FContact;
use Friendica\Model\Item;
use Friendica\Protocol\Relay;
class Delivery
@ -80,9 +81,9 @@ class Delivery
}
$parent_id = intval($item['parent']);
$condition = ['id' => [$target_id, $parent_id], 'visible' => true, 'moderated' => false];
$condition = ['id' => [$target_id, $parent_id], 'visible' => true];
$params = ['order' => ['id']];
$itemdata = Model\Post::select([], $condition, $params);
$itemdata = Model\Post::select(Item::DELIVER_FIELDLIST, $condition, $params);
while ($item = Model\Post::fetch($itemdata)) {
if ($item['verb'] == Activity::ANNOUNCE) {

View file

@ -100,8 +100,8 @@ class Notifier
$delivery_contacts_stmt = DBA::select('contact', ['id', 'url', 'addr', 'network', 'protocol', 'batch'], $condition);
} else {
// find ancestors
$condition = ['id' => $target_id, 'visible' => true, 'moderated' => false];
$target_item = Post::selectFirst([], $condition);
$condition = ['id' => $target_id, 'visible' => true];
$target_item = Post::selectFirst(Item::DELIVER_FIELDLIST, $condition);
if (!DBA::isResult($target_item) || !intval($target_item['parent'])) {
Logger::info('No target item', ['cmd' => $cmd, 'target' => $target_id]);
@ -117,9 +117,9 @@ class Notifier
return;
}
$condition = ['parent' => $target_item['parent'], 'visible' => true, 'moderated' => false];
$condition = ['parent' => $target_item['parent'], 'visible' => true];
$params = ['order' => ['id']];
$items_stmt = Post::select([], $condition, $params);
$items_stmt = Post::select(Item::DELIVER_FIELDLIST, $condition, $params);
if (!DBA::isResult($items_stmt)) {
Logger::info('No item found', ['cmd' => $cmd, 'target' => $target_id]);
return;
@ -792,6 +792,6 @@ class Notifier
*/
public static function isForumPost(array $item)
{
return !empty($item['forum_mode']);
return ($item['gravity'] == GRAVITY_PARENT) && !empty($item['forum_mode']);
}
}

View file

@ -47,13 +47,14 @@ class RemoveContact {
$condition = ['uid' => $contact['uid'], 'contact-id' => $id];
}
do {
$items = Post::select(['id', 'guid', 'uri-id', 'uid'], $condition, ['limit' => 100]);
$items = Post::select(['id', 'post-user-id', 'uri-id', 'guid'], $condition, ['limit' => 100]);
while ($item = Post::fetch($items)) {
Logger::info('Delete removed contact item', ['id' => $item['id'], 'guid' => $item['guid']]);
Logger::info('Delete removed contact item', ['id' => $item['id'], 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
DBA::delete('item', ['id' => $item['id']]);
Post\User::delete(['uri-id' => $item['uri-id'], 'uid' => $item['uid']]);
Post::delete(['uri-id' => $item['uri-id']]);
Post\ThreadUser::delete(['post-user-id' => $item['post-user-id']]);
Post\Thread::delete(['uri-id' => $item['uri-id']]);
Post\ThreadUser::delete(['uri-id' => $item['uri-id'], 'uid' => $item['uid']]);
Post\User::delete(['id' => $item['post-user-id']]);
}
DBA::close($items);
} while (Post::exists($condition));