83 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Stream Connector integration file.
 | 
						|
 *
 | 
						|
 * @package Activitypub
 | 
						|
 */
 | 
						|
 | 
						|
namespace Activitypub\Integration;
 | 
						|
 | 
						|
/**
 | 
						|
 * Stream Connector for ActivityPub.
 | 
						|
 *
 | 
						|
 * This class is a Stream Connector for the Stream plugin.
 | 
						|
 *
 | 
						|
 * @see https://wordpress.org/plugins/stream/
 | 
						|
 */
 | 
						|
class Stream_Connector extends \WP_Stream\Connector {
 | 
						|
	/**
 | 
						|
	 * Connector slug.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	public $name = 'activitypub';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Actions registered for this connector.
 | 
						|
	 *
 | 
						|
	 * @var array
 | 
						|
	 */
 | 
						|
	public $actions = array(
 | 
						|
		'activitypub_notification_follow',
 | 
						|
	);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Return translated connector label.
 | 
						|
	 *
 | 
						|
	 * @return string
 | 
						|
	 */
 | 
						|
	public function get_label() {
 | 
						|
		return __( 'ActivityPub', 'activitypub' );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Return translated context labels.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public function get_context_labels() {
 | 
						|
		return array();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Return translated action labels.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public function get_action_labels() {
 | 
						|
		return array();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Callback for activitypub_notification_follow.
 | 
						|
	 *
 | 
						|
	 * @param \Activitypub\Notification $notification The notification object.
 | 
						|
	 */
 | 
						|
	public function callback_activitypub_notification_follow( $notification ) {
 | 
						|
		$this->log(
 | 
						|
			sprintf(
 | 
						|
				// translators: %s is a URL.
 | 
						|
				__( 'New Follower: %s', 'activitypub' ),
 | 
						|
				$notification->actor
 | 
						|
			),
 | 
						|
			array(
 | 
						|
				'notification' => \wp_json_encode( $notification, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ),
 | 
						|
			),
 | 
						|
			null,
 | 
						|
			'notification',
 | 
						|
			$notification->type,
 | 
						|
			$notification->target
 | 
						|
		);
 | 
						|
	}
 | 
						|
}
 |