AP: Event participation and editing of posts are now supported

This commit is contained in:
Michael 2018-10-27 06:17:17 +00:00
parent f32ea03911
commit f2ddcbe632
3 changed files with 70 additions and 45 deletions

View file

@ -16,6 +16,7 @@ use Friendica\Content\Text\HTML;
use Friendica\Util\JsonLD;
use Friendica\Core\Config;
use Friendica\Protocol\ActivityPub;
use Friendica\Util\DateTimeFormat;
/**
* ActivityPub Processor Protocol class
@ -101,6 +102,24 @@ class Processor
return $item;
}
/**
* Updates a message
*
* @param array $activity Activity array
*/
public static function updateItem($activity)
{
$item = [];
$item['changed'] = DateTimeFormat::utcNow();
$item['edited'] = $activity['updated'];
$item['title'] = HTML::toBBCode($activity['name']);
$item['content-warning'] = HTML::toBBCode($activity['summary']);
$item['body'] = self::convertMentions(HTML::toBBCode($activity['content']));
$item['tag'] = self::constructTagList($activity['tags'], $activity['sensitive']);
Item::update($item, ['uri' => $activity['id']]);
}
/**
* Prepares data for a message
*
@ -128,22 +147,6 @@ class Processor
self::postItem($activity, $item);
}
/**
* Prepare the item array for a "like"
*
* @param array $activity Activity array
*/
public static function likeItem($activity)
{
$item = [];
$item['verb'] = ACTIVITY_LIKE;
$item['parent-uri'] = $activity['object_id'];
$item['gravity'] = GRAVITY_ACTIVITY;
$item['object-type'] = ACTIVITY_OBJ_NOTE;
self::postItem($activity, $item);
}
/**
* Delete items
*
@ -158,14 +161,15 @@ class Processor
}
/**
* Prepare the item array for a "dislike"
* Prepare the item array for an activity
*
* @param array $activity Activity array
* @param string $verb Activity verb
*/
public static function dislikeItem($activity)
public static function createActivity($activity, $verb)
{
$item = [];
$item['verb'] = ACTIVITY_DISLIKE;
$item['verb'] = $verb;
$item['parent-uri'] = $activity['object_id'];
$item['gravity'] = GRAVITY_ACTIVITY;
$item['object-type'] = ACTIVITY_OBJ_NOTE;
@ -176,7 +180,8 @@ class Processor
/**
* Create an event
*
* @param array $activity Activity array
* @param array $activity Activity array
* @param array $item
*/
public static function createEvent($activity, $item)
{