PluginProbe
ActivityPub / 5.1.0
ActivityPub v5.1.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 | includes/class-cli.php +105 -101 8.2.05.1.0 View file →
@@ -1,7 +1,7 @@
1 1 <?php
2 2 /**
3 - * WP-CLI commands registration.
3 + * WP-CLI file.
4 4 *
5 5 * @package Activitypub
6 6 */
7 7
@@ -6,122 +6,126 @@
6 6 */
7 7
8 8 namespace Activitypub;
9 9
10 +use WP_CLI;
11 +use WP_CLI_Command;
12 +
10 13 /**
11 - * ActivityPub CLI command registry.
14 + * WP-CLI commands.
12 15 *
13 - * Registers all ActivityPub CLI subcommands with WP-CLI.
14 - *
15 16 * @package Activitypub
16 17 */
17 -class Cli {
18 +class Cli extends WP_CLI_Command {
18 19
19 20 /**
20 - * Register all ActivityPub CLI commands.
21 + * Remove the entire blog from the Fediverse.
21 22 *
22 - * This method registers the main 'activitypub' command namespace and all its
23 - * subcommands for managing ActivityPub functionality via WP-CLI.
23 + * ## EXAMPLES
24 24 *
25 - * Available commands:
26 - * - wp activitypub post <delete|update> <id>
27 - * - wp activitypub comment <delete|update> <id>
28 - * - wp activitypub actor <delete|update> <id>
29 - * - wp activitypub outbox <undo|reschedule> <id>
30 - * - wp activitypub cache <clear|status> [--type=<type>]
31 - * - wp activitypub self-destruct [--status] [--yes]
32 - * - wp activitypub move <from> <to>
33 - * - wp activitypub follow <remote_user>
34 - * - wp activitypub stats <collect|compile|send>
35 - * - wp activitypub fetch <url>
25 + * $ wp activitypub self-destruct
26 + *
27 + * @param array|null $args The arguments.
28 + * @param array|null $assoc_args The associative arguments.
29 + *
30 + * @return void
36 31 */
37 - public static function register() {
38 - // Register parent command with version subcommand.
39 - \WP_CLI::add_command(
40 - 'activitypub',
41 - '\Activitypub\Cli\Command',
42 - array(
43 - 'shortdesc' => 'Manage ActivityPub plugin functionality and federation.',
44 - )
45 - );
32 + public function self_destruct( $args, $assoc_args ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
33 + WP_CLI::warning( 'Self-Destructing is not implemented yet.' );
34 + }
46 35
47 - \WP_CLI::add_command(
48 - 'activitypub post',
49 - '\Activitypub\Cli\Post_Command',
50 - array(
51 - 'shortdesc' => 'Manage ActivityPub posts (delete or update).',
52 - )
53 - );
36 + /**
37 + * Delete or Update a Post, Page, Custom Post Type or Attachment.
38 + *
39 + * ## OPTIONS
40 + *
41 + * <action>
42 + * : The action to perform. Either `delete` or `update`.
43 + * ---
44 + * options:
45 + * - delete
46 + * - update
47 + * ---
48 + *
49 + * <id>
50 + * : The id of the Post, Page, Custom Post Type or Attachment.
51 + *
52 + * ## EXAMPLES
53 + *
54 + * $ wp activitypub post delete 1
55 + *
56 + * @synopsis <action> <id>
57 + *
58 + * @param array $args The arguments.
59 + */
60 + public function post( $args ) {
61 + $post = get_post( $args[1] );
54 62
55 - \WP_CLI::add_command(
56 - 'activitypub comment',
57 - '\Activitypub\Cli\Comment_Command',
58 - array(
59 - 'shortdesc' => 'Manage ActivityPub comments (delete or update).',
60 - )
61 - );
63 + if ( ! $post ) {
64 + WP_CLI::error( 'Post not found.' );
65 + }
62 66
63 - \WP_CLI::add_command(
64 - 'activitypub actor',
65 - '\Activitypub\Cli\Actor_Command',
66 - array(
67 - 'shortdesc' => 'Manage ActivityPub actors (delete or update).',
68 - )
69 - );
67 + switch ( $args[0] ) {
68 + case 'delete':
69 + WP_CLI::confirm( 'Do you really want to delete the (Custom) Post with the ID: ' . $args[1] );
70 + Scheduler::schedule_post_activity( 'trash', 'publish', $args[1] );
71 + WP_CLI::success( '"Delete" activity is queued.' );
72 + break;
73 + case 'update':
74 + Scheduler::schedule_post_activity( 'publish', 'publish', $args[1] );
75 + WP_CLI::success( '"Update" activity is queued.' );
76 + break;
77 + default:
78 + WP_CLI::error( 'Unknown action.' );
79 + }
80 + }
70 81
71 - \WP_CLI::add_command(
72 - 'activitypub outbox',
73 - '\Activitypub\Cli\Outbox_Command',
74 - array(
75 - 'shortdesc' => 'Manage ActivityPub outbox items (undo or reschedule).',
76 - )
77 - );
82 + /**
83 + * Delete or Update a Comment.
84 + *
85 + * ## OPTIONS
86 + *
87 + * <action>
88 + * : The action to perform. Either `delete` or `update`.
89 + * ---
90 + * options:
91 + * - delete
92 + * - update
93 + * ---
94 + *
95 + * <id>
96 + * : The id of the Comment.
97 + *
98 + * ## EXAMPLES
99 + *
100 + * $ wp activitypub comment delete 1
101 + *
102 + * @synopsis <action> <id>
103 + *
104 + * @param array $args The arguments.
105 + */
106 + public function comment( $args ) {
107 + $comment = get_comment( $args[1] );
78 108
79 - \WP_CLI::add_command(
80 - 'activitypub self-destruct',
81 - '\Activitypub\Cli\Self_Destruct_Command',
82 - array(
83 - 'shortdesc' => 'Remove the entire blog from the Fediverse.',
84 - )
85 - );
109 + if ( ! $comment ) {
110 + WP_CLI::error( 'Comment not found.' );
111 + }
86 112
87 - \WP_CLI::add_command(
88 - 'activitypub move',
89 - '\Activitypub\Cli\Move_Command',
90 - array(
91 - 'shortdesc' => 'Move the blog to a new URL.',
92 - )
93 - );
113 + if ( was_comment_received( $comment ) ) {
114 + WP_CLI::error( 'This comment was received via ActivityPub and cannot be deleted or updated.' );
115 + }
94 116
95 - \WP_CLI::add_command(
96 - 'activitypub follow',
97 - '\Activitypub\Cli\Follow_Command',
98 - array(
99 - 'shortdesc' => 'Follow a remote ActivityPub user.',
100 - )
101 - );
102 -
103 - \WP_CLI::add_command(
104 - 'activitypub cache',
105 - '\Activitypub\Cli\Cache_Command',
106 - array(
107 - 'shortdesc' => 'Manage remote media cache (clear or show status).',
108 - )
109 - );
110 -
111 - \WP_CLI::add_command(
112 - 'activitypub fetch',
113 - '\Activitypub\Cli\Fetch_Command',
114 - array(
115 - 'shortdesc' => 'Fetch a remote URL with a signed ActivityPub request.',
116 - )
117 - );
118 -
119 - \WP_CLI::add_command(
120 - 'activitypub stats',
121 - '\Activitypub\Cli\Stats_Command',
122 - array(
123 - 'shortdesc' => 'Manage ActivityPub statistics (collect, compile or send).',
124 - )
125 - );
117 + switch ( $args[0] ) {
118 + case 'delete':
119 + WP_CLI::confirm( 'Do you really want to delete the Comment with the ID: ' . $args[1] );
120 + Scheduler::schedule_comment_activity( 'trash', 'approved', $args[1] );
121 + WP_CLI::success( '"Delete" activity is queued.' );
122 + break;
123 + case 'update':
124 + Scheduler::schedule_comment_activity( 'approved', 'approved', $args[1] );
125 + WP_CLI::success( '"Update" activity is queued.' );
126 + break;
127 + default:
128 + WP_CLI::error( 'Unknown action.' );
129 + }
126 130 }
127 131 }