PluginProbe
ActivityPub / 7.0.0
ActivityPub v7.0.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.0.0, at activitypub.php

164 lines 5.7 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.0.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', '7.0.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\Server::init();
43 ( new Rest\Actors_Controller() )->register_routes();
44 ( new Rest\Actors_Inbox_Controller() )->register_routes();
45 ( new Rest\Application_Controller() )->register_routes();
46 ( new Rest\Collections_Controller() )->register_routes();
47 ( new Rest\Comments_Controller() )->register_routes();
48 ( new Rest\Followers_Controller() )->register_routes();
49 ( new Rest\Following_Controller() )->register_routes();
50 ( new Rest\Inbox_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\Post_Controller() )->register_routes();
55 ( new Rest\Replies_Controller() )->register_routes();
56 ( new Rest\URL_Validator_Controller() )->register_routes();
57 ( new Rest\Webfinger_Controller() )->register_routes();
58
59 // Load NodeInfo endpoints only if blog is public.
60 if ( is_blog_public() ) {
61 ( new Rest\Nodeinfo_Controller() )->register_routes();
62 }
63 }
64 \add_action( 'rest_api_init', __NAMESPACE__ . '\rest_init' );
65
66 /**
67 * Initialize plugin.
68 */
69 function plugin_init() {
70 \add_action( 'init', array( __NAMESPACE__ . '\Activitypub', 'init' ) );
71 \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
72 \add_action( 'init', array( __NAMESPACE__ . '\Dispatcher', 'init' ) );
73 \add_action( 'init', array( __NAMESPACE__ . '\Handler', 'init' ) );
74 \add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) );
75 \add_action( 'init', array( __NAMESPACE__ . '\Link', 'init' ) );
76 \add_action( 'init', array( __NAMESPACE__ . '\Mailer', 'init' ) );
77 \add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) );
78 \add_action( 'init', array( __NAMESPACE__ . '\Migration', 'init' ), 1 );
79 \add_action( 'init', array( __NAMESPACE__ . '\Move', 'init' ) );
80 \add_action( 'init', array( __NAMESPACE__ . '\Options', 'init' ) );
81 \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
82
83 if ( site_supports_blocks() ) {
84 \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
85 }
86
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();
91 }
92 }
93 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );
94
95 /**
96 * Initialize plugin admin.
97 */
98 function plugin_admin_init() {
99 // Menus are registered before `admin_init`, because of course they are.
100 \add_action( 'admin_menu', array( __NAMESPACE__ . '\WP_Admin\Menu', 'admin_menu' ) );
101 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Admin', 'init' ) );
102 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Health_Check', 'init' ) );
103 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings', 'init' ) );
104 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\Settings_Fields', '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' ) );
108 \add_action( 'admin_init', array( __NAMESPACE__ . '\WP_Admin\User_Settings_Fields', 'init' ) );
109
110 if ( defined( 'WP_LOAD_IMPORTERS' ) && WP_LOAD_IMPORTERS ) {
111 require_once __DIR__ . '/includes/wp-admin/import/load.php';
112 \add_action( 'admin_init', __NAMESPACE__ . '\WP_Admin\Import\load' );
113 }
114 }
115 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_admin_init' );
116
117 \register_activation_hook(
118 __FILE__,
119 array(
120 __NAMESPACE__ . '\Activitypub',
121 'activate',
122 )
123 );
124
125 /**
126 * Redirect to the welcome page after plugin activation.
127 *
128 * @param string $plugin The plugin basename.
129 */
130 function activation_redirect( $plugin ) {
131 if ( ACTIVITYPUB_PLUGIN_BASENAME === $plugin ) {
132 \wp_safe_redirect( \admin_url( 'options-general.php?page=activitypub' ) );
133 exit;
134 }
135 }
136 \add_action( 'activated_plugin', __NAMESPACE__ . '\activation_redirect' );
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 // Check for CLI env, to add the CLI commands.Add commentMore actions.
155 if ( defined( 'WP_CLI' ) && WP_CLI ) {
156 WP_CLI::add_command(
157 'activitypub',
158 '\Activitypub\Cli',
159 array(
160 'shortdesc' => 'ActivityPub related commands to manage plugin functionality and the federation of posts and comments.',
161 )
162 );
163 }
164