| @@ -2,47 +2,51 @@ | ||
| 2 | 2 | /** |
| 3 | 3 | * Plugin Name: NodeInfo |
| 4 | 4 | * Plugin URI: https://github.com/pfefferle/wordpress-nodeinfo/ |
| 5 | 5 | * Description: NodeInfo is an effort to create a standardized way of exposing metadata about a server running one of the distributed social networks. |
| 6 | - * Version: 1.0.5 | |
| 6 | + * Version: 3.1.0 | |
| 7 | 7 | * Author: Matthias Pfefferle |
| 8 | 8 | * Author URI: https://notiz.blog/ |
| 9 | 9 | * License: MIT |
| 10 | 10 | * License URI: http://opensource.org/licenses/MIT |
| 11 | 11 | * Text Domain: nodeinfo |
| 12 | - * Domain Path: /languages | |
| 12 | + * | |
| 13 | + * @package Nodeinfo | |
| 13 | 14 | */ |
| 14 | 15 | |
| 15 | -/** | |
| 16 | - * Initialize plugin | |
| 17 | - */ | |
| 18 | -function nodeinfo_init() { | |
| 19 | - require_once dirname( __FILE__ ) . '/includes/class-nodeinfo-endpoint.php'; | |
| 16 | +defined( 'ABSPATH' ) || exit; | |
| 20 | 17 | |
| 21 | - // Configure the REST API route | |
| 22 | - add_action( 'rest_api_init', array( 'Nodeinfo_Endpoint', 'register_routes' ) ); | |
| 18 | +define( 'NODEINFO_PLUGIN_FILE', __FILE__ ); | |
| 19 | +define( 'NODEINFO_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); | |
| 23 | 20 | |
| 24 | - // Add Webmention and Host-Meta discovery | |
| 25 | - add_filter( 'webfinger_user_data', array( 'Nodeinfo_Endpoint', 'render_jrd' ), 10, 3 ); | |
| 26 | - add_filter( 'webfinger_post_data', array( 'Nodeinfo_Endpoint', 'render_jrd' ), 10, 3 ); | |
| 27 | - add_filter( 'host_meta', array( 'Nodeinfo_Endpoint', 'render_jrd' ) ); | |
| 28 | -} | |
| 29 | -add_action( 'plugins_loaded', 'nodeinfo_init' ); | |
| 21 | +// Require the autoloader. | |
| 22 | +require_once NODEINFO_PLUGIN_DIR . 'includes/class-autoloader.php'; | |
| 30 | 23 | |
| 24 | +// Register the autoloader. | |
| 25 | +Nodeinfo\Autoloader::register_path( 'Nodeinfo', NODEINFO_PLUGIN_DIR . 'includes' ); | |
| 26 | + | |
| 27 | +// Require global functions. | |
| 28 | +require_once NODEINFO_PLUGIN_DIR . 'includes/functions.php'; | |
| 29 | + | |
| 30 | +// Require deprecated classes for backwards compatibility. | |
| 31 | +require_once NODEINFO_PLUGIN_DIR . 'includes/class-nodeinfo-endpoint.php'; | |
| 32 | + | |
| 31 | 33 | /** |
| 32 | - * Add rewrite rules | |
| 34 | + * Plugin initialization function. | |
| 35 | + * | |
| 36 | + * @return Nodeinfo\Nodeinfo The plugin instance. | |
| 33 | 37 | */ |
| 34 | -function nodeinfo_add_rewrite_rules() { | |
| 35 | - add_rewrite_rule( '^.well-known/nodeinfo', 'index.php?rest_route=/nodeinfo/discovery', 'top' ); | |
| 36 | - add_rewrite_rule( '^.well-known/x-nodeinfo2', 'index.php?rest_route=/nodeinfo2/1.0', 'top' ); | |
| 38 | +function nodeinfo_plugin() { | |
| 39 | + return Nodeinfo\Nodeinfo::get_instance(); | |
| 37 | 40 | } |
| 38 | -add_action( 'init', 'nodeinfo_add_rewrite_rules', 1 ); | |
| 39 | 41 | |
| 40 | -/** | |
| 41 | - * Flush rewrite rules; | |
| 42 | - */ | |
| 43 | -function nodeinfo_flush_rewrite_rules() { | |
| 44 | - nodeinfo_add_rewrite_rules(); | |
| 45 | - flush_rewrite_rules(); | |
| 46 | -} | |
| 47 | -register_activation_hook( __FILE__, 'nodeinfo_flush_rewrite_rules' ); | |
| 48 | -register_deactivation_hook( __FILE__, 'flush_rewrite_rules' ); | |
| 42 | +// Initialize the plugin after all plugins are loaded. | |
| 43 | +add_action( | |
| 44 | + 'plugins_loaded', | |
| 45 | + function () { | |
| 46 | + nodeinfo_plugin()->init(); | |
| 47 | + } | |
| 48 | +); | |
| 49 | + | |
| 50 | +// Register activation and deactivation hooks. | |
| 51 | +register_activation_hook( __FILE__, array( Nodeinfo\Nodeinfo::class, 'activate' ) ); | |
| 52 | +register_deactivation_hook( __FILE__, array( Nodeinfo\Nodeinfo::class, 'deactivate' ) ); | |