PluginProbe
ActivityPub / 2.6.0
ActivityPub v2.6.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 +33 -8 1.2.02.6.0 View file →
@@ -2,14 +2,14 @@
2 2 /**
3 3 * Plugin Name: ActivityPub
4 4 * Plugin URI: https://github.com/pfefferle/wordpress-activitypub/
5 5 * Description: The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.
6 - * Version: 1.2.0
6 + * Version: 2.6.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: 5.6
11 + * Requires PHP: 7.0
12 12 * Text Domain: activitypub
13 13 * Domain Path: /languages
14 14 */
15 15
@@ -20,8 +20,10 @@
20 20
21 21 require_once __DIR__ . '/includes/compat.php';
22 22 require_once __DIR__ . '/includes/functions.php';
23 23
24 +\define( 'ACTIVITYPUB_PLUGIN_VERSION', '2.6.0' );
25 +
24 26 /**
25 27 * Initialize the plugin constants.
26 28 */
27 29 \defined( 'ACTIVITYPUB_REST_NAMESPACE' ) || \define( 'ACTIVITYPUB_REST_NAMESPACE', 'activitypub/1.0' );
@@ -28,12 +30,17 @@
28 30 \defined( 'ACTIVITYPUB_EXCERPT_LENGTH' ) || \define( 'ACTIVITYPUB_EXCERPT_LENGTH', 400 );
29 31 \defined( 'ACTIVITYPUB_SHOW_PLUGIN_RECOMMENDATIONS' ) || \define( 'ACTIVITYPUB_SHOW_PLUGIN_RECOMMENDATIONS', true );
30 32 \defined( 'ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS' ) || \define( 'ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS', 3 );
31 33 \defined( 'ACTIVITYPUB_HASHTAGS_REGEXP' ) || \define( 'ACTIVITYPUB_HASHTAGS_REGEXP', '(?:(?<=\s)|(?<=<p>)|(?<=<br>)|^)#([A-Za-z0-9_]+)(?:(?=\s|[[:punct:]]|$))' );
32 -\defined( 'ACTIVITYPUB_USERNAME_REGEXP' ) || \define( 'ACTIVITYPUB_USERNAME_REGEXP', '(?:([A-Za-z0-9_-]+)@((?:[A-Za-z0-9_-]+\.)+[A-Za-z]+))' );
33 -\defined( 'ACTIVITYPUB_CUSTOM_POST_CONTENT' ) || \define( 'ACTIVITYPUB_CUSTOM_POST_CONTENT', "<strong>[ap_title]</strong>\n\n[ap_content]\n\n[ap_hashtags]\n\n[ap_shortlink]" );
34 +\defined( 'ACTIVITYPUB_USERNAME_REGEXP' ) || \define( 'ACTIVITYPUB_USERNAME_REGEXP', '(?:([A-Za-z0-9\._-]+)@((?:[A-Za-z0-9_-]+\.)+[A-Za-z]+))' );
35 +\defined( 'ACTIVITYPUB_CUSTOM_POST_CONTENT' ) || \define( 'ACTIVITYPUB_CUSTOM_POST_CONTENT', "<h2>[ap_title]</h2>\n\n[ap_content]\n\n[ap_hashtags]\n\n[ap_shortlink]" );
34 36 \defined( 'ACTIVITYPUB_AUTHORIZED_FETCH' ) || \define( 'ACTIVITYPUB_AUTHORIZED_FETCH', false );
35 37 \defined( 'ACTIVITYPUB_DISABLE_REWRITES' ) || \define( 'ACTIVITYPUB_DISABLE_REWRITES', false );
38 +\defined( 'ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS' ) || \define( 'ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS', false );
39 +\defined( 'ACTIVITYPUB_DISABLE_OUTGOING_INTERACTIONS' ) || \define( 'ACTIVITYPUB_DISABLE_OUTGOING_INTERACTIONS', false );
40 +\defined( 'ACTIVITYPUB_SHARED_INBOX_FEATURE' ) || \define( 'ACTIVITYPUB_SHARED_INBOX_FEATURE', false );
41 +\defined( 'ACTIVITYPUB_SEND_VARY_HEADER' ) || \define( 'ACTIVITYPUB_SEND_VARY_HEADER', false );
42 +\defined( 'ACTIVITYPUB_DEFAULT_OBJECT_TYPE' ) || \define( 'ACTIVITYPUB_DEFAULT_OBJECT_TYPE', 'note' );
36 43
37 44 \define( 'ACTIVITYPUB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
38 45 \define( 'ACTIVITYPUB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
39 46 \define( 'ACTIVITYPUB_PLUGIN_FILE', plugin_dir_path( __FILE__ ) . '/' . basename( __FILE__ ) );
@@ -42,14 +49,15 @@
42 49 /**
43 50 * Initialize REST routes.
44 51 */
45 52 function rest_init() {
46 - Rest\Users::init();
53 + Rest\Actors::init();
47 54 Rest\Outbox::init();
48 55 Rest\Inbox::init();
49 56 Rest\Followers::init();
50 57 Rest\Following::init();
51 58 Rest\Webfinger::init();
59 + Rest\Comment::init();
52 60 Rest\Server::init();
53 61 Rest\Collection::init();
54 62
55 63 // load NodeInfo endpoints only if blog is public
@@ -65,14 +73,15 @@
65 73 function plugin_init() {
66 74 \add_action( 'init', array( __NAMESPACE__ . '\Migration', 'init' ) );
67 75 \add_action( 'init', array( __NAMESPACE__ . '\Activitypub', 'init' ) );
68 76 \add_action( 'init', array( __NAMESPACE__ . '\Activity_Dispatcher', 'init' ) );
69 - \add_action( 'init', array( __NAMESPACE__ . '\Collection\Followers', 'init' ) );
77 + \add_action( 'init', array( __NAMESPACE__ . '\Handler', 'init' ) );
70 78 \add_action( 'init', array( __NAMESPACE__ . '\Admin', 'init' ) );
71 79 \add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) );
72 80 \add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) );
73 81 \add_action( 'init', array( __NAMESPACE__ . '\Health_Check', 'init' ) );
74 82 \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) );
83 + \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) );
75 84
76 85 if ( site_supports_blocks() ) {
77 86 \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) );
78 87 }
@@ -87,11 +96,23 @@
87 96 Integration\Webfinger::init();
88 97
89 98 require_once __DIR__ . '/integration/class-nodeinfo.php';
90 99 Integration\Nodeinfo::init();
100 +
101 + require_once __DIR__ . '/integration/class-enable-mastodon-apps.php';
102 + Integration\Enable_Mastodon_Apps::init();
103 +
104 + require_once __DIR__ . '/integration/class-opengraph.php';
105 + Integration\Opengraph::init();
106 +
107 + if ( \defined( 'JETPACK__VERSION' ) && ! \defined( 'IS_WPCOM' ) ) {
108 + require_once __DIR__ . '/integration/class-jetpack.php';
109 + Integration\Jetpack::init();
110 + }
91 111 }
92 112 \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' );
93 113
114 +
94 115 /**
95 116 * Class Autoloader
96 117 */
97 118 \spl_autoload_register(
@@ -109,9 +130,9 @@
109 130
110 131 if ( false !== strpos( $class, '\\' ) ) {
111 132 $parts = explode( '\\', $class );
112 133 $class = array_pop( $parts );
113 - $sub_dir = implode( '/', $parts );
134 + $sub_dir = strtr( implode( '/', $parts ), '_', '-' );
114 135 $base_dir = $base_dir . $sub_dir . '/';
115 136 }
116 137
117 138 $filename = 'class-' . strtr( $class, '_', '-' );
@@ -170,9 +191,9 @@
170 191 * Only load code that needs BuddyPress to run once BP is loaded and initialized.
171 192 */
172 193 add_action(
173 194 'bp_include',
174 - function() {
195 + function () {
175 196 require_once __DIR__ . '/integration/class-buddypress.php';
176 197 Integration\Buddypress::init();
177 198 },
178 199 0
@@ -207,8 +228,12 @@
207 228 /**
208 229 * Plugin Version Number used for caching.
209 230 */
210 231 function get_plugin_version() {
232 + if ( \defined( 'ACTIVITYPUB_PLUGIN_VERSION' ) ) {
233 + return ACTIVITYPUB_PLUGIN_VERSION;
234 + }
235 +
211 236 $meta = get_plugin_meta( array( 'Version' => 'Version' ) );
212 237
213 238 return $meta['Version'];
214 239 }