AP: Announce will now work

This commit is contained in:
Michael 2018-10-13 16:41:29 +00:00
parent 6b2a12319c
commit 3c48a1f787
2 changed files with 27 additions and 4 deletions

View file

@ -46,7 +46,7 @@ if ($a->isMaxProcessesReached() || $a->isMaxLoadReached()) {
System::httpExit(503, ['title' => 'Error 503 - Service Temporarily Unavailable', 'description' => 'System is currently overloaded. Please try again later.']); System::httpExit(503, ['title' => 'Error 503 - Service Temporarily Unavailable', 'description' => 'System is currently overloaded. Please try again later.']);
} }
if (strstr($a->query_string, '.well-known/host-meta') and ($a->query_string != '.well-known/host-meta')) { if (strstr($a->query_string, '.well-known/host-meta') && ($a->query_string != '.well-known/host-meta')) {
System::httpExit(404); System::httpExit(404);
} }

View file

@ -22,8 +22,11 @@ use Friendica\Model\Profile;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Object\Image; use Friendica\Object\Image;
use Friendica\Protocol\ActivityPub; use Friendica\Protocol\ActivityPub;
use Friendica\Protocol\Diaspora;
use Friendica\Core\Cache; use Friendica\Core\Cache;
require_once 'include/api.php';
/** /**
* @brief ActivityPub Transmitter Protocol class * @brief ActivityPub Transmitter Protocol class
* *
@ -37,7 +40,6 @@ use Friendica\Core\Cache;
* - Event * - Event
* *
* Complicated object types: * Complicated object types:
* - Announce
* - Undo Announce * - Undo Announce
* *
* General: * General:
@ -467,7 +469,9 @@ class Transmitter
*/ */
private static function getTypeOfItem($item) private static function getTypeOfItem($item)
{ {
if ($item['verb'] == ACTIVITY_POST) { if (!empty(Diaspora::isReshare($item['body'], false))) {
$type = 'Announce';
} elseif ($item['verb'] == ACTIVITY_POST) {
if ($item['created'] == $item['edited']) { if ($item['created'] == $item['edited']) {
$type = 'Create'; $type = 'Create';
} else { } else {
@ -558,8 +562,10 @@ class Transmitter
$data = array_merge($data, self::createPermissionBlockForItem($item)); $data = array_merge($data, self::createPermissionBlockForItem($item));
if (in_array($data['type'], ['Create', 'Update', 'Announce', 'Delete'])) { if (in_array($data['type'], ['Create', 'Update', 'Delete'])) {
$data['object'] = self::createNote($item); $data['object'] = self::createNote($item);
} elseif ($data['type'] == 'Announce') {
$data['object'] = self::createAnnounce($item);
} elseif ($data['type'] == 'Undo') { } elseif ($data['type'] == 'Undo') {
$data['object'] = self::createActivityFromItem($item_id, true); $data['object'] = self::createActivityFromItem($item_id, true);
} else { } else {
@ -805,6 +811,23 @@ class Transmitter
return $data; return $data;
} }
/**
* Creates an announce object entry
*
* @param array $item
*
* @return string with announced object url
*/
public static function createAnnounce($item)
{
$announce = api_share_as_retweet($item);
if (empty($announce['plink'])) {
return self::createNote($item);
}
return $announce['plink'];
}
/** /**
* Transmits a contact suggestion to a given inbox * Transmits a contact suggestion to a given inbox
* *