Merge pull request #9801 from annando/protocol-worker
New post class in protocol and worker classes
This commit is contained in:
commit
edf9bdfa14
14 changed files with 97 additions and 111 deletions
|
@ -215,7 +215,7 @@ class Processor
|
|||
*/
|
||||
public static function updateItem($activity)
|
||||
{
|
||||
$item = Item::selectFirst(['uri', 'uri-id', 'thr-parent', 'gravity'], ['uri' => $activity['id']]);
|
||||
$item = Post::selectFirst(['uri', 'uri-id', 'thr-parent', 'gravity'], ['uri' => $activity['id']]);
|
||||
if (!DBA::isResult($item)) {
|
||||
Logger::warning('No existing item, item will be created', ['uri' => $activity['id']]);
|
||||
$item = self::createItem($activity);
|
||||
|
@ -259,7 +259,7 @@ class Processor
|
|||
$item['object-type'] = Activity\ObjectType::COMMENT;
|
||||
}
|
||||
|
||||
if (empty($activity['directmessage']) && ($activity['id'] != $activity['reply-to-id']) && !Item::exists(['uri' => $activity['reply-to-id']])) {
|
||||
if (empty($activity['directmessage']) && ($activity['id'] != $activity['reply-to-id']) && !Post::exists(['uri' => $activity['reply-to-id']])) {
|
||||
Logger::notice('Parent not found. Try to refetch it.', ['parent' => $activity['reply-to-id']]);
|
||||
self::fetchMissingActivity($activity['reply-to-id'], $activity);
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ class Processor
|
|||
$item['diaspora_signed_text'] = $activity['diaspora:comment'] ?? '';
|
||||
|
||||
/// @todo What to do with $activity['context']?
|
||||
if (empty($activity['directmessage']) && ($item['gravity'] != GRAVITY_PARENT) && !Item::exists(['uri' => $item['thr-parent']])) {
|
||||
if (empty($activity['directmessage']) && ($item['gravity'] != GRAVITY_PARENT) && !Post::exists(['uri' => $item['thr-parent']])) {
|
||||
Logger::info('Parent not found, message will be discarded.', ['thr-parent' => $item['thr-parent']]);
|
||||
return [];
|
||||
}
|
||||
|
@ -378,7 +378,7 @@ class Processor
|
|||
}
|
||||
|
||||
foreach ($activity['receiver'] as $receiver) {
|
||||
$item = Item::selectFirst(['id', 'uri-id', 'tag', 'origin', 'author-link'], ['uri' => $activity['target_id'], 'uid' => $receiver]);
|
||||
$item = Post::selectFirst(['id', 'uri-id', 'tag', 'origin', 'author-link'], ['uri' => $activity['target_id'], 'uid' => $receiver]);
|
||||
if (!DBA::isResult($item)) {
|
||||
// We don't fetch missing content for this purpose
|
||||
continue;
|
||||
|
@ -479,7 +479,7 @@ class Processor
|
|||
} else {
|
||||
if (empty($activity['directmessage']) && ($item['thr-parent'] != $item['uri']) && ($item['gravity'] == GRAVITY_COMMENT)) {
|
||||
$item_private = !in_array(0, $activity['item_receiver']);
|
||||
$parent = Item::selectFirst(['id', 'uri-id', 'private', 'author-link', 'alias'], ['uri' => $item['thr-parent']]);
|
||||
$parent = Post::selectFirst(['id', 'uri-id', 'private', 'author-link', 'alias'], ['uri' => $item['thr-parent']]);
|
||||
if (!DBA::isResult($parent)) {
|
||||
Logger::warning('Unknown parent item.', ['uri' => $item['thr-parent']]);
|
||||
return false;
|
||||
|
@ -868,7 +868,7 @@ class Processor
|
|||
}
|
||||
|
||||
$replyto = JsonLD::fetchElement($activity['as:object'], 'as:inReplyTo', '@id');
|
||||
if (Item::exists(['uri' => $replyto])) {
|
||||
if (Post::exists(['uri' => $replyto])) {
|
||||
Logger::info('Post is a reply to an existing post - accepted', ['id' => $id, 'replyto' => $replyto]);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ use Friendica\Core\Protocol;
|
|||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\APContact;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Post;
|
||||
use Friendica\Model\User;
|
||||
use Friendica\Protocol\Activity;
|
||||
use Friendica\Protocol\ActivityPub;
|
||||
|
@ -230,7 +231,7 @@ class Receiver
|
|||
}
|
||||
}
|
||||
|
||||
if (Item::exists(['uri' => $object_id, 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]])) {
|
||||
if (Post::exists(['uri' => $object_id, 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT]])) {
|
||||
// We just assume "note" since it doesn't make a difference for the further processing
|
||||
return 'as:Note';
|
||||
}
|
||||
|
@ -650,10 +651,11 @@ class Receiver
|
|||
}
|
||||
|
||||
if (!empty($reply)) {
|
||||
$parents = Item::select(['uid'], ['uri' => $reply]);
|
||||
while ($parent = Item::fetch($parents)) {
|
||||
$parents = Post::select(['uid'], ['uri' => $reply]);
|
||||
while ($parent = Post::fetch($parents)) {
|
||||
$receivers[$parent['uid']] = ['uid' => $parent['uid'], 'type' => self::TARGET_ANSWER];
|
||||
}
|
||||
DBA::close($parents);
|
||||
}
|
||||
|
||||
if (!empty($actor)) {
|
||||
|
@ -928,7 +930,7 @@ class Receiver
|
|||
} else {
|
||||
Logger::log('Empty content for ' . $object_id . ', check if content is available locally.', Logger::DEBUG);
|
||||
|
||||
$item = Item::selectFirst([], ['uri' => $object_id]);
|
||||
$item = Post::selectFirst([], ['uri' => $object_id]);
|
||||
if (!DBA::isResult($item)) {
|
||||
Logger::log('Object with url ' . $object_id . ' was not found locally.', Logger::DEBUG);
|
||||
return false;
|
||||
|
|
|
@ -87,7 +87,7 @@ class Transmitter
|
|||
*/
|
||||
public static function addRelayServerInboxesForItem(int $item_id, array $inboxes = [])
|
||||
{
|
||||
$item = Item::selectFirst(['uid'], ['id' => $item_id]);
|
||||
$item = Post::selectFirst(['uid'], ['id' => $item_id]);
|
||||
if (empty($item)) {
|
||||
return $inboxes;
|
||||
}
|
||||
|
@ -275,8 +275,8 @@ class Transmitter
|
|||
|
||||
$condition['parent-network'] = Protocol::NATIVE_SUPPORT;
|
||||
|
||||
$items = Item::select(['id'], $condition, ['limit' => [($page - 1) * 20, 20], 'order' => ['created' => true]]);
|
||||
while ($item = Item::fetch($items)) {
|
||||
$items = Post::select(['id'], $condition, ['limit' => [($page - 1) * 20, 20], 'order' => ['created' => true]]);
|
||||
while ($item = Post::fetch($items)) {
|
||||
$activity = self::createActivityFromItem($item['id'], true);
|
||||
$activity['type'] = $activity['type'] == 'Update' ? 'Create' : $activity['type'];
|
||||
|
||||
|
@ -285,6 +285,7 @@ class Transmitter
|
|||
$list[] = $activity['object'];
|
||||
}
|
||||
}
|
||||
DBA::close($items);
|
||||
|
||||
if (!empty($list)) {
|
||||
$data['next'] = DI::baseUrl() . '/outbox/' . $owner['nickname'] . '?page=' . ($page + 1);
|
||||
|
@ -481,7 +482,7 @@ class Transmitter
|
|||
return false;
|
||||
}
|
||||
|
||||
return Item::exists(['id' => $item_id, 'network' => Protocol::ACTIVITYPUB]);
|
||||
return Post::exists(['id' => $item_id, 'network' => Protocol::ACTIVITYPUB]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -593,8 +594,8 @@ class Transmitter
|
|||
}
|
||||
|
||||
if (!empty($item['parent'])) {
|
||||
$parents = Item::select(['id', 'author-link', 'owner-link', 'gravity', 'uri'], ['parent' => $item['parent']]);
|
||||
while ($parent = Item::fetch($parents)) {
|
||||
$parents = Post::select(['id', 'author-link', 'owner-link', 'gravity', 'uri'], ['parent' => $item['parent']]);
|
||||
while ($parent = Post::fetch($parents)) {
|
||||
if ($parent['gravity'] == GRAVITY_PARENT) {
|
||||
$profile = APContact::getByURL($parent['owner-link'], false);
|
||||
if (!empty($profile)) {
|
||||
|
@ -1044,7 +1045,7 @@ class Transmitter
|
|||
public static function createActivityFromItem(int $item_id, bool $object_mode = false)
|
||||
{
|
||||
Logger::info('Fetching activity', ['item' => $item_id]);
|
||||
$item = Item::selectFirst([], ['id' => $item_id, 'parent-network' => Protocol::NATIVE_SUPPORT]);
|
||||
$item = Post::selectFirst([], ['id' => $item_id, 'parent-network' => Protocol::NATIVE_SUPPORT]);
|
||||
if (!DBA::isResult($item)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1055,7 +1056,7 @@ class Transmitter
|
|||
if (!empty($author['nurl'])) {
|
||||
$self = Contact::selectFirst(['uid'], ['nurl' => $author['nurl'], 'self' => true]);
|
||||
if (!empty($self['uid'])) {
|
||||
$forum_item = Item::selectFirst([], ['uri-id' => $item['uri-id'], 'uid' => $self['uid']]);
|
||||
$forum_item = Post::selectFirst([], ['uri-id' => $item['uri-id'], 'uid' => $self['uid']]);
|
||||
if (DBA::isResult($item)) {
|
||||
$item = $forum_item;
|
||||
}
|
||||
|
@ -1644,7 +1645,7 @@ class Transmitter
|
|||
return [];
|
||||
}
|
||||
|
||||
$reshared_item = Item::selectFirst([], ['guid' => $reshared['guid']]);
|
||||
$reshared_item = Post::selectFirst([], ['guid' => $reshared['guid']]);
|
||||
if (!DBA::isResult($reshared_item)) {
|
||||
return [];
|
||||
}
|
||||
|
@ -1903,7 +1904,7 @@ class Transmitter
|
|||
|
||||
$condition = ['verb' => Activity::FOLLOW, 'uid' => 0, 'parent-uri' => $object,
|
||||
'author-id' => Contact::getPublicIdByUserId($uid)];
|
||||
if (Item::exists($condition)) {
|
||||
if (Post::exists($condition)) {
|
||||
Logger::log('Follow for ' . $object . ' for user ' . $uid . ' does already exist.', Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -273,8 +273,7 @@ class DFRN
|
|||
}
|
||||
|
||||
if (!empty($ids)) {
|
||||
$ret = Item::select(Item::DELIVER_FIELDLIST, ['id' => $ids]);
|
||||
$items = Item::inArray($ret);
|
||||
$items = Post::selectToArray(Item::DELIVER_FIELDLIST, ['id' => $ids]);
|
||||
} else {
|
||||
$items = [];
|
||||
}
|
||||
|
@ -361,8 +360,7 @@ class DFRN
|
|||
$condition = ['id' => $item_id];
|
||||
}
|
||||
|
||||
$ret = Item::select(Item::DELIVER_FIELDLIST, $condition);
|
||||
$items = Item::inArray($ret);
|
||||
$items = Post::selectToArray(Item::DELIVER_FIELDLIST, $condition);
|
||||
if (!DBA::isResult($items)) {
|
||||
return '';
|
||||
}
|
||||
|
@ -957,7 +955,7 @@ class DFRN
|
|||
$entry->appendChild($dfrnowner);
|
||||
|
||||
if ($item['gravity'] != GRAVITY_PARENT) {
|
||||
$parent = Item::selectFirst(['guid', 'plink'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
|
||||
$parent = Post::selectFirst(['guid', 'plink'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
|
||||
if (DBA::isResult($parent)) {
|
||||
$attributes = ["ref" => $item['thr-parent'], "type" => "text/html",
|
||||
"href" => $parent['plink'],
|
||||
|
@ -1934,7 +1932,7 @@ class DFRN
|
|||
|
||||
$is_a_remote_action = false;
|
||||
|
||||
$parent = Item::selectFirst(['thr-parent'], ['uri' => $item["thr-parent"]]);
|
||||
$parent = Post::selectFirst(['thr-parent'], ['uri' => $item["thr-parent"]]);
|
||||
if (DBA::isResult($parent)) {
|
||||
$r = q(
|
||||
"SELECT `item`.`forum_mode`, `item`.`wall` FROM `item`
|
||||
|
@ -2008,7 +2006,7 @@ class DFRN
|
|||
if ($Blink && Strings::compareLink($Blink, DI::baseUrl() . "/profile/" . $importer["nickname"])) {
|
||||
$author = DBA::selectFirst('contact', ['id', 'name', 'thumb', 'url'], ['id' => $item['author-id']]);
|
||||
|
||||
$parent = Item::selectFirst(['id'], ['uri' => $item['thr-parent'], 'uid' => $importer["importer_uid"]]);
|
||||
$parent = Post::selectFirst(['id'], ['uri' => $item['thr-parent'], 'uid' => $importer["importer_uid"]]);
|
||||
$item['parent'] = $parent['id'];
|
||||
|
||||
// send a notification
|
||||
|
@ -2087,13 +2085,13 @@ class DFRN
|
|||
// split into two queries for performance issues
|
||||
$condition = ['uid' => $item["uid"], 'author-id' => $item["author-id"], 'gravity' => GRAVITY_ACTIVITY,
|
||||
'verb' => $item['verb'], 'parent-uri' => $item['thr-parent']];
|
||||
if (Item::exists($condition)) {
|
||||
if (Post::exists($condition)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$condition = ['uid' => $item["uid"], 'author-id' => $item["author-id"], 'gravity' => GRAVITY_ACTIVITY,
|
||||
'verb' => $item['verb'], 'thr-parent' => $item['thr-parent']];
|
||||
if (Item::exists($condition)) {
|
||||
if (Post::exists($condition)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -2111,7 +2109,7 @@ class DFRN
|
|||
$xt = XML::parseString($item["target"]);
|
||||
|
||||
if ($xt->type == Activity\ObjectType::NOTE) {
|
||||
$item_tag = Item::selectFirst(['id', 'uri-id', 'tag'], ['uri' => $xt->id, 'uid' => $importer["importer_uid"]]);
|
||||
$item_tag = Post::selectFirst(['id', 'uri-id', 'tag'], ['uri' => $xt->id, 'uid' => $importer["importer_uid"]]);
|
||||
|
||||
if (!DBA::isResult($item_tag)) {
|
||||
Logger::log("Query failed to execute, no result returned in " . __FUNCTION__);
|
||||
|
@ -2214,7 +2212,7 @@ class DFRN
|
|||
|
||||
$item["edited"] = XML::getFirstNodeValue($xpath, "atom:updated/text()", $entry);
|
||||
|
||||
$current = Item::selectFirst(['id', 'uid', 'edited', 'body'],
|
||||
$current = Post::selectFirst(['id', 'uid', 'edited', 'body'],
|
||||
['uri' => $item["uri"], 'uid' => $importer["importer_uid"]]
|
||||
);
|
||||
// Is there an existing item?
|
||||
|
@ -2559,7 +2557,7 @@ class DFRN
|
|||
}
|
||||
|
||||
$condition = ['uri' => $uri, 'uid' => $importer["importer_uid"]];
|
||||
$item = Item::selectFirst(['id', 'parent', 'contact-id', 'file', 'deleted', 'gravity'], $condition);
|
||||
$item = Post::selectFirst(['id', 'parent', 'contact-id', 'file', 'deleted', 'gravity'], $condition);
|
||||
if (!DBA::isResult($item)) {
|
||||
Logger::log("Item with uri " . $uri . " for user " . $importer["importer_uid"] . " wasn't found.", Logger::DEBUG);
|
||||
return;
|
||||
|
@ -2579,7 +2577,7 @@ class DFRN
|
|||
// Comments can be deleted by the thread owner or comment owner
|
||||
if (($item['gravity'] != GRAVITY_PARENT) && ($item['contact-id'] != $importer["id"])) {
|
||||
$condition = ['id' => $item['parent'], 'contact-id' => $importer["id"]];
|
||||
if (!Item::exists($condition)) {
|
||||
if (!Post::exists($condition)) {
|
||||
Logger::log("Item with uri " . $uri . " wasn't found or mustn't be deleted by contact " . $importer["id"] . " - ignoring deletion.", Logger::DEBUG);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -76,9 +76,9 @@ class Diaspora
|
|||
return $contacts;
|
||||
}
|
||||
|
||||
$items = Item::select(['author-id', 'author-link', 'parent-author-link', 'parent-guid', 'guid'],
|
||||
$items = Post::select(['author-id', 'author-link', 'parent-author-link', 'parent-guid', 'guid'],
|
||||
['parent' => $item['parent'], 'gravity' => [GRAVITY_COMMENT, GRAVITY_ACTIVITY]]);
|
||||
while ($item = DBA::fetch($items)) {
|
||||
while ($item = Post::fetch($items)) {
|
||||
$contact = DBA::selectFirst('contact', ['id', 'url', 'name', 'protocol', 'batch', 'network'],
|
||||
['id' => $item['author-id']]);
|
||||
if (!DBA::isResult($contact) || empty($contact['batch']) ||
|
||||
|
@ -931,7 +931,7 @@ class Diaspora
|
|||
*/
|
||||
private static function messageExists($uid, $guid)
|
||||
{
|
||||
$item = Item::selectFirst(['id'], ['uid' => $uid, 'guid' => $guid]);
|
||||
$item = Post::selectFirst(['id'], ['uid' => $uid, 'guid' => $guid]);
|
||||
if (DBA::isResult($item)) {
|
||||
Logger::log("message ".$guid." already exists for user ".$uid);
|
||||
return $item["id"];
|
||||
|
@ -1151,7 +1151,7 @@ class Diaspora
|
|||
|
||||
$guid = urldecode($matches[2]);
|
||||
|
||||
$item = Item::selectFirst(['id'], ['guid' => $guid, 'uid' => $uid]);
|
||||
$item = Post::selectFirst(['id'], ['guid' => $guid, 'uid' => $uid]);
|
||||
if (DBA::isResult($item)) {
|
||||
Logger::info('Found', ['id' => $item['id']]);
|
||||
return $item['id'];
|
||||
|
@ -1161,7 +1161,7 @@ class Diaspora
|
|||
$ret = self::storeByGuid($guid, $matches[1], $uid);
|
||||
Logger::info('Result', ['ret' => $ret]);
|
||||
|
||||
$item = Item::selectFirst(['id'], ['guid' => $guid, 'uid' => $uid]);
|
||||
$item = Post::selectFirst(['id'], ['guid' => $guid, 'uid' => $uid]);
|
||||
if (DBA::isResult($item)) {
|
||||
Logger::info('Found', ['id' => $item['id']]);
|
||||
return $item['id'];
|
||||
|
@ -1188,7 +1188,7 @@ class Diaspora
|
|||
'author-name', 'author-link', 'author-avatar', 'gravity',
|
||||
'owner-name', 'owner-link', 'owner-avatar'];
|
||||
$condition = ['uid' => $uid, 'guid' => $guid];
|
||||
$item = Item::selectFirst($fields, $condition);
|
||||
$item = Post::selectFirst($fields, $condition);
|
||||
|
||||
if (!DBA::isResult($item)) {
|
||||
$person = FContact::getByURL($author);
|
||||
|
@ -1202,7 +1202,7 @@ class Diaspora
|
|||
if ($result) {
|
||||
Logger::log("Fetched missing item ".$guid." - result: ".$result, Logger::DEBUG);
|
||||
|
||||
$item = Item::selectFirst($fields, $condition);
|
||||
$item = Post::selectFirst($fields, $condition);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1410,7 +1410,7 @@ class Diaspora
|
|||
*/
|
||||
private static function getUriFromGuid($author, $guid, $onlyfound = false)
|
||||
{
|
||||
$item = Item::selectFirst(['uri'], ['guid' => $guid]);
|
||||
$item = Post::selectFirst(['uri'], ['guid' => $guid]);
|
||||
if (DBA::isResult($item)) {
|
||||
return $item["uri"];
|
||||
} elseif (!$onlyfound) {
|
||||
|
@ -1426,25 +1426,6 @@ class Diaspora
|
|||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the guid from our database with a given uri
|
||||
*
|
||||
* @param string $uri Message uri
|
||||
* @param string $uid Author handle
|
||||
*
|
||||
* @return string The post guid
|
||||
* @throws \Exception
|
||||
*/
|
||||
private static function getGuidFromUri($uri, $uid)
|
||||
{
|
||||
$item = Item::selectFirst(['guid'], ['uri' => $uri, 'uid' => $uid]);
|
||||
if (DBA::isResult($item)) {
|
||||
return $item["guid"];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Store the mentions in the tag table
|
||||
*
|
||||
|
@ -1815,7 +1796,7 @@ class Diaspora
|
|||
|
||||
// like on comments have the comment as parent. So we need to fetch the toplevel parent
|
||||
if ($toplevel_parent_item['gravity'] != GRAVITY_PARENT) {
|
||||
$toplevel = Item::selectFirst(['origin'], ['id' => $toplevel_parent_item['parent']]);
|
||||
$toplevel = Post::selectFirst(['origin'], ['id' => $toplevel_parent_item['parent']]);
|
||||
$origin = $toplevel["origin"];
|
||||
} else {
|
||||
$origin = $toplevel_parent_item["origin"];
|
||||
|
@ -1993,9 +1974,9 @@ class Diaspora
|
|||
Logger::info('Participation stored', ['id' => $message_id, 'guid' => $guid, 'parent_guid' => $parent_guid, 'author' => $author]);
|
||||
|
||||
// Send all existing comments and likes to the requesting server
|
||||
$comments = Item::select(['id', 'uri-id', 'parent-author-network', 'author-network', 'verb'],
|
||||
$comments = Post::select(['id', 'uri-id', 'parent-author-network', 'author-network', 'verb'],
|
||||
['parent' => $toplevel_parent_item['id'], 'gravity' => [GRAVITY_COMMENT, GRAVITY_ACTIVITY]]);
|
||||
while ($comment = Item::fetch($comments)) {
|
||||
while ($comment = Post::fetch($comments)) {
|
||||
if (in_array($comment['verb'], [Activity::FOLLOW, Activity::TAG])) {
|
||||
Logger::info('participation messages are not relayed', ['item' => $comment['id']]);
|
||||
continue;
|
||||
|
@ -2285,7 +2266,7 @@ class Diaspora
|
|||
$fields = ['body', 'title', 'app', 'created', 'object-type', 'uri', 'guid',
|
||||
'author-name', 'author-link', 'author-avatar', 'plink', 'uri-id'];
|
||||
$condition = ['guid' => $guid, 'visible' => true, 'deleted' => false, 'private' => [Item::PUBLIC, Item::UNLISTED]];
|
||||
$item = Item::selectFirst($fields, $condition);
|
||||
$item = Post::selectFirst($fields, $condition);
|
||||
|
||||
if (DBA::isResult($item)) {
|
||||
Logger::log("reshared message ".$guid." already exists on system.");
|
||||
|
@ -2329,7 +2310,7 @@ class Diaspora
|
|||
$fields = ['body', 'title', 'app', 'created', 'object-type', 'uri', 'guid',
|
||||
'author-name', 'author-link', 'author-avatar', 'plink', 'uri-id'];
|
||||
$condition = ['guid' => $guid, 'visible' => true, 'deleted' => false, 'private' => [Item::PUBLIC, Item::UNLISTED]];
|
||||
$item = Item::selectFirst($fields, $condition);
|
||||
$item = Post::selectFirst($fields, $condition);
|
||||
|
||||
if (DBA::isResult($item)) {
|
||||
// If it is a reshared post from another network then reformat to avoid display problems with two share elements
|
||||
|
@ -2355,7 +2336,7 @@ class Diaspora
|
|||
*/
|
||||
private static function addReshareActivity($item, $parent_message_id, $guid, $author)
|
||||
{
|
||||
$parent = Item::selectFirst(['uri', 'guid'], ['id' => $parent_message_id]);
|
||||
$parent = Post::selectFirst(['uri', 'guid'], ['id' => $parent_message_id]);
|
||||
|
||||
$datarray = [];
|
||||
|
||||
|
@ -2554,20 +2535,20 @@ class Diaspora
|
|||
$condition = ['guid' => $target_guid, 'deleted' => false, 'uid' => $importer['uid']];
|
||||
}
|
||||
|
||||
$r = Item::select($fields, $condition);
|
||||
$r = Post::select($fields, $condition);
|
||||
if (!DBA::isResult($r)) {
|
||||
Logger::log("Target guid ".$target_guid." was not found on this system for user ".$importer['uid'].".");
|
||||
return false;
|
||||
}
|
||||
|
||||
while ($item = Item::fetch($r)) {
|
||||
while ($item = Post::fetch($r)) {
|
||||
if (strstr($item['file'], '[')) {
|
||||
Logger::log("Target guid " . $target_guid . " for user " . $item['uid'] . " is filed. So it won't be deleted.", Logger::DEBUG);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Fetch the parent item
|
||||
$parent = Item::selectFirst(['author-link'], ['id' => $item['parent']]);
|
||||
$parent = Post::selectFirst(['author-link'], ['id' => $item['parent']]);
|
||||
|
||||
// Only delete it if the parent author really fits
|
||||
if (!Strings::compareLink($parent["author-link"], $contact["url"]) && !Strings::compareLink($item["author-link"], $contact["url"])) {
|
||||
|
@ -2579,6 +2560,7 @@ class Diaspora
|
|||
|
||||
Logger::log("Deleted target ".$target_guid." (".$item["id"].") from user ".$item["uid"]." parent: ".$item['parent'], Logger::DEBUG);
|
||||
}
|
||||
DBA::close($r);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -3263,7 +3245,7 @@ class Diaspora
|
|||
|
||||
if (!empty($reshared['guid']) && $complete) {
|
||||
$condition = ['guid' => $reshared['guid'], 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
|
||||
$item = Item::selectFirst(['contact-id'], $condition);
|
||||
$item = Post::selectFirst(['contact-id'], $condition);
|
||||
if (DBA::isResult($item)) {
|
||||
$ret = [];
|
||||
$ret["root_handle"] = self::handleFromContact($item["contact-id"]);
|
||||
|
@ -3540,7 +3522,7 @@ class Diaspora
|
|||
*/
|
||||
private static function constructLike(array $item, array $owner)
|
||||
{
|
||||
$parent = Item::selectFirst(['guid', 'uri', 'thr-parent'], ['uri' => $item["thr-parent"]]);
|
||||
$parent = Post::selectFirst(['guid', 'uri', 'thr-parent'], ['uri' => $item["thr-parent"]]);
|
||||
if (!DBA::isResult($parent)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -3572,7 +3554,7 @@ class Diaspora
|
|||
*/
|
||||
private static function constructAttend(array $item, array $owner)
|
||||
{
|
||||
$parent = Item::selectFirst(['guid'], ['uri' => $item['thr-parent']]);
|
||||
$parent = Post::selectFirst(['guid'], ['uri' => $item['thr-parent']]);
|
||||
if (!DBA::isResult($parent)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -3617,7 +3599,7 @@ class Diaspora
|
|||
return $result;
|
||||
}
|
||||
|
||||
$toplevel_item = Item::selectFirst(['guid', 'author-id', 'author-link'], ['id' => $item['parent'], 'parent' => $item['parent']]);
|
||||
$toplevel_item = Post::selectFirst(['guid', 'author-id', 'author-link'], ['id' => $item['parent'], 'parent' => $item['parent']]);
|
||||
if (!DBA::isResult($toplevel_item)) {
|
||||
Logger::error('Missing parent conversation item', ['parent' => $item['parent']]);
|
||||
return false;
|
||||
|
@ -3625,7 +3607,7 @@ class Diaspora
|
|||
|
||||
$thread_parent_item = $toplevel_item;
|
||||
if ($item['thr-parent'] != $item['parent-uri']) {
|
||||
$thread_parent_item = Item::selectFirst(['guid', 'author-id', 'author-link'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
|
||||
$thread_parent_item = Post::selectFirst(['guid', 'author-id', 'author-link'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
|
||||
}
|
||||
|
||||
$body = $item["body"];
|
||||
|
@ -4056,7 +4038,7 @@ class Diaspora
|
|||
return false;
|
||||
}
|
||||
|
||||
$parent = Item::selectFirst(['parent-uri'], ['uri' => $item['thr-parent']]);
|
||||
$parent = Post::selectFirst(['parent-uri'], ['uri' => $item['thr-parent']]);
|
||||
if (!DBA::isResult($parent)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -341,7 +341,7 @@ class Feed
|
|||
if (!$dryRun) {
|
||||
$condition = ["`uid` = ? AND `uri` = ? AND `network` IN (?, ?)",
|
||||
$importer["uid"], $item["uri"], Protocol::FEED, Protocol::DFRN];
|
||||
$previous = Item::selectFirst(['id', 'created'], $condition);
|
||||
$previous = Post::selectFirst(['id', 'created'], $condition);
|
||||
if (DBA::isResult($previous)) {
|
||||
// Use the creation date when the post had been stored. It can happen this date changes in the feed.
|
||||
$creation_dates[] = $previous['created'];
|
||||
|
@ -556,7 +556,7 @@ class Feed
|
|||
}
|
||||
|
||||
$condition = ['uid' => $item['uid'], 'uri' => $item['uri']];
|
||||
if (!Item::exists($condition) && !Post\Delayed::exists($item["uri"], $item['uid'])) {
|
||||
if (!Post::exists($condition) && !Post\Delayed::exists($item["uri"], $item['uid'])) {
|
||||
if (!$notify) {
|
||||
Post\Delayed::publish($item, $notify, $taglist, $attachments);
|
||||
} else {
|
||||
|
@ -1041,7 +1041,7 @@ class Feed
|
|||
|
||||
$condition = ['uid' => $owner["uid"], 'guid' => $repeated_guid, 'private' => [Item::PUBLIC, Item::UNLISTED],
|
||||
'network' => Protocol::FEDERATED];
|
||||
$repeated_item = Item::selectFirst([], $condition);
|
||||
$repeated_item = Post::selectFirst([], $condition);
|
||||
if (!DBA::isResult($repeated_item)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1133,9 +1133,9 @@ class Feed
|
|||
$mentioned = [];
|
||||
|
||||
if ($item['gravity'] != GRAVITY_PARENT) {
|
||||
$parent = Item::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
|
||||
$parent = Post::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
|
||||
|
||||
$thrparent = Item::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
|
||||
$thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
|
||||
|
||||
if (DBA::isResult($thrparent)) {
|
||||
$mentioned[$thrparent["author-link"]] = $thrparent["author-link"];
|
||||
|
|
|
@ -445,7 +445,7 @@ class OStatus
|
|||
}
|
||||
|
||||
// Deletions come with the same uri, so we check for duplicates after processing deletions
|
||||
if (Item::exists(['uid' => $importer["uid"], 'uri' => $item["uri"]])) {
|
||||
if (Post::exists(['uid' => $importer["uid"], 'uri' => $item["uri"]])) {
|
||||
Logger::log('Post with URI '.$item["uri"].' already existed for user '.$importer["uid"].'.', Logger::DEBUG);
|
||||
continue;
|
||||
} else {
|
||||
|
@ -533,7 +533,7 @@ class OStatus
|
|||
}
|
||||
}
|
||||
foreach (self::$itemlist as $item) {
|
||||
$found = Item::exists(['uid' => $importer["uid"], 'uri' => $item["uri"]]);
|
||||
$found = Post::exists(['uid' => $importer["uid"], 'uri' => $item["uri"]]);
|
||||
if ($found) {
|
||||
Logger::log("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already exists.", Logger::DEBUG);
|
||||
} elseif ($item['contact-id'] < 0) {
|
||||
|
@ -561,7 +561,7 @@ class OStatus
|
|||
private static function deleteNotice(array $item)
|
||||
{
|
||||
$condition = ['uid' => $item['uid'], 'author-id' => $item['author-id'], 'uri' => $item['uri']];
|
||||
if (!Item::exists($condition)) {
|
||||
if (!Post::exists($condition)) {
|
||||
Logger::log('Item from '.$item['author-link'].' with uri '.$item['uri'].' for user '.$item['uid']." wasn't found. We don't delete it.");
|
||||
return;
|
||||
}
|
||||
|
@ -697,7 +697,7 @@ class OStatus
|
|||
}
|
||||
|
||||
if (isset($item["thr-parent"])) {
|
||||
if (!Item::exists(['uid' => $importer["uid"], 'uri' => $item['thr-parent']])) {
|
||||
if (!Post::exists(['uid' => $importer["uid"], 'uri' => $item['thr-parent']])) {
|
||||
if ($related != '') {
|
||||
self::fetchRelated($related, $item["thr-parent"], $importer);
|
||||
}
|
||||
|
@ -1593,7 +1593,7 @@ class OStatus
|
|||
|
||||
$condition = ['uid' => $owner["uid"], 'guid' => $repeated_guid, 'private' => [Item::PUBLIC, Item::UNLISTED],
|
||||
'network' => [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS]];
|
||||
$repeated_item = Item::selectFirst([], $condition);
|
||||
$repeated_item = Post::selectFirst([], $condition);
|
||||
if (!DBA::isResult($repeated_item)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1659,7 +1659,7 @@ class OStatus
|
|||
$verb = ActivityNamespace::ACTIVITY_SCHEMA . "favorite";
|
||||
self::entryContent($doc, $entry, $item, $owner, "Favorite", $verb, false);
|
||||
|
||||
$parent = Item::selectFirst([], ['uri' => $item["thr-parent"], 'uid' => $item["uid"]]);
|
||||
$parent = Post::selectFirst([], ['uri' => $item["thr-parent"], 'uid' => $item["uid"]]);
|
||||
if (DBA::isResult($parent)) {
|
||||
$as_object = $doc->createElement("activity:object");
|
||||
|
||||
|
@ -1927,9 +1927,9 @@ class OStatus
|
|||
$mentioned = [];
|
||||
|
||||
if ($item['gravity'] != GRAVITY_PARENT) {
|
||||
$parent = Item::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
|
||||
$parent = Post::selectFirst(['guid', 'author-link', 'owner-link'], ['id' => $item['parent']]);
|
||||
|
||||
$thrparent = Item::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
|
||||
$thrparent = Post::selectFirst(['guid', 'author-link', 'owner-link', 'plink'], ['uid' => $owner["uid"], 'uri' => $item['thr-parent']]);
|
||||
|
||||
if (DBA::isResult($thrparent)) {
|
||||
$mentioned[$thrparent["author-link"]] = $thrparent["author-link"];
|
||||
|
|
|
@ -30,6 +30,7 @@ use Friendica\Model\APContact;
|
|||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\GServer;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Post;
|
||||
use Friendica\Model\Search;
|
||||
use Friendica\Model\Tag;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
|
@ -253,7 +254,7 @@ class Relay
|
|||
|
||||
if (DI::config()->get("system", "relay_directly", false)) {
|
||||
// We distribute our stuff based on the parent to ensure that the thread will be complete
|
||||
$parent = Item::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||
$parent = Post::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||
if (!DBA::isResult($parent)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ class APDelivery
|
|||
if (ActivityPub\Transmitter::archivedInbox($inbox)) {
|
||||
Logger::info('Inbox is archived', ['cmd' => $cmd, 'inbox' => $inbox, 'id' => $item_id, 'uid' => $uid]);
|
||||
if (in_array($cmd, [Delivery::POST])) {
|
||||
$item = Item::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||
$item = Post::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||
Post\DeliveryData::incrementQueueFailed($item['uri-id'] ?? 0);
|
||||
}
|
||||
return;
|
||||
|
@ -81,7 +81,7 @@ class APDelivery
|
|||
}
|
||||
|
||||
// This should never fail and is temporariy (until the move to the "post" structure)
|
||||
$item = Item::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||
$item = Post::selectFirst(['uri-id'], ['id' => $item_id]);
|
||||
$uriid = $item['uri-id'] ?? 0;
|
||||
$gsid = null;
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ class Delivery
|
|||
$uid = $target_id;
|
||||
$target_item = [];
|
||||
} else {
|
||||
$item = Model\Item::selectFirst(['parent'], ['id' => $target_id]);
|
||||
$item = Model\Post::selectFirst(['parent'], ['id' => $target_id]);
|
||||
if (!DBA::isResult($item) || empty($item['parent'])) {
|
||||
return;
|
||||
}
|
||||
|
@ -82,9 +82,9 @@ class Delivery
|
|||
|
||||
$condition = ['id' => [$target_id, $parent_id], 'visible' => true, 'moderated' => false];
|
||||
$params = ['order' => ['id']];
|
||||
$itemdata = Model\Item::select([], $condition, $params);
|
||||
$itemdata = Model\Post::select([], $condition, $params);
|
||||
|
||||
while ($item = Model\Item::fetch($itemdata)) {
|
||||
while ($item = Model\Post::fetch($itemdata)) {
|
||||
if ($item['verb'] == Activity::ANNOUNCE) {
|
||||
continue;
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ class Delivery
|
|||
}
|
||||
|
||||
$condition = ['uri' => $target_item['thr-parent'], 'uid' => $target_item['uid']];
|
||||
$thr_parent = Model\Item::selectFirst(['network', 'object'], $condition);
|
||||
$thr_parent = Model\Post::selectFirst(['network', 'object'], $condition);
|
||||
if (!DBA::isResult($thr_parent)) {
|
||||
// Shouldn't happen. But when this does, we just take the parent as thread parent.
|
||||
// That's totally okay for what we use this variable here.
|
||||
|
@ -593,13 +593,13 @@ class Delivery
|
|||
|
||||
if (empty($target_item['title'])) {
|
||||
$condition = ['uri' => $target_item['parent-uri'], 'uid' => $owner['uid']];
|
||||
$title = Model\Item::selectFirst(['title'], $condition);
|
||||
$title = Model\Post::selectFirst(['title'], $condition);
|
||||
|
||||
if (DBA::isResult($title) && ($title['title'] != '')) {
|
||||
$subject = $title['title'];
|
||||
} else {
|
||||
$condition = ['parent-uri' => $target_item['parent-uri'], 'uid' => $owner['uid']];
|
||||
$title = Model\Item::selectFirst(['title'], $condition);
|
||||
$title = Model\Post::selectFirst(['title'], $condition);
|
||||
|
||||
if (DBA::isResult($title) && ($title['title'] != '')) {
|
||||
$subject = $title['title'];
|
||||
|
|
|
@ -101,7 +101,7 @@ class Notifier
|
|||
} else {
|
||||
// find ancestors
|
||||
$condition = ['id' => $target_id, 'visible' => true, 'moderated' => false];
|
||||
$target_item = Item::selectFirst([], $condition);
|
||||
$target_item = Post::selectFirst([], $condition);
|
||||
|
||||
if (!DBA::isResult($target_item) || !intval($target_item['parent'])) {
|
||||
Logger::info('No target item', ['cmd' => $cmd, 'target' => $target_id]);
|
||||
|
@ -119,13 +119,13 @@ class Notifier
|
|||
|
||||
$condition = ['parent' => $target_item['parent'], 'visible' => true, 'moderated' => false];
|
||||
$params = ['order' => ['id']];
|
||||
$items_stmt = Item::select([], $condition, $params);
|
||||
$items_stmt = Post::select([], $condition, $params);
|
||||
if (!DBA::isResult($items_stmt)) {
|
||||
Logger::info('No item found', ['cmd' => $cmd, 'target' => $target_id]);
|
||||
return;
|
||||
}
|
||||
|
||||
$items = Item::inArray($items_stmt);
|
||||
$items = Post::inArray($items_stmt);
|
||||
|
||||
// avoid race condition with deleting entries
|
||||
if ($items[0]['deleted']) {
|
||||
|
@ -165,7 +165,7 @@ class Notifier
|
|||
|
||||
$fields = ['network', 'author-id', 'author-link', 'author-network', 'owner-id'];
|
||||
$condition = ['uri' => $target_item["thr-parent"], 'uid' => $target_item["uid"]];
|
||||
$thr_parent = Item::selectFirst($fields, $condition);
|
||||
$thr_parent = Post::selectFirst($fields, $condition);
|
||||
if (empty($thr_parent)) {
|
||||
$thr_parent = $parent;
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ use Friendica\Database\DBA;
|
|||
use Friendica\DI;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Post;
|
||||
use Friendica\Model\User;
|
||||
use Friendica\Protocol\Activity;
|
||||
use Friendica\Protocol\ActivityPub;
|
||||
|
@ -249,7 +250,7 @@ class OnePoll
|
|||
// Have we seen it before?
|
||||
$fields = ['deleted', 'id'];
|
||||
$condition = ['uid' => $importer_uid, 'uri' => $datarray['uri']];
|
||||
$item = Item::selectFirst($fields, $condition);
|
||||
$item = Post::selectFirst($fields, $condition);
|
||||
if (DBA::isResult($item)) {
|
||||
Logger::log("Mail: Seen before ".$msg_uid." for ".$mailconf['user']." UID: ".$importer_uid." URI: ".$datarray['uri'],Logger::DEBUG);
|
||||
|
||||
|
@ -298,7 +299,7 @@ class OnePoll
|
|||
}
|
||||
}
|
||||
$condition = ['uri' => $refs_arr, 'uid' => $importer_uid];
|
||||
$parent = Item::selectFirst(['uri'], $condition);
|
||||
$parent = Post::selectFirst(['uri'], $condition);
|
||||
if (DBA::isResult($parent)) {
|
||||
$datarray['thr-parent'] = $parent['uri'];
|
||||
}
|
||||
|
@ -331,7 +332,7 @@ class OnePoll
|
|||
if (empty($datarray['thr-parent']) && $reply) {
|
||||
$condition = ['title' => $datarray['title'], 'uid' => $importer_uid, 'network' => Protocol::MAIL];
|
||||
$params = ['order' => ['created' => true]];
|
||||
$parent = Item::selectFirst(['uri'], $condition, $params);
|
||||
$parent = Post::selectFirst(['uri'], $condition, $params);
|
||||
if (DBA::isResult($parent)) {
|
||||
$datarray['thr-parent'] = $parent['uri'];
|
||||
}
|
||||
|
|
|
@ -23,8 +23,8 @@ namespace Friendica\Worker;
|
|||
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Photo;
|
||||
use Friendica\Model\Post;
|
||||
|
||||
/**
|
||||
* Removes orphaned data from deleted contacts
|
||||
|
@ -47,13 +47,13 @@ class RemoveContact {
|
|||
$condition = ['uid' => $contact['uid'], 'contact-id' => $id];
|
||||
}
|
||||
do {
|
||||
$items = Item::select(['id', 'guid'], $condition, ['limit' => 100]);
|
||||
while ($item = Item::fetch($items)) {
|
||||
$items = Post::select(['id', 'guid'], $condition, ['limit' => 100]);
|
||||
while ($item = Post::fetch($items)) {
|
||||
Logger::info('Delete removed contact item', ['id' => $item['id'], 'guid' => $item['guid']]);
|
||||
DBA::delete('item', ['id' => $item['id']]);
|
||||
}
|
||||
DBA::close($items);
|
||||
} while (Item::exists($condition));
|
||||
} while (Post::exists($condition));
|
||||
|
||||
Photo::delete(['contact-id' => $id]);
|
||||
$ret = DBA::delete('contact', ['id' => $id]);
|
||||
|
|
|
@ -23,6 +23,7 @@ namespace Friendica\Worker;
|
|||
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Post;
|
||||
|
||||
/**
|
||||
* Removes orphaned data from deleted users
|
||||
|
@ -39,11 +40,11 @@ class RemoveUser {
|
|||
// Now we delete all user items
|
||||
$condition = ['uid' => $uid, 'deleted' => false];
|
||||
do {
|
||||
$items = Item::select(['id'], $condition, ['limit' => 100]);
|
||||
while ($item = Item::fetch($items)) {
|
||||
$items = Post::select(['id'], $condition, ['limit' => 100]);
|
||||
while ($item = Post::fetch($items)) {
|
||||
Item::markForDeletionById($item['id'], PRIORITY_NEGLIGIBLE);
|
||||
}
|
||||
DBA::close($items);
|
||||
} while (Item::exists($condition));
|
||||
} while (Post::exists($condition));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue