<?php
+/**
+ * @copyright Copyright (C) 2010-2023, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
namespace Friendica\Protocol;
-use Friendica\Protocol\Activity\ActivityNamespace;
+use Friendica\Protocol\ActivityNamespace;
/**
* Base class for the Activity Verbs
* @var string
*/
const ANNOUNCE = ActivityNamespace::ACTIVITY2 . 'Announce';
-
/**
- * Pokes an user.
+ * Indicates that the actor has read the object.
*
- * @see https://github.com/friendica/friendica/wiki/ActivityStreams#activity_poke
+ * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-read
* @var string
*/
- const POKE = ActivityNamespace::ZOT . '/activity/poke';
-
+ const READ = ActivityNamespace::ACTIVITY2 . 'Read';
+ /**
+ * Indicates that the actor has listened to the object.
+ *
+ * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-listen
+ * @var string
+ */
+ const LISTEN = ActivityNamespace::ACTIVITY2 . 'Listen';
+ /**
+ * Indicates that the actor has viewed the object.
+ *
+ * @see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-view
+ * @var string
+ */
+ const VIEW = ActivityNamespace::ACTIVITY2 . 'View';
const O_UNFOLLOW = ActivityNamespace::OSTATUS . '/unfollow';
const O_UNFAVOURITE = ActivityNamespace::OSTATUS . '/unfavorite';
+ /**
+ * React to a post via an emoji
+ *
+ * @var string
+ */
+ const EMOJIREACT = ActivityNamespace::LITEPUB . '/emojireact';
+
/**
* likes (etc.) can apply to other things besides posts. Check if they are post children,
* in which case we handle them specially
* Hidden activities, which doesn't need to be shown
*/
const HIDDEN_ACTIVITIES = [
- Activity::LIKE, Activity::DISLIKE,
- Activity::ATTEND, Activity::ATTENDNO, Activity::ATTENDMAYBE,
- Activity::FOLLOW,
- Activity::ANNOUNCE,
+ self::LIKE, self::DISLIKE,
+ self::ATTEND, self::ATTENDNO, self::ATTENDMAYBE,
+ self::FOLLOW,
+ self::ANNOUNCE,
+ self::EMOJIREACT,
+ self::VIEW,
+ self::READ,
];
/**
*
* @return bool True, if the activity is hidden
*/
- public function isHidden(string $activity)
+ public function isHidden(string $activity): bool
{
foreach (self::HIDDEN_ACTIVITIES as $hiddenActivity) {
if ($this->match($activity, $hiddenActivity)) {
*
* @return boolean
*/
- public function match(string $haystack, string $needle)
+ public function match(string $haystack, string $needle): bool
{
return (($haystack === $needle) ||
((basename($needle) === $haystack) &&