Store "View" activity from Peertube

This commit is contained in:
Michael 2022-04-05 07:48:38 +00:00
parent a5a5a4b603
commit dcbca0c6a3
3 changed files with 20 additions and 3 deletions

View file

@ -183,6 +183,13 @@ final class Activity
*/
const EMOJIREACT = ActivityNamespace::LITEPUB . '/emojireact';
/**
* View notification from Peertube
*
* @var string
*/
const VIEW = ActivityNamespace::PEERTUBE . '/view';
/**
* likes (etc.) can apply to other things besides posts. Check if they are post children,
* in which case we handle them specially
@ -195,6 +202,7 @@ final class Activity
self::FOLLOW,
self::ANNOUNCE,
self::EMOJIREACT,
self::VIEW,
];
/**

View file

@ -144,12 +144,19 @@ final class ActivityNamespace
* @var string
*/
const ATOM1 = 'http://www.w3.org/2005/Atom';
/**
* @var string
*/
const MASTODON = 'http://mastodon.social/schema/1.0';
/**
* @var string
*/
const LITEPUB = 'http://litepub.social';
/**
* @var string
*/
const PEERTUBE = 'https://joinpeertube.org';
}

View file

@ -385,7 +385,7 @@ class Receiver
} else {
$object_data['directmessage'] = JsonLD::fetchElement($activity, 'litepub:directMessage');
}
} elseif (in_array($type, array_merge(self::ACTIVITY_TYPES, ['as:Follow', 'litepub:EmojiReact'])) && in_array($object_type, self::CONTENT_TYPES)) {
} elseif (in_array($type, array_merge(self::ACTIVITY_TYPES, ['as:Follow', 'litepub:EmojiReact', 'as:View'])) && in_array($object_type, self::CONTENT_TYPES)) {
// Create a mostly empty array out of the activity data (instead of the object).
// This way we later don't have to check for the existence of each individual array element.
$object_data = self::processObject($activity);
@ -743,8 +743,10 @@ class Receiver
break;
case 'as:View':
if (in_array($object_data['object_type'], ['as:Note', 'as:Video'])) {
// Unhandled Peertube activity
if (in_array($object_data['object_type'], self::CONTENT_TYPES)) {
ActivityPub\Processor::createActivity($object_data, Activity::VIEW);
} elseif ($object_data['object_type'] == '') {
// The object type couldn't be determined. Most likely we don't have it here. We ignore this activity.
} else {
self::storeUnhandledActivity(true, $type, $object_data, $activity, $body, $uid, $trust_source, $push, $signer);
}