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

176 lines 5.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.3.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 use WP_CLI;
21
22 \define( 'ACTIVITYPUB_PLUGIN_VERSION', '5.3.0' );
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\Inbox::init();
43 Rest\Server::init();
44 Rest\Post::init();
45 ( new Rest\Actors_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\Interaction_Controller() )->register_routes();
52 ( new Rest\Moderators_Controller() )->register_routes();
53 ( new Rest\Outbox_Controller() )->register_routes();
54 ( new Rest\Replies_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__ . '\Migration', 'init' ) );
69 \add_action( 'init', array( __NAMESPACE__ . '\Activitypub', '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__ . '\Mention', 'init' ) );
74 \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
75 \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
76 \add_action( 'init', array( __NAMESPACE__ . '\Link', 'init' ) );
77 \add_action( 'init', array( __NAMESPACE__ . '\Mailer', 'init' ) );
78
79 // Menus are registered before `admin_init`, because of course they are.
80 \add_action( 'admin_menu', array( __NAMESPACE__ . '\WP_Admin\Menu', 'admin_menu' ) );
81 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Admin', 'init' ) );
82 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
83 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
84 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', 'init' ) );
85 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Blog_Settings_Fields', 'init' ) );
86
87 if ( site_supports_blocks() ) {
88 \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
89 }
90
91 $debug_file = __DIR__ . '/includes/debug.php';
92 if ( \WP_DEBUG && file_exists( $debug_file ) && is_readable( $debug_file ) ) {
93 require_once $debug_file;
94 Debug::init();
95 }
96 }
97 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );
98
99 \register_activation_hook(
100 __FILE__,
101 array(
102 __NAMESPACE__ . '\Activitypub',
103 'activate',
104 )
105 );
106
107 \register_deactivation_hook(
108 __FILE__,
109 array(
110 __NAMESPACE__ . '\Activitypub',
111 'deactivate',
112 )
113 );
114
115 \register_uninstall_hook(
116 __FILE__,
117 array(
118 __NAMESPACE__ . '\Activitypub',
119 'uninstall',
120 )
121 );
122
123
124 /**
125 * `get_plugin_data` wrapper.
126 *
127 * @deprecated 4.2.0 Use `get_plugin_data` instead.
128 *
129 * @param array $default_headers Optional. The default plugin headers. Default empty array.
130 * @return array The plugin metadata array.
131 */
132 function get_plugin_meta( $default_headers = array() ) {
133 _deprecated_function( __FUNCTION__, '4.2.0', 'get_plugin_data' );
134
135 if ( ! $default_headers ) {
136 $default_headers = array(
137 'Name' => 'Plugin Name',
138 'PluginURI' => 'Plugin URI',
139 'Version' => 'Version',
140 'Description' => 'Description',
141 'Author' => 'Author',
142 'AuthorURI' => 'Author URI',
143 'TextDomain' => 'Text Domain',
144 'DomainPath' => 'Domain Path',
145 'Network' => 'Network',
146 'RequiresWP' => 'Requires at least',
147 'RequiresPHP' => 'Requires PHP',
148 'UpdateURI' => 'Update URI',
149 );
150 }
151
152 return \get_file_data( __FILE__, $default_headers, 'plugin' );
153 }
154
155 /**
156 * Plugin Version Number used for caching.
157 *
158 * @deprecated 4.2.0 Use constant ACTIVITYPUB_PLUGIN_VERSION directly.
159 */
160 function get_plugin_version() {
161 _deprecated_function( __FUNCTION__, '4.2.0', 'ACTIVITYPUB_PLUGIN_VERSION' );
162
163 return ACTIVITYPUB_PLUGIN_VERSION;
164 }
165
166 // Check for CLI env, to add the CLI commands.
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