PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.1
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 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 All 503 releases
jetpack / modules / videopress / class.videopress-cli.php

class.videopress-cli.php in Jetpack – WP Security, Backup, Speed, & Growth 16.3-a.1, at modules/videopress/class.videopress-cli.php

195 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }
195