Store "View" activity from Peertube
This commit is contained in:
parent
a5a5a4b603
commit
dcbca0c6a3
3 changed files with 20 additions and 3 deletions
|
@ -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,
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue