PluginProbe
ActivityPub / 5.6.1
ActivityPub v5.6.1
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 5.6.1, at activitypub.php

203 lines 6.5 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: 5.6.1
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 use WP_CLI;
21
22 \define( 'ACTIVITYPUB_PLUGIN_VERSION', '5.6.1' );
23
24 // Plugin related constants.
25 \define( 'ACTIVITYPUB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
26 \define( 'ACTIVITYPUB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
27 \define( 'ACTIVITYPUB_PLUGIN_FILE', ACTIVITYPUB_PLUGIN_DIR . basename( __FILE__ ) );
28 \define( 'ACTIVITYPUB_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
29
30 require_once __DIR__ . '/includes/class-autoloader.php';
31 require_once __DIR__ . '/includes/compat.php';
32 require_once __DIR__ . '/includes/functions.php';
33 require_once __DIR__ . '/includes/constants.php';
34 require_once __DIR__ . '/integration/load.php';
35
36 Autoloader::register_path( __NAMESPACE__, __DIR__ . '/includes' );
37
38 /**
39 * Initialize REST routes.
40 */
41 function rest_init() {
42 Rest\Server::init();
43 Rest\Post::init();
44 ( new Rest\Actors_Controller() )->register_routes();
45 ( new Rest\Actors_Inbox_Controller() )->register_routes();
46 ( new Rest\Application_Controller() )->register_routes();
47 ( new Rest\Collections_Controller() )->register_routes();
48 ( new Rest\Comments_Controller() )->register_routes();
49 ( new Rest\Followers_Controller() )->register_routes();
50 ( new Rest\Following_Controller() )->register_routes();
51 ( new Rest\Inbox_Controller() )->register_routes();
52 ( new Rest\Interaction_Controller() )->register_routes();
53 ( new Rest\Moderators_Controller() )->register_routes();
54 ( new Rest\Outbox_Controller() )->register_routes();
55 ( new Rest\Replies_Controller() )->register_routes();
56 ( new Rest\Webfinger_Controller() )->register_routes();
57
58 // Load NodeInfo endpoints only if blog is public.
59 if ( is_blog_public() ) {
60 ( new Rest\Nodeinfo_Controller() )->register_routes();
61 }
62 }
63 \add_action( 'rest_api_init', __NAMESPACE__ . '\rest_init' );
64
65 /**
66 * Initialize plugin.
67 */
68 function plugin_init() {
69 \add_action( 'init', array( __NAMESPACE__ . '\Migration', 'init' ) );
70 \add_action( 'init', array( __NAMESPACE__ . '\Activitypub', 'init' ) );
71 \add_action( 'init', array( __NAMESPACE__ . '\Dispatcher', 'init' ) );
72 \add_action( 'init', array( __NAMESPACE__ . '\Handler', 'init' ) );
73 \add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) );
74 \add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) );
75 \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
76 \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
77 \add_action( 'init', array( __NAMESPACE__ . '\Link', 'init' ) );
78 \add_action( 'init', array( __NAMESPACE__ . '\Mailer', 'init' ) );
79
80 if ( site_supports_blocks() ) {
81 \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
82 }
83
84 $debug_file = __DIR__ . '/includes/debug.php';
85 if ( \WP_DEBUG && file_exists( $debug_file ) && is_readable( $debug_file ) ) {
86 require_once $debug_file;
87 Debug::init();
88 }
89 }
90 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );
91
92 /**
93 * Initialize plugin admin.
94 */
95 function plugin_admin_init() {
96 // Menus are registered before `admin_init`, because of course they are.
97 \add_action( 'admin_menu', array( __NAMESPACE__ . '\WP_Admin\Menu', 'admin_menu' ) );
98 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Admin', 'init' ) );
99 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
100 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
101 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', 'init' ) );
102 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Welcome_Fields', 'init' ) );
103 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Blog_Settings_Fields', 'init' ) );
104 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\User_Settings_Fields', 'init' ) );
105
106 if ( defined( 'WP_LOAD_IMPORTERS' ) && WP_LOAD_IMPORTERS ) {
107 require_once __DIR__ . '/includes/wp-admin/import/load.php';
108 \add_action( 'init', __NAMESPACE__ . '\WP_Admin\Import\load' );
109 }
110 }
111 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_admin_init' );
112
113 \register_activation_hook(
114 __FILE__,
115 array(
116 __NAMESPACE__ . '\Activitypub',
117 'activate',
118 )
119 );
120
121 /**
122 * Redirect to the welcome page after plugin activation.
123 *
124 * @param string $plugin The plugin basename.
125 */
126 function activation_redirect( $plugin ) {
127 if ( ACTIVITYPUB_PLUGIN_BASENAME === $plugin ) {
128 \wp_safe_redirect( \admin_url( 'options-general.php?page=activitypub' ) );
129 exit;
130 }
131 }
132 \add_action( 'activated_plugin', __NAMESPACE__ . '\activation_redirect' );
133
134 \register_deactivation_hook(
135 __FILE__,
136 array(
137 __NAMESPACE__ . '\Activitypub',
138 'deactivate',
139 )
140 );
141
142 \register_uninstall_hook(
143 __FILE__,
144 array(
145 __NAMESPACE__ . '\Activitypub',
146 'uninstall',
147 )
148 );
149
150
151 /**
152 * `get_plugin_data` wrapper.
153 *
154 * @deprecated 4.2.0 Use `get_plugin_data` instead.
155 *
156 * @param array $default_headers Optional. The default plugin headers. Default empty array.
157 * @return array The plugin metadata array.
158 */
159 function get_plugin_meta( $default_headers = array() ) {
160 _deprecated_function( __FUNCTION__, '4.2.0', 'get_plugin_data' );
161
162 if ( ! $default_headers ) {
163 $default_headers = array(
164 'Name' => 'Plugin Name',
165 'PluginURI' => 'Plugin URI',
166 'Version' => 'Version',
167 'Description' => 'Description',
168 'Author' => 'Author',
169 'AuthorURI' => 'Author URI',
170 'TextDomain' => 'Text Domain',
171 'DomainPath' => 'Domain Path',
172 'Network' => 'Network',
173 'RequiresWP' => 'Requires at least',
174 'RequiresPHP' => 'Requires PHP',
175 'UpdateURI' => 'Update URI',
176 );
177 }
178
179 return \get_file_data( __FILE__, $default_headers, 'plugin' );
180 }
181
182 /**
183 * Plugin Version Number used for caching.
184 *
185 * @deprecated 4.2.0 Use constant ACTIVITYPUB_PLUGIN_VERSION directly.
186 */
187 function get_plugin_version() {
188 _deprecated_function( __FUNCTION__, '4.2.0', 'ACTIVITYPUB_PLUGIN_VERSION' );
189
190 return ACTIVITYPUB_PLUGIN_VERSION;
191 }
192
193 // Check for CLI env, to add the CLI commands.
194 if ( defined( 'WP_CLI' ) && WP_CLI ) {
195 WP_CLI::add_command(
196 'activitypub',
197 '\Activitypub\Cli',
198 array(
199 'shortdesc' => 'ActivityPub related commands to manage plugin functionality and the federation of posts and comments.',
200 )
201 );
202 }
203