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
 | |
| 		);
 | |
| 	}
 | |
| }
 |