PluginProbe
ActivityPub / 7.2.0
ActivityPub v7.2.0
9.3.1 9.3.0 9.2.2 9.2.1 9.2.0 9.1.0 9.0.2 9.0.1 9.0.0 8.3.0 8.2.1 8.2.0 8.1.1 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.2.0 1.3.0 2.0.0 2.0.1 2.1.0 2.1.1 All 160 releases
activitypub / activitypub.php

activitypub.php in ActivityPub 7.2.0, at activitypub.php

176 lines 6.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: ActivityPub
4 * Plugin URI: https://github.com/Automattic/wordpress-activitypub
5 * Description: The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.
6 * Version: 7.2.0
7 * Author: Matthias Pfefferle & Automattic
8 * Author URI: https://automattic.com/
9 * License: MIT
10 * License URI: http://opensource.org/licenses/MIT
11 * Requires PHP: 7.2
12 * Text Domain: activitypub
13 * Domain Path: /languages
14 *
15 * @package Activitypub
16 */
17
18 namespace Activitypub;
19
20 \define( 'ACTIVITYPUB_PLUGIN_VERSION', '7.2.0' );
21
22 // Plugin related constants.
23 \define( 'ACTIVITYPUB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
24 \define( 'ACTIVITYPUB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
25 \define( 'ACTIVITYPUB_PLUGIN_FILE', ACTIVITYPUB_PLUGIN_DIR . basename( __FILE__ ) );
26 \define( 'ACTIVITYPUB_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
27
28 require_once __DIR__ . '/includes/class-autoloader.php';
29 require_once __DIR__ . '/includes/compat.php';
30 require_once __DIR__ . '/includes/functions.php';
31 require_once __DIR__ . '/includes/constants.php';
32 require_once __DIR__ . '/integration/load.php';
33
34 Autoloader::register_path( __NAMESPACE__, __DIR__ . '/includes' );
35
36 /**
37 * Initialize REST routes.
38 */
39 function rest_init() {
40 Rest\Server::init();
41 ( new Rest\Actors_Controller() )->register_routes();
42 ( new Rest\Actors_Inbox_Controller() )->register_routes();
43 ( new Rest\Application_Controller() )->register_routes();
44 ( new Rest\Collections_Controller() )->register_routes();
45 ( new Rest\Comments_Controller() )->register_routes();
46 ( new Rest\Followers_Controller() )->register_routes();
47 ( new Rest\Following_Controller() )->register_routes();
48 ( new Rest\Inbox_Controller() )->register_routes();
49 ( new Rest\Interaction_Controller() )->register_routes();
50 ( new Rest\Moderators_Controller() )->register_routes();
51 ( new Rest\Outbox_Controller() )->register_routes();
52 ( new Rest\Post_Controller() )->register_routes();
53 ( new Rest\Replies_Controller() )->register_routes();
54 ( new Rest\URL_Validator_Controller() )->register_routes();
55 ( new Rest\Webfinger_Controller() )->register_routes();
56
57 // Load NodeInfo endpoints only if blog is public.
58 if ( is_blog_public() ) {
59 ( new Rest\Nodeinfo_Controller() )->register_routes();
60 }
61 }
62 \add_action( 'rest_api_init', __NAMESPACE__ . '\rest_init' );
63
64 /**
65 * Initialize plugin.
66 */
67 function plugin_init() {
68 \add_action( 'init', array( __NAMESPACE__ . '\Activitypub', 'init' ) );
69 \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
70 \add_action( 'init', array( __NAMESPACE__ . '\Dispatcher', 'init' ) );
71 \add_action( 'init', array( __NAMESPACE__ . '\Handler', 'init' ) );
72 \add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) );
73 \add_action( 'init', array( __NAMESPACE__ . '\Link', 'init' ) );
74 \add_action( 'init', array( __NAMESPACE__ . '\Mailer', 'init' ) );
75 \add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) );
76 \add_action( 'init', array( __NAMESPACE__ . '\Migration', 'init' ), 1 );
77 \add_action( 'init', array( __NAMESPACE__ . '\Move', 'init' ) );
78 \add_action( 'init', array( __NAMESPACE__ . '\Options', 'init' ) );
79 \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
80 \add_action( 'init', array( __NAMESPACE__ . '\Signature', 'init' ) );
81
82 if ( site_supports_blocks() ) {
83 \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
84 }
85
86 // Load development tools.
87 if ( 'local' === wp_get_environment_type() ) {
88 $loader_file = __DIR__ . '/local/load.php';
89 if ( \file_exists( $loader_file ) && \is_readable( $loader_file ) ) {
90 require_once $loader_file;
91 }
92 }
93
94 if ( \defined( 'WP_DEBUG' ) && WP_DEBUG ) {
95 $debug_file = __DIR__ . '/includes/debug.php';
96 if ( \file_exists( $debug_file ) && \is_readable( $debug_file ) ) {
97 require_once $debug_file;
98 Debug::init();
99 }
100 }
101 }
102 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );
103
104 /**
105 * Initialize plugin admin.
106 */
107 function plugin_admin_init() {
108 // Screen Options and Menus are set before `admin_init`.
109 \add_action( 'init', array( __NAMESPACE__ . '\WP_Admin\Heartbeat', 'init' ), 9 ); // Before script loader.
110 \add_filter( 'init', array( __NAMESPACE__ . '\WP_Admin\Screen_Options', 'init' ) );
111 \add_action( 'admin_menu', array( __NAMESPACE__ . '\WP_Admin\Menu', 'admin_menu' ) );
112
113 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Admin', 'init' ) );
114 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Advanced_Settings_Fields', 'init' ) );
115 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Blog_Settings_Fields', 'init' ) );
116 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
117 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
118 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', 'init' ) );
119 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\User_Settings_Fields', 'init' ) );
120 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Welcome_Fields', 'init' ) );
121
122 if ( defined( 'WP_LOAD_IMPORTERS' ) && WP_LOAD_IMPORTERS ) {
123 require_once __DIR__ . '/includes/wp-admin/import/load.php';
124 \add_action( 'admin_init', __NAMESPACE__ . '\WP_Admin\Import\load' );
125 }
126 }
127 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_admin_init' );
128
129 \register_activation_hook(
130 __FILE__,
131 array(
132 __NAMESPACE__ . '\Activitypub',
133 'activate',
134 )
135 );
136
137 /**
138 * Redirect to the welcome page after plugin activation.
139 *
140 * @param string $plugin The plugin basename.
141 */
142 function activation_redirect( $plugin ) {
143 if ( ACTIVITYPUB_PLUGIN_BASENAME === $plugin ) {
144 \wp_safe_redirect( \admin_url( 'options-general.php?page=activitypub' ) );
145 exit;
146 }
147 }
148 \add_action( 'activated_plugin', __NAMESPACE__ . '\activation_redirect' );
149
150 \register_deactivation_hook(
151 __FILE__,
152 array(
153 __NAMESPACE__ . '\Activitypub',
154 'deactivate',
155 )
156 );
157
158 \register_uninstall_hook(
159 __FILE__,
160 array(
161 __NAMESPACE__ . '\Activitypub',
162 'uninstall',
163 )
164 );
165
166 // Check for CLI env, to add the CLI commands.Add commentMore actions.
167 if ( defined( 'WP_CLI' ) && WP_CLI ) {
168 \WP_CLI::add_command(
169 'activitypub',
170 '\Activitypub\Cli',
171 array(
172 'shortdesc' => 'ActivityPub related commands to manage plugin functionality and the federation of posts and comments.',
173 )
174 );
175 }
176