PluginProbe
ActivityPub / 5.7.0
ActivityPub v5.7.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
← All changes | activitypub.php +92 -71 9.2.25.7.0 View file →
@@ -2,14 +2,14 @@
2 2 /**
3 3 * Plugin Name: ActivityPub
4 4 * Plugin URI: https://github.com/Automattic/wordpress-activitypub
5 5 * Description: The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.
6 - * Version: 9.2.2
6 + * Version: 5.7.0
7 7 * Author: Matthias Pfefferle & Automattic
8 8 * Author URI: https://automattic.com/
9 9 * License: MIT
10 10 * License URI: http://opensource.org/licenses/MIT
11 - * Requires PHP: 7.4
11 + * Requires PHP: 7.2
12 12 * Text Domain: activitypub
13 13 * Domain Path: /languages
14 14 *
15 15 * @package Activitypub
@@ -16,10 +16,12 @@
16 16 */
17 17
18 18 namespace Activitypub;
19 19
20 -\define( 'ACTIVITYPUB_PLUGIN_VERSION', '9.2.2' );
20 +use WP_CLI;
21 21
22 +\define( 'ACTIVITYPUB_PLUGIN_VERSION', '5.7.0' );
23 +
22 24 // Plugin related constants.
23 25 \define( 'ACTIVITYPUB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
24 26 \define( 'ACTIVITYPUB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
25 27 \define( 'ACTIVITYPUB_PLUGIN_FILE', ACTIVITYPUB_PLUGIN_DIR . basename( __FILE__ ) );
@@ -26,54 +28,33 @@
26 28 \define( 'ACTIVITYPUB_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
27 29
28 30 require_once __DIR__ . '/includes/class-autoloader.php';
29 31 require_once __DIR__ . '/includes/compat.php';
32 +require_once __DIR__ . '/includes/functions.php';
30 33 require_once __DIR__ . '/includes/constants.php';
31 -require_once __DIR__ . '/includes/functions.php';
32 -require_once __DIR__ . '/includes/functions-activity.php';
33 -require_once __DIR__ . '/includes/functions-comment.php';
34 -require_once __DIR__ . '/includes/functions-federation.php';
35 -require_once __DIR__ . '/includes/functions-media.php';
36 -require_once __DIR__ . '/includes/functions-post.php';
37 -require_once __DIR__ . '/includes/functions-request.php';
38 -require_once __DIR__ . '/includes/functions-url.php';
39 -require_once __DIR__ . '/includes/functions-user.php';
40 34 require_once __DIR__ . '/integration/load.php';
41 35
42 36 Autoloader::register_path( __NAMESPACE__, __DIR__ . '/includes' );
43 37
44 -\register_activation_hook( __FILE__, array( Activitypub::class, 'activate' ) );
45 -\register_deactivation_hook( __FILE__, array( Activitypub::class, 'deactivate' ) );
46 -\register_uninstall_hook( __FILE__, array( Activitypub::class, 'uninstall' ) );
47 -
48 38 /**
49 39 * Initialize REST routes.
50 40 */
51 41 function rest_init() {
52 42 Rest\Server::init();
43 + Rest\Post::init();
53 44 ( new Rest\Actors_Controller() )->register_routes();
54 45 ( new Rest\Actors_Inbox_Controller() )->register_routes();
55 - ( new Rest\Admin\Actions_Controller() )->register_routes();
56 - ( new Rest\Admin\Statistics_Controller() )->register_routes();
57 46 ( new Rest\Application_Controller() )->register_routes();
58 - ( new Rest\Stats_Image_Controller() )->register_routes();
59 47 ( new Rest\Collections_Controller() )->register_routes();
60 48 ( new Rest\Comments_Controller() )->register_routes();
61 49 ( new Rest\Followers_Controller() )->register_routes();
62 50 ( new Rest\Following_Controller() )->register_routes();
63 - ( new Rest\Liked_Controller() )->register_routes();
64 51 ( new Rest\Inbox_Controller() )->register_routes();
65 52 ( new Rest\Interaction_Controller() )->register_routes();
66 53 ( new Rest\Moderators_Controller() )->register_routes();
67 - if ( \get_option( 'activitypub_api', false ) ) {
68 - ( new Rest\Actor_Autocomplete_Controller() )->register_routes();
69 - ( new Rest\OAuth\Authorization_Controller() )->register_routes();
70 - ( new Rest\OAuth\Clients_Controller() )->register_routes();
71 - ( new Rest\OAuth\Token_Controller() )->register_routes();
72 - }
73 54 ( new Rest\Outbox_Controller() )->register_routes();
74 - ( new Rest\Post_Controller() )->register_routes();
75 55 ( new Rest\Replies_Controller() )->register_routes();
56 + ( new Rest\URL_Validator_Controller() )->register_routes();
76 57 ( new Rest\Webfinger_Controller() )->register_routes();
77 58
78 59 // Load NodeInfo endpoints only if blog is public.
79 60 if ( is_blog_public() ) {
@@ -78,9 +59,8 @@
78 59 // Load NodeInfo endpoints only if blog is public.
79 60 if ( is_blog_public() ) {
80 61 ( new Rest\Nodeinfo_Controller() )->register_routes();
81 62 }
82 - ( new Rest\Proxy_Controller() )->register_routes();
83 63 }
84 64 \add_action( 'rest_api_init', __NAMESPACE__ . '\rest_init' );
85 65
86 66 /**
@@ -87,18 +67,10 @@
87 67 * Initialize plugin.
88 68 */
89 69 function plugin_init() {
90 70 \add_action( 'init', array( __NAMESPACE__ . '\Activitypub', 'init' ) );
91 - \add_action( 'init', array( __NAMESPACE__ . '\Application', 'init' ) );
92 - \add_action( 'init', array( __NAMESPACE__ . '\Avatars', 'init' ) );
93 - \add_action( 'init', array( __NAMESPACE__ . '\Blurhash', 'init' ) );
94 - \add_action( 'init', array( __NAMESPACE__ . '\Cache', 'init' ) );
95 71 \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
96 72 \add_action( 'init', array( __NAMESPACE__ . '\Dispatcher', 'init' ) );
97 - \add_action( 'init', array( __NAMESPACE__ . '\Embed', 'init' ) );
98 - if ( \get_option( 'activitypub_api', false ) ) {
99 - \add_action( 'init', array( __NAMESPACE__ . '\Event_Stream', 'init' ) );
100 - }
101 73 \add_action( 'init', array( __NAMESPACE__ . '\Handler', 'init' ) );
102 74 \add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) );
103 75 \add_action( 'init', array( __NAMESPACE__ . '\Link', 'init' ) );
104 76 \add_action( 'init', array( __NAMESPACE__ . '\Mailer', 'init' ) );
@@ -105,35 +77,19 @@
105 77 \add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) );
106 78 \add_action( 'init', array( __NAMESPACE__ . '\Migration', 'init' ), 1 );
107 79 \add_action( 'init', array( __NAMESPACE__ . '\Move', 'init' ) );
108 80 \add_action( 'init', array( __NAMESPACE__ . '\Options', 'init' ) );
109 - \add_action( 'init', array( __NAMESPACE__ . '\Post_Types', 'init' ) );
110 - \add_action( 'init', array( __NAMESPACE__ . '\Router', 'init' ) );
111 - // Priority 0 ensures Scheduler hooks are registered before Migration (priority 1) runs.
112 - \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ), 0 );
113 - \add_action( 'init', array( __NAMESPACE__ . '\Search', 'init' ) );
114 - \add_action( 'init', array( __NAMESPACE__ . '\Signature', 'init' ) );
115 - // Only load OAuth Server if the ActivityPub API is enabled.
116 - if ( \get_option( 'activitypub_api', false ) ) {
117 - \add_action( 'init', array( __NAMESPACE__ . '\OAuth\Server', 'init' ) );
118 - }
81 + \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
119 82
120 83 if ( site_supports_blocks() ) {
121 84 \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
122 85 }
123 86
124 - // Only load relay if relay mode is enabled.
125 - if ( \get_option( 'activitypub_relay_mode', false ) ) {
126 - \add_action( 'init', array( __NAMESPACE__ . '\Relay', 'init' ) );
87 + $debug_file = __DIR__ . '/includes/debug.php';
88 + if ( \WP_DEBUG && file_exists( $debug_file ) && is_readable( $debug_file ) ) {
89 + require_once $debug_file;
90 + Debug::init();
127 91 }
128 -
129 - // Load development tools.
130 - if ( 'local' === wp_get_environment_type() ) {
131 - $loader_file = __DIR__ . '/local/load.php';
132 - if ( \file_exists( $loader_file ) && \is_readable( $loader_file ) ) {
133 - require_once $loader_file;
134 - }
135 - }
136 92 }
137 93 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );
138 94
139 95 /**
@@ -139,23 +95,18 @@
139 95 /**
140 96 * Initialize plugin admin.
141 97 */
142 98 function plugin_admin_init() {
143 - // Screen Options and Menus are set before `admin_init`.
144 - \add_action( 'init', array( __NAMESPACE__ . '\WP_Admin\Heartbeat', 'init' ), 9 ); // Before script loader.
145 - \add_filter( 'init', array( __NAMESPACE__ . '\WP_Admin\Screen_Options', 'init' ) );
146 - \add_action( 'init', array( __NAMESPACE__ . '\WP_Admin\Menu', 'init' ) );
147 -
99 + // Menus are registered before `admin_init`, because of course they are.
100 + \add_action( 'admin_menu', array( __NAMESPACE__ . '\WP_Admin\Menu', 'admin_menu' ) );
148 101 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Admin', 'init' ) );
149 - \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Advanced_Settings_Fields', 'init' ) );
150 - \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\App', 'init' ), 0 ); // Before admin bar init.
151 - \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Blog_Settings_Fields', 'init' ) );
152 102 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
153 103 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
154 104 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', 'init' ) );
155 - \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Dashboard', 'init' ) );
105 + \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Welcome_Fields', 'init' ) );
106 + \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Advanced_Settings_Fields', 'init' ) );
107 + \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Blog_Settings_Fields', 'init' ) );
156 108 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\User_Settings_Fields', 'init' ) );
157 - \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Welcome_Fields', 'init' ) );
158 109
159 110 if ( defined( 'WP_LOAD_IMPORTERS' ) && WP_LOAD_IMPORTERS ) {
160 111 require_once __DIR__ . '/includes/wp-admin/import/load.php';
161 112 \add_action( 'admin_init', __NAMESPACE__ . '\WP_Admin\Import\load' );
@@ -162,8 +113,16 @@
162 113 }
163 114 }
164 115 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_admin_init' );
165 116
117 +\register_activation_hook(
118 + __FILE__,
119 + array(
120 + __NAMESPACE__ . '\Activitypub',
121 + 'activate',
122 + )
123 +);
124 +
166 125 /**
167 126 * Redirect to the welcome page after plugin activation.
168 127 *
169 128 * @param string $plugin The plugin basename.
@@ -175,11 +134,73 @@
175 134 }
176 135 }
177 136 \add_action( 'activated_plugin', __NAMESPACE__ . '\activation_redirect' );
178 137
138 +\register_deactivation_hook(
139 + __FILE__,
140 + array(
141 + __NAMESPACE__ . '\Activitypub',
142 + 'deactivate',
143 + )
144 +);
145 +
146 +\register_uninstall_hook(
147 + __FILE__,
148 + array(
149 + __NAMESPACE__ . '\Activitypub',
150 + 'uninstall',
151 + )
152 +);
153 +
154 +
155 +/**
156 + * `get_plugin_data` wrapper.
157 + *
158 + * @deprecated 4.2.0 Use `get_plugin_data` instead.
159 + *
160 + * @param array $default_headers Optional. The default plugin headers. Default empty array.
161 + * @return array The plugin metadata array.
162 + */
163 +function get_plugin_meta( $default_headers = array() ) {
164 + _deprecated_function( __FUNCTION__, '4.2.0', 'get_plugin_data' );
165 +
166 + if ( ! $default_headers ) {
167 + $default_headers = array(
168 + 'Name' => 'Plugin Name',
169 + 'PluginURI' => 'Plugin URI',
170 + 'Version' => 'Version',
171 + 'Description' => 'Description',
172 + 'Author' => 'Author',
173 + 'AuthorURI' => 'Author URI',
174 + 'TextDomain' => 'Text Domain',
175 + 'DomainPath' => 'Domain Path',
176 + 'Network' => 'Network',
177 + 'RequiresWP' => 'Requires at least',
178 + 'RequiresPHP' => 'Requires PHP',
179 + 'UpdateURI' => 'Update URI',
180 + );
181 + }
182 +
183 + return \get_file_data( __FILE__, $default_headers, 'plugin' );
184 +}
185 +
186 +/**
187 + * Plugin Version Number used for caching.
188 + *
189 + * @deprecated 4.2.0 Use constant ACTIVITYPUB_PLUGIN_VERSION directly.
190 + */
191 +function get_plugin_version() {
192 + _deprecated_function( __FUNCTION__, '4.2.0', 'ACTIVITYPUB_PLUGIN_VERSION' );
193 +
194 + return ACTIVITYPUB_PLUGIN_VERSION;
195 +}
196 +
179 197 // Check for CLI env, to add the CLI commands.
180 198 if ( defined( 'WP_CLI' ) && WP_CLI ) {
181 - Cli::register();
199 + WP_CLI::add_command(
200 + 'activitypub',
201 + '\Activitypub\Cli',
202 + array(
203 + 'shortdesc' => 'ActivityPub related commands to manage plugin functionality and the federation of posts and comments.',
204 + )
205 + );
182 206 }
183 -
184 -// Register OAuth login form handler early (before wp-login.php processes).
185 -\add_action( 'login_form_activitypub_authorize', array( __NAMESPACE__ . '\OAuth\Server', 'login_form_authorize' ) );