| @@ -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: 2.0.1 | |
| 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' ); |
| @@ -29,12 +31,16 @@ | ||
| 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 | 34 | \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]" ); | |
| 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 ); | |
| 36 | 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' ); | |
| 37 | 43 | |
| 38 | 44 | \define( 'ACTIVITYPUB_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); |
| 39 | 45 | \define( 'ACTIVITYPUB_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); |
| 40 | 46 | \define( 'ACTIVITYPUB_PLUGIN_FILE', plugin_dir_path( __FILE__ ) . '/' . basename( __FILE__ ) ); |
| @@ -43,14 +49,15 @@ | ||
| 43 | 49 | /** |
| 44 | 50 | * Initialize REST routes. |
| 45 | 51 | */ |
| 46 | 52 | function rest_init() { |
| 47 | - Rest\Users::init(); | |
| 53 | + Rest\Actors::init(); | |
| 48 | 54 | Rest\Outbox::init(); |
| 49 | 55 | Rest\Inbox::init(); |
| 50 | 56 | Rest\Followers::init(); |
| 51 | 57 | Rest\Following::init(); |
| 52 | 58 | Rest\Webfinger::init(); |
| 59 | + Rest\Comment::init(); | |
| 53 | 60 | Rest\Server::init(); |
| 54 | 61 | Rest\Collection::init(); |
| 55 | 62 | |
| 56 | 63 | // load NodeInfo endpoints only if blog is public |
| @@ -72,8 +79,9 @@ | ||
| 72 | 79 | \add_action( 'init', array( __NAMESPACE__ . '\Hashtag', 'init' ) ); |
| 73 | 80 | \add_action( 'init', array( __NAMESPACE__ . '\Mention', 'init' ) ); |
| 74 | 81 | \add_action( 'init', array( __NAMESPACE__ . '\Health_Check', 'init' ) ); |
| 75 | 82 | \add_action( 'init', array( __NAMESPACE__ . '\Scheduler', 'init' ) ); |
| 83 | + \add_action( 'init', array( __NAMESPACE__ . '\Comment', 'init' ) ); | |
| 76 | 84 | |
| 77 | 85 | if ( site_supports_blocks() ) { |
| 78 | 86 | \add_action( 'init', array( __NAMESPACE__ . '\Blocks', 'init' ) ); |
| 79 | 87 | } |
| @@ -88,11 +96,23 @@ | ||
| 88 | 96 | Integration\Webfinger::init(); |
| 89 | 97 | |
| 90 | 98 | require_once __DIR__ . '/integration/class-nodeinfo.php'; |
| 91 | 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 | + } | |
| 92 | 111 | } |
| 93 | 112 | \add_action( 'plugins_loaded', __NAMESPACE__ . '\plugin_init' ); |
| 94 | 113 | |
| 114 | + | |
| 95 | 115 | /** |
| 96 | 116 | * Class Autoloader |
| 97 | 117 | */ |
| 98 | 118 | \spl_autoload_register( |
| @@ -110,9 +130,9 @@ | ||
| 110 | 130 | |
| 111 | 131 | if ( false !== strpos( $class, '\\' ) ) { |
| 112 | 132 | $parts = explode( '\\', $class ); |
| 113 | 133 | $class = array_pop( $parts ); |
| 114 | - $sub_dir = implode( '/', $parts ); | |
| 134 | + $sub_dir = strtr( implode( '/', $parts ), '_', '-' ); | |
| 115 | 135 | $base_dir = $base_dir . $sub_dir . '/'; |
| 116 | 136 | } |
| 117 | 137 | |
| 118 | 138 | $filename = 'class-' . strtr( $class, '_', '-' ); |
| @@ -208,8 +228,12 @@ | ||
| 208 | 228 | /** |
| 209 | 229 | * Plugin Version Number used for caching. |
| 210 | 230 | */ |
| 211 | 231 | function get_plugin_version() { |
| 232 | + if ( \defined( 'ACTIVITYPUB_PLUGIN_VERSION' ) ) { | |
| 233 | + return ACTIVITYPUB_PLUGIN_VERSION; | |
| 234 | + } | |
| 235 | + | |
| 212 | 236 | $meta = get_plugin_meta( array( 'Version' => 'Version' ) ); |
| 213 | 237 | |
| 214 | 238 | return $meta['Version']; |
| 215 | 239 | } |