PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 All 508 releases
← All changes | modules/videopress/class.videopress-cli.php +194 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,194 @@
1 +<?php // phpcs:ignore WordPress.Files.FileName
2 +/**
3 + * VideoPress CLI
4 + *
5 + * @package automattic/jetpack
6 + */
7 +
8 +if ( ! defined( 'ABSPATH' ) ) {
9 + exit( 0 );
10 +}
11 +
12 +if ( defined( 'WP_CLI' ) && WP_CLI ) {
13 +
14 + /**
15 + * VideoPress command line utilities.
16 + */
17 + class VideoPress_CLI extends WP_CLI_Command {
18 + /**
19 + * Import a VideoPress Video
20 + *
21 + * ## OPTIONS
22 + *
23 + * <guid>: Import the video with the specified guid
24 + *
25 + * ## EXAMPLES
26 + *
27 + * wp videopress import kUJmAcSf
28 + *
29 + * @param array $args CLI arguments.
30 + */
31 + public function import( $args ) {
32 + $guid = $args[0];
33 + $attachment_id = create_local_media_library_for_videopress_guid( $guid );
34 + if ( $attachment_id && ! is_wp_error( $attachment_id ) ) {
35 + /* translators: %d: attachment id */
36 + WP_CLI::success( sprintf( __( 'The video has been imported as Attachment ID %d', 'jetpack' ), $attachment_id ) );
37 + } else {
38 + WP_CLI::error( __( 'An error has been encountered.', 'jetpack' ) );
39 + }
40 + }
41 +
42 + /**
43 + * Manually runs the job to cleanup videos from the media library that failed during the upload process.
44 + *
45 + * ## EXAMPLES
46 + *
47 + * wp videopress cleanup_videos
48 + */
49 + public function cleanup_videos() {
50 + $num_cleaned = videopress_cleanup_media_library();
51 +
52 + /* translators: %d: number of videos cleaned */
53 + WP_CLI::success( sprintf( _n( 'Cleaned up %d video.', 'Cleaned up a total of %d videos.', $num_cleaned, 'jetpack' ), $num_cleaned ) );
54 + }
55 +
56 + /**
57 + * List out all of the crons that can be run.
58 + *
59 + * ## EXAMPLES
60 + *
61 + * wp videopress list_crons
62 + */
63 + public function list_crons() {
64 +
65 + $scheduler = VideoPress_Scheduler::init();
66 + $crons = $scheduler->get_crons();
67 + $crons_count = is_countable( $crons ) ? count( $crons ) : 0;
68 +
69 + $schedules = wp_get_schedules();
70 +
71 + if ( $crons_count === 0 ) {
72 + WP_CLI::success( __( 'Found no available cron jobs.', 'jetpack' ) );
73 +
74 + } else {
75 + /* translators: %d is the number of crons */
76 + WP_CLI::success( sprintf( _n( 'Found %d available cron job.', 'Found %d available cron jobs.', $crons_count, 'jetpack' ), $crons_count ) );
77 + }
78 +
79 + foreach ( $crons as $cron_name => $cron ) {
80 + $interval = $schedules[ $cron['interval'] ]['display'] ?? $cron['interval'];
81 + $runs_next = $scheduler->check_cron( $cron_name );
82 + $status = $runs_next ? sprintf( 'Scheduled - Runs Next at %s GMT', gmdate( 'Y-m-d H:i:s', $runs_next ) ) : 'Not Scheduled';
83 +
84 + WP_CLI::log( 'Name: ' . $cron_name );
85 + WP_CLI::log( 'Method: ' . $cron['method'] );
86 + WP_CLI::log( 'Interval: ' . $interval );
87 + WP_CLI::log( 'Status: ' . $status );
88 + }
89 + }
90 +
91 + /**
92 + * Checks for the current status of a cron job.
93 + *
94 + * ## OPTIONS
95 + *
96 + * <cron_name>: The name of the cron job to check
97 + *
98 + * ## EXAMPLES
99 + *
100 + * wp videopress cron_status cleanup
101 + *
102 + * @param array $args CLI args.
103 + */
104 + public function cron_status( $args ) {
105 +
106 + if ( ! isset( $args[0] ) ) {
107 + return WP_CLI::error( __( 'You need to provide the name of the cronjob to schedule.', 'jetpack' ) );
108 + }
109 +
110 + $scheduler = VideoPress_Scheduler::init();
111 +
112 + if ( ! $scheduler->is_cron_valid( $args[0] ) ) {
113 + /* translators: name of a cron job */
114 + WP_CLI::error( sprintf( __( 'There is no cron named %s.', 'jetpack' ), $args[0] ) );
115 + }
116 +
117 + $time = $scheduler->check_cron( $args[0] );
118 +
119 + if ( ! $time ) {
120 + WP_CLI::success( __( 'The cron is not scheduled to run.', 'jetpack' ) );
121 +
122 + } else {
123 + /* translators: date/time */
124 + WP_CLI::success( sprintf( __( 'Cron will run at: %s GMT', 'jetpack' ), gmdate( 'Y-m-d H:i:s', $time ) ) );
125 + }
126 + }
127 +
128 + /**
129 + * Actives the given cron job
130 + *
131 + * ## OPTIONS
132 + *
133 + * <cron_name>: The name of the cron job to check
134 + *
135 + * ## EXAMPLES
136 + *
137 + * wp videopress activate_cron cleanup
138 + *
139 + * @param array $args CLI args.
140 + */
141 + public function activate_cron( $args ) {
142 +
143 + if ( ! isset( $args[0] ) ) {
144 + WP_CLI::error( __( 'You need to provide the name of the cronjob to schedule.', 'jetpack' ) );
145 + }
146 +
147 + $scheduler = VideoPress_Scheduler::init();
148 +
149 + if ( ! $scheduler->is_cron_valid( $args[0] ) ) {
150 + /* translators: name of a cron job */
151 + WP_CLI::error( sprintf( __( 'There is no cron named %s.', 'jetpack' ), $args[0] ) );
152 + }
153 +
154 + $scheduler->activate_cron( $args[0] );
155 +
156 + /* translators: name of a cron job */
157 + WP_CLI::success( sprintf( __( 'The cron named `%s` was scheduled.', 'jetpack' ), $args[0] ) );
158 + }
159 +
160 + /**
161 + * Actives the given cron job
162 + *
163 + * ## OPTIONS
164 + *
165 + * <cron_name>: The name of the cron job to check
166 + *
167 + * ## EXAMPLES
168 + *
169 + * wp videopress deactivate_cron cleanup
170 + *
171 + * @param array $args CLI args.
172 + */
173 + public function deactivate_cron( $args ) {
174 +
175 + if ( ! isset( $args[0] ) ) {
176 + WP_CLI::error( __( 'You need to provide the name of the cronjob to schedule.', 'jetpack' ) );
177 + }
178 +
179 + $scheduler = VideoPress_Scheduler::init();
180 +
181 + if ( ! $scheduler->is_cron_valid( $args[0] ) ) {
182 + /* translators: name of a cron job */
183 + WP_CLI::error( sprintf( __( 'There is no cron named %s.', 'jetpack' ), $args[0] ) );
184 + }
185 +
186 + $scheduler->deactivate_cron( $args[0] );
187 +
188 + /* translators: name of a cron job */
189 + WP_CLI::success( sprintf( __( 'The cron named `%s` was removed from the schedule.', 'jetpack' ), $args[0] ) );
190 + }
191 + }
192 +
193 + WP_CLI::add_command( 'videopress', 'VideoPress_CLI' );
194 +}