mirror of
https://github.com/friendica/friendica
synced 2025-05-10 21:04:11 +02:00
Next item structure works (#5380)
* Use "LEFT JOIN" to always fetch the item. Needed for update routines. * New conversion routine that now covers every item * Post update is now activated * We now use a hash based upon RIPEMD-320 for content and activity * The hash doesn't contain the plink anymore * Legacy item fields are now "null"able * New hash function for a server unique item hash * Introduction of the legacy mode (usage of old item fields) * Code simplification * We don't need the "uri" fields anymore in item-activity and item-content * Use the "created" and not the "received" date for the hash * Avoiding several notices * Some more warnings removed * Improved uri-hash / Likes on Diaspora are now getting a creation date * Corrected the post update version * Ensure an unique uri-hash * Don't delete orhaned item data at the moment * Partly reworked, due to strange behaviour * Some more parts reworked * Using the uri currently seems to be more reliable * Using the uri here as well * Use the hash values again * Grouped item fields in different categories * Notices again * use the gravity (we always should) * Added hint for disabled post updates * Notices ... * Issue #5337: Personal notes are displayed again * Use the gravity again
This commit is contained in:
parent
8ad6b65aeb
commit
d3a2ed85fe
21 changed files with 315 additions and 297 deletions
|
@ -36,7 +36,8 @@ class CronJobs
|
|||
// Call possible post update functions
|
||||
// see src/Database/PostUpdate.php for more details
|
||||
if ($command == 'post_update') {
|
||||
PostUpdate::update();
|
||||
// Post updates will be reenabled (hopefully in a few days) when most item works are done
|
||||
// PostUpdate::update();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ class Delivery extends BaseObject
|
|||
return;
|
||||
}
|
||||
$uid = $target_item['uid'];
|
||||
$items = [];
|
||||
} elseif ($cmd == self::SUGGESTION) {
|
||||
$target_item = dba::selectFirst('fsuggest', [], ['id' => $item_id]);
|
||||
if (!DBM::is_result($target_item)) {
|
||||
|
@ -127,6 +128,10 @@ class Delivery extends BaseObject
|
|||
}
|
||||
}
|
||||
|
||||
if (empty($items)) {
|
||||
logger('No delivery data for ' . $cmd . ' - Item ID: ' .$item_id . ' - Contact ID: ' . $contact_id);
|
||||
}
|
||||
|
||||
$owner = User::getOwnerDataById($uid);
|
||||
if (!DBM::is_result($owner)) {
|
||||
return;
|
||||
|
@ -271,7 +276,7 @@ class Delivery extends BaseObject
|
|||
|
||||
// We don't have a relationship with contacts on a public post.
|
||||
// Se we transmit with the new method and via Diaspora as a fallback
|
||||
if (($items[0]['uid'] == 0) || ($contact['uid'] == 0)) {
|
||||
if (!empty($items) && (($items[0]['uid'] == 0) || ($contact['uid'] == 0))) {
|
||||
// Transmit in public if it's a relay post
|
||||
$public_dfrn = ($contact['contact-type'] == ACCOUNT_TYPE_RELAY);
|
||||
|
||||
|
|
|
@ -42,12 +42,12 @@ class Expire {
|
|||
// Normally we shouldn't have orphaned data at all.
|
||||
// If we do have some, then we have to check why.
|
||||
logger('Deleting orphaned item activities - start', LOGGER_DEBUG);
|
||||
$condition = ["NOT EXISTS (SELECT `iaid` FROM `item` WHERE `item`.`uri` = `item-activity`.`uri`)"];
|
||||
$condition = ["NOT EXISTS (SELECT `iaid` FROM `item` WHERE `item`.`iaid` = `item-activity`.`id`)"];
|
||||
dba::delete('item-activity', $condition);
|
||||
logger('Orphaned item activities deleted: ' . dba::affected_rows(), LOGGER_DEBUG);
|
||||
|
||||
logger('Deleting orphaned item content - start', LOGGER_DEBUG);
|
||||
$condition = ["NOT EXISTS (SELECT `icid` FROM `item` WHERE `item`.`uri` = `item-content`.`uri`)"];
|
||||
$condition = ["NOT EXISTS (SELECT `icid` FROM `item` WHERE `item`.`icid` = `item-content`.`id`)"];
|
||||
dba::delete('item-content', $condition);
|
||||
logger('Orphaned item content deleted: ' . dba::affected_rows(), LOGGER_DEBUG);
|
||||
|
||||
|
|
|
@ -378,7 +378,7 @@ class Notifier {
|
|||
}
|
||||
|
||||
// If this is a public message and pubmail is set on the parent, include all your email contacts
|
||||
if (function_exists('imap_open') && !Config::get('system','imap_disabled')) {
|
||||
if (!empty($target_item) && function_exists('imap_open') && !Config::get('system','imap_disabled')) {
|
||||
if (!strlen($target_item['allow_cid']) && !strlen($target_item['allow_gid'])
|
||||
&& !strlen($target_item['deny_cid']) && !strlen($target_item['deny_gid'])
|
||||
&& intval($target_item['pubmail'])) {
|
||||
|
@ -412,7 +412,7 @@ class Notifier {
|
|||
// delivery loop
|
||||
if (DBM::is_result($r)) {
|
||||
foreach ($r as $contact) {
|
||||
logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
|
||||
logger("Deliver ".$item_id." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
|
||||
|
||||
Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
|
||||
'Delivery', $cmd, $item_id, (int)$contact['id']);
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file src/Worker/SetItemContentID.php
|
||||
* @brief This script sets the "icid" value in the item table if it couldn't set before.
|
||||
*
|
||||
* This script is started from mod/item.php to fix timing problems.
|
||||
*/
|
||||
|
||||
namespace Friendica\Worker;
|
||||
|
||||
use Friendica\Model\Item;
|
||||
|
||||
class SetItemContentID {
|
||||
public static function execute($uri = '') {
|
||||
if (empty($uri)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Item::setICIDforURI($uri);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue