Merge pull request #6487 from MrPetovan/bug/critical-fixes-after-develop-rebase

Critical fixes after develop rebase
This commit is contained in:
Michael Vogel 2019-01-22 15:45:33 +01:00 committed by GitHub
commit 73a81290ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 23 deletions

View File

@ -184,7 +184,7 @@ function salmon_post(App $a, $xml = '') {
// Placeholder for hub discovery. // Placeholder for hub discovery.
$hub = ''; $hub = '';
$contact_rec = ((DBA::isResult($r)) ? $r[0] : null); $contact_rec = ((DBA::isResult($r)) ? $r[0] : []);
OStatus::import($data, $importer, $contact_rec, $hub); OStatus::import($data, $importer, $contact_rec, $hub);

View File

@ -201,7 +201,7 @@ class APContact extends BaseObject
if (is_int($contact_type)) { if (is_int($contact_type)) {
$contact_fields['contact-type'] = $contact_type; $contact_fields['contact-type'] = $contact_type;
if ($contact_fields['contact-type'] != Contact::ACCOUNT_TYPE_COMMUNITY) { if ($contact_fields['contact-type'] != User::ACCOUNT_TYPE_COMMUNITY) {
// Resetting the 'forum' and 'prv' field when it isn't a forum // Resetting the 'forum' and 'prv' field when it isn't a forum
$contact_fields['forum'] = false; $contact_fields['forum'] = false;
$contact_fields['prv'] = false; $contact_fields['prv'] = false;

View File

@ -74,7 +74,7 @@ class OStatus
$author["contact-id"] = $contact["id"]; $author["contact-id"] = $contact["id"];
$contact = null; $contact = [];
/* /*
This here would be better, but we would get problems with contacts from the statusnet addon This here would be better, but we would get problems with contacts from the statusnet addon
@ -231,7 +231,7 @@ class OStatus
GContact::link($gcid, $contact["uid"], $contact["id"]); GContact::link($gcid, $contact["uid"], $contact["id"]);
} elseif ($contact["network"] != Protocol::DFRN) { } elseif ($contact["network"] != Protocol::DFRN) {
$contact = null; $contact = [];
} }
return $author; return $author;
@ -1693,7 +1693,7 @@ class OStatus
Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG); Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG);
} }
self::entryHeader($doc, $entry, $owner, $item, $toplevel); $entry = self::entryHeader($doc, $owner, $item, $toplevel);
$condition = ['uid' => $owner["uid"], 'guid' => $repeated_guid, 'private' => false, $condition = ['uid' => $owner["uid"], 'guid' => $repeated_guid, 'private' => false,
'network' => [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS]]; 'network' => [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS]];
@ -1758,7 +1758,7 @@ class OStatus
Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG); Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG);
} }
self::entryHeader($doc, $entry, $owner, $item, $toplevel); $entry = self::entryHeader($doc, $owner, $item, $toplevel);
$verb = NAMESPACE_ACTIVITY_SCHEMA."favorite"; $verb = NAMESPACE_ACTIVITY_SCHEMA."favorite";
self::entryContent($doc, $entry, $item, $owner, "Favorite", $verb, false); self::entryContent($doc, $entry, $item, $owner, "Favorite", $verb, false);
@ -1879,7 +1879,7 @@ class OStatus
$item["body"] = sprintf($message, $owner["nick"], $contact["nick"]); $item["body"] = sprintf($message, $owner["nick"], $contact["nick"]);
self::entryHeader($doc, $entry, $owner, $item, $toplevel); $entry = self::entryHeader($doc, $owner, $item, $toplevel);
self::entryContent($doc, $entry, $item, $owner, $title); self::entryContent($doc, $entry, $item, $owner, $title);
@ -1910,7 +1910,17 @@ class OStatus
Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG); Logger::log("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", Logger::DEBUG);
} }
$title = self::entryHeader($doc, $entry, $owner, $item, $toplevel); if (!$toplevel) {
if (!empty($item['title'])) {
$title = BBCode::convert($item['title'], false, 7);
} else {
$title = sprintf("New note by %s", $owner["nick"]);
}
} else {
$title = sprintf("New comment by %s", $owner["nick"]);
}
$entry = self::entryHeader($doc, $owner, $item, $toplevel);
XML::addElement($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE); XML::addElement($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
@ -1925,25 +1935,18 @@ class OStatus
* @brief Adds a header element to the XML document * @brief Adds a header element to the XML document
* *
* @param DOMDocument $doc XML document * @param DOMDocument $doc XML document
* @param object $entry The entry element where the elements are added
* @param array $owner Contact data of the poster * @param array $owner Contact data of the poster
* @param array $item * @param array $item
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)? * @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
* *
* @return string The title for the element * @return \DOMElement The entry element where the elements are added
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
private static function entryHeader(DOMDocument $doc, &$entry, array $owner, array $item, $toplevel) private static function entryHeader(DOMDocument $doc, array $owner, array $item, $toplevel)
{ {
/// @todo Check if this title stuff is really needed (I guess not)
if (!$toplevel) { if (!$toplevel) {
$entry = $doc->createElement("entry"); $entry = $doc->createElement("entry");
if (!empty($item['title'])) {
$title = BBCode::convert($item['title'], false, 7);
} else {
$title = sprintf("New note by %s", $owner["nick"]);
}
if ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) { if ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) {
$contact = self::contactEntry($item['author-link'], $owner); $contact = self::contactEntry($item['author-link'], $owner);
@ -1964,10 +1967,9 @@ class OStatus
$author = self::addAuthor($doc, $owner); $author = self::addAuthor($doc, $owner);
$entry->appendChild($author); $entry->appendChild($author);
$title = sprintf("New comment by %s", $owner["nick"]);
} }
return $title;
return $entry;
} }
/** /**

View File

@ -562,8 +562,10 @@ class Notifier
{ {
$inboxes = []; $inboxes = [];
$uid = $target_item['contact-uid'] ?: $target_item['uid'];
if ($target_item['origin']) { if ($target_item['origin']) {
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $target_item['contact-uid']); $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid);
Logger::log('Origin item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.', Logger::DEBUG); Logger::log('Origin item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.', Logger::DEBUG);
} elseif (!DBA::exists('conversation', ['item-uri' => $target_item['uri'], 'protocol' => Conversation::PARCEL_ACTIVITYPUB])) { } elseif (!DBA::exists('conversation', ['item-uri' => $target_item['uri'], 'protocol' => Conversation::PARCEL_ACTIVITYPUB])) {
Logger::log('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' is no AP post. It will not be distributed.', Logger::DEBUG); Logger::log('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' is no AP post. It will not be distributed.', Logger::DEBUG);
@ -571,7 +573,7 @@ class Notifier
} elseif ($parent['origin']) { } elseif ($parent['origin']) {
// Remote items are transmitted via the personal inboxes. // Remote items are transmitted via the personal inboxes.
// Doing so ensures that the dedicated receiver will get the message. // Doing so ensures that the dedicated receiver will get the message.
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $target_item['contact-uid'], true, $target_item['id']); $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid, true, $target_item['id']);
Logger::log('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.', Logger::DEBUG); Logger::log('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.', Logger::DEBUG);
} }
@ -587,7 +589,7 @@ class Notifier
Logger::log('Deliver ' . $target_item['id'] .' to ' . $inbox .' via ActivityPub', Logger::DEBUG); Logger::log('Deliver ' . $target_item['id'] .' to ' . $inbox .' via ActivityPub', Logger::DEBUG);
Worker::add(['priority' => $priority, 'created' => $created, 'dont_fork' => true], Worker::add(['priority' => $priority, 'created' => $created, 'dont_fork' => true],
'APDelivery', $cmd, $target_item['id'], $inbox, $target_item['contact-uid']); 'APDelivery', $cmd, $target_item['id'], $inbox, $uid);
} }
return count($inboxes); return count($inboxes);