| @@ -2,51 +2,47 @@ | ||
| 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: 3.1.0 | |
| 6 | + * Version: 1.0.4 | |
| 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 | - * | |
| 13 | - * @package Nodeinfo | |
| 12 | + * Domain Path: /languages | |
| 14 | 13 | */ |
| 15 | 14 | |
| 16 | -defined( 'ABSPATH' ) || exit; | |
| 15 | +/** | |
| 16 | + * Initialize plugin | |
| 17 | + */ | |
| 18 | +function nodeinfo_init() { | |
| 19 | + require_once dirname( __FILE__ ) . '/includes/class-nodeinfo-endpoint.php'; | |
| 17 | 20 | |
| 18 | -define( 'NODEINFO_PLUGIN_FILE', __FILE__ ); | |
| 19 | -define( 'NODEINFO_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); | |
| 21 | + // Configure the REST API route | |
| 22 | + add_action( 'rest_api_init', array( 'Nodeinfo_Endpoint', 'register_routes' ) ); | |
| 20 | 23 | |
| 21 | -// Require the autoloader. | |
| 22 | -require_once NODEINFO_PLUGIN_DIR . 'includes/class-autoloader.php'; | |
| 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' ); | |
| 23 | 30 | |
| 24 | -// Register the autoloader. | |
| 25 | -Nodeinfo\Autoloader::register_path( 'Nodeinfo', NODEINFO_PLUGIN_DIR . 'includes' ); | |
| 31 | +/** | |
| 32 | + * Add rewrite rules | |
| 33 | + */ | |
| 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' ); | |
| 37 | +} | |
| 38 | +add_action( 'init', 'nodeinfo_add_rewrite_rules', 1 ); | |
| 26 | 39 | |
| 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 | - | |
| 33 | 40 | /** |
| 34 | - * Plugin initialization function. | |
| 35 | - * | |
| 36 | - * @return Nodeinfo\Nodeinfo The plugin instance. | |
| 41 | + * Flush rewrite rules; | |
| 37 | 42 | */ |
| 38 | -function nodeinfo_plugin() { | |
| 39 | - return Nodeinfo\Nodeinfo::get_instance(); | |
| 43 | +function nodeinfo_flush_rewrite_rules() { | |
| 44 | + nodeinfo_add_rewrite_rules(); | |
| 45 | + flush_rewrite_rules(); | |
| 40 | 46 | } |
| 41 | - | |
| 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' ) ); | |
| 47 | +register_activation_hook( __FILE__, 'nodeinfo_flush_rewrite_rules' ); | |
| 48 | +register_deactivation_hook( __FILE__, 'flush_rewrite_rules' ); | |