mirror of
https://github.com/friendica/friendica
synced 2025-04-28 03:50:17 +00: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
|
@ -2005,6 +2005,9 @@ class Diaspora
|
|||
|
||||
$datarray["body"] = $verb;
|
||||
|
||||
// Diaspora doesn't provide a date for likes
|
||||
$datarray["changed"] = $datarray["created"] = $datarray["edited"] = DateTimeFormat::utcNow();
|
||||
|
||||
// like on comments have the comment as parent. So we need to fetch the toplevel parent
|
||||
if ($parent_item["id"] != $parent_item["parent"]) {
|
||||
$toplevel = Item::selectFirst(['origin'], ['id' => $parent_item["parent"]]);
|
||||
|
|
|
@ -19,6 +19,7 @@ use Friendica\Network\Probe;
|
|||
use Friendica\Util\DateTimeFormat;
|
||||
use Friendica\Util\Network;
|
||||
use Friendica\Protocol\Diaspora;
|
||||
use Friendica\Util\XML;
|
||||
use dba;
|
||||
use DOMDocument;
|
||||
use DOMXPath;
|
||||
|
@ -916,7 +917,7 @@ class PortableContact
|
|||
return false;
|
||||
}
|
||||
|
||||
$server["site_name"] = $xpath->evaluate("//head/title/text()")->item(0)->nodeValue;
|
||||
$server["site_name"] = XML::getFirstNodeValue($xpath, '//head/title/text()');
|
||||
return $server;
|
||||
}
|
||||
|
||||
|
@ -1003,7 +1004,7 @@ class PortableContact
|
|||
// Quit if there is a timeout.
|
||||
// But we want to make sure to only quit if we are mostly sure that this server url fits.
|
||||
if (DBM::is_result($gserver) && ($orig_server_url == $server_url) &&
|
||||
($serverret['errno'] == CURLE_OPERATION_TIMEDOUT)) {
|
||||
(!$serverret["success"] && ($serverret['errno'] == CURLE_OPERATION_TIMEDOUT))) {
|
||||
logger("Connection to server ".$server_url." timed out.", LOGGER_DEBUG);
|
||||
dba::update('gserver', ['last_failure' => DateTimeFormat::utcNow()], ['nurl' => normalise_link($server_url)]);
|
||||
return false;
|
||||
|
@ -1018,7 +1019,7 @@ class PortableContact
|
|||
$serverret = Network::curl($server_url."/.well-known/host-meta", false, $redirects, ['timeout' => 20]);
|
||||
|
||||
// Quit if there is a timeout
|
||||
if ($serverret['errno'] == CURLE_OPERATION_TIMEDOUT) {
|
||||
if (!$serverret["success"] && ($serverret['errno'] == CURLE_OPERATION_TIMEDOUT)) {
|
||||
logger("Connection to server ".$server_url." timed out.", LOGGER_DEBUG);
|
||||
dba::update('gserver', ['last_failure' => DateTimeFormat::utcNow()], ['nurl' => normalise_link($server_url)]);
|
||||
return false;
|
||||
|
@ -1230,8 +1231,14 @@ class PortableContact
|
|||
$site_name = $data->site->name;
|
||||
|
||||
$data->site->closed = self::toBoolean($data->site->closed);
|
||||
$data->site->private = self::toBoolean($data->site->private);
|
||||
$data->site->inviteonly = self::toBoolean($data->site->inviteonly);
|
||||
|
||||
if (!empty($data->site->private)) {
|
||||
$data->site->private = self::toBoolean($data->site->private);
|
||||
}
|
||||
|
||||
if (!empty($data->site->inviteonly)) {
|
||||
$data->site->inviteonly = self::toBoolean($data->site->inviteonly);
|
||||
}
|
||||
|
||||
if (!$data->site->closed && !$data->site->private and $data->site->inviteonly) {
|
||||
$register_policy = REGISTER_APPROVE;
|
||||
|
@ -1325,7 +1332,9 @@ class PortableContact
|
|||
$noscrape = $data->no_scrape_url;
|
||||
}
|
||||
$version = $data->version;
|
||||
$site_name = $data->site_name;
|
||||
if (!empty($data->site_name)) {
|
||||
$site_name = $data->site_name;
|
||||
}
|
||||
$info = $data->info;
|
||||
$register_policy = constant($data->register_policy);
|
||||
$platform = $data->platform;
|
||||
|
@ -1714,7 +1723,9 @@ class PortableContact
|
|||
$contact_type = -1;
|
||||
$generation = $default_generation;
|
||||
|
||||
$name = $entry->displayName;
|
||||
if (!empty($entry->displayName)) {
|
||||
$name = $entry->displayName;
|
||||
}
|
||||
|
||||
if (isset($entry->urls)) {
|
||||
foreach ($entry->urls as $url) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue