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';
|
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,
|
* likes (etc.) can apply to other things besides posts. Check if they are post children,
|
||||||
* in which case we handle them specially
|
* in which case we handle them specially
|
||||||
|
@ -195,6 +202,7 @@ final class Activity
|
||||||
self::FOLLOW,
|
self::FOLLOW,
|
||||||
self::ANNOUNCE,
|
self::ANNOUNCE,
|
||||||
self::EMOJIREACT,
|
self::EMOJIREACT,
|
||||||
|
self::VIEW,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -144,12 +144,19 @@ final class ActivityNamespace
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const ATOM1 = 'http://www.w3.org/2005/Atom';
|
const ATOM1 = 'http://www.w3.org/2005/Atom';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const MASTODON = 'http://mastodon.social/schema/1.0';
|
const MASTODON = 'http://mastodon.social/schema/1.0';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const LITEPUB = 'http://litepub.social';
|
const LITEPUB = 'http://litepub.social';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const PEERTUBE = 'https://joinpeertube.org';
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,7 @@ class Receiver
|
||||||
} else {
|
} else {
|
||||||
$object_data['directmessage'] = JsonLD::fetchElement($activity, 'litepub:directMessage');
|
$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).
|
// 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.
|
// This way we later don't have to check for the existence of each individual array element.
|
||||||
$object_data = self::processObject($activity);
|
$object_data = self::processObject($activity);
|
||||||
|
@ -743,8 +743,10 @@ class Receiver
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'as:View':
|
case 'as:View':
|
||||||
if (in_array($object_data['object_type'], ['as:Note', 'as:Video'])) {
|
if (in_array($object_data['object_type'], self::CONTENT_TYPES)) {
|
||||||
// Unhandled Peertube activity
|
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 {
|
} else {
|
||||||
self::storeUnhandledActivity(true, $type, $object_data, $activity, $body, $uid, $trust_source, $push, $signer);
|
self::storeUnhandledActivity(true, $type, $object_data, $activity, $body, $uid, $trust_source, $push, $signer);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue