Download wp-content/plugins/akismet/class.akismet-cli.php from AZILS/Word: direct link, hf CLI and curl.
- Browser
- Download file 4.77 kB
-
https://huggingface.co/spaces/AZILS/Word/resolve/main/wp-content/plugins/akismet/class.akismet-cli.php
- Command line
-
hf download hf://spaces/AZILS/Word/wp-content/plugins/akismet/class.akismet-cli.php
-
curl -L -o class.akismet-cli.php https://huggingface.co/spaces/AZILS/Word/resolve/main/wp-content/plugins/akismet/class.akismet-cli.php
4.77 kB
| WP_CLI::add_command( 'akismet', 'Akismet_CLI' ); | |
| /** | |
| * Filter spam comments. | |
| */ | |
| class Akismet_CLI extends WP_CLI_Command { | |
| /** | |
| * Checks one or more comments against the Akismet API. | |
| * | |
| * ## OPTIONS | |
| * <comment_id>... | |
| * : The ID(s) of the comment(s) to check. | |
| * | |
| * [--noaction] | |
| * : Don't change the status of the comment. Just report what Akismet thinks it is. | |
| * | |
| * ## EXAMPLES | |
| * | |
| * wp akismet check 12345 | |
| * | |
| * @alias comment-check | |
| */ | |
| public function check( $args, $assoc_args ) { | |
| foreach ( $args as $comment_id ) { | |
| if ( isset( $assoc_args['noaction'] ) ) { | |
| // Check the comment, but don't reclassify it. | |
| $api_response = Akismet::check_db_comment( $comment_id, 'wp-cli' ); | |
| } | |
| else { | |
| $api_response = Akismet::recheck_comment( $comment_id, 'wp-cli' ); | |
| } | |
| if ( 'true' === $api_response ) { | |
| WP_CLI::line( sprintf( __( "Comment #%d is spam.", 'akismet' ), $comment_id ) ); | |
| } | |
| else if ( 'false' === $api_response ) { | |
| WP_CLI::line( sprintf( __( "Comment #%d is not spam.", 'akismet' ), $comment_id ) ); | |
| } | |
| else { | |
| if ( false === $api_response ) { | |
| WP_CLI::error( __( "Failed to connect to Akismet.", 'akismet' ) ); | |
| } | |
| else if ( is_wp_error( $api_response ) ) { | |
| WP_CLI::warning( sprintf( __( "Comment #%d could not be checked.", 'akismet' ), $comment_id ) ); | |
| } | |
| } | |
| } | |
| } | |
| /** | |
| * Recheck all comments in the Pending queue. | |
| * | |
| * ## EXAMPLES | |
| * | |
| * wp akismet recheck_queue | |
| * | |
| * @alias recheck-queue | |
| */ | |
| public function recheck_queue() { | |
| $batch_size = 100; | |
| $start = 0; | |
| $total_counts = array(); | |
| do { | |
| $result_counts = Akismet_Admin::recheck_queue_portion( $start, $batch_size ); | |
| if ( $result_counts['processed'] > 0 ) { | |
| foreach ( $result_counts as $key => $count ) { | |
| if ( ! isset( $total_counts[ $key ] ) ) { | |
| $total_counts[ $key ] = $count; | |
| } | |
| else { | |
| $total_counts[ $key ] += $count; | |
| } | |
| } | |
| $start += $batch_size; | |
| $start -= $result_counts['spam']; // These comments will have been removed from the queue. | |
| } | |
| } while ( $result_counts['processed'] > 0 ); | |
| WP_CLI::line( sprintf( _n( "Processed %d comment.", "Processed %d comments.", $total_counts['processed'], 'akismet' ), number_format( $total_counts['processed'] ) ) ); | |
| WP_CLI::line( sprintf( _n( "%d comment moved to Spam.", "%d comments moved to Spam.", $total_counts['spam'], 'akismet' ), number_format( $total_counts['spam'] ) ) ); | |
| if ( $total_counts['error'] ) { | |
| WP_CLI::line( sprintf( _n( "%d comment could not be checked.", "%d comments could not be checked.", $total_counts['error'], 'akismet' ), number_format( $total_counts['error'] ) ) ); | |
| } | |
| } | |
| /** | |
| * Fetches stats from the Akismet API. | |
| * | |
| * ## OPTIONS | |
| * | |
| * [<interval>] | |
| * : The time period for which to retrieve stats. | |
| * --- | |
| * default: all | |
| * options: | |
| * - days | |
| * - months | |
| * - all | |
| * --- | |
| * | |
| * [--format=<format>] | |
| * : Allows overriding the output of the command when listing connections. | |
| * --- | |
| * default: table | |
| * options: | |
| * - table | |
| * - json | |
| * - csv | |
| * - yaml | |
| * - count | |
| * --- | |
| * | |
| * [--summary] | |
| * : When set, will display a summary of the stats. | |
| * | |
| * ## EXAMPLES | |
| * | |
| * wp akismet stats | |
| * wp akismet stats all | |
| * wp akismet stats days | |
| * wp akismet stats months | |
| * wp akismet stats all --summary | |
| */ | |
| public function stats( $args, $assoc_args ) { | |
| $api_key = Akismet::get_api_key(); | |
| if ( empty( $api_key ) ) { | |
| WP_CLI::error( __( 'API key must be set to fetch stats.', 'akismet' ) ); | |
| } | |
| switch ( $args[0] ) { | |
| case 'days': | |
| $interval = '60-days'; | |
| break; | |
| case 'months': | |
| $interval = '6-months'; | |
| break; | |
| default: | |
| $interval = 'all'; | |
| break; | |
| } | |
| $request_args = array( | |
| 'blog' => get_option( 'home' ), | |
| 'key' => $api_key, | |
| 'from' => $interval, | |
| ); | |
| $request_args = apply_filters( 'akismet_request_args', $request_args, 'get-stats' ); | |
| $response = Akismet::http_post( Akismet::build_query( $request_args ), 'get-stats' ); | |
| if ( empty( $response[1] ) ) { | |
| WP_CLI::error( __( 'Currently unable to fetch stats. Please try again.', 'akismet' ) ); | |
| } | |
| $response_body = json_decode( $response[1], true ); | |
| if ( is_null( $response_body ) ) { | |
| WP_CLI::error( __( 'Stats response could not be decoded.', 'akismet' ) ); | |
| } | |
| if ( isset( $assoc_args['summary'] ) ) { | |
| $keys = array( | |
| 'spam', | |
| 'ham', | |
| 'missed_spam', | |
| 'false_positives', | |
| 'accuracy', | |
| 'time_saved', | |
| ); | |
| WP_CLI\Utils\format_items( $assoc_args['format'], array( $response_body ), $keys ); | |
| } | |
| else { | |
| $stats = $response_body['breakdown']; | |
| WP_CLI\Utils\format_items( $assoc_args['format'], $stats, array_keys( end( $stats ) ) ); | |
| } | |
| } | |
| } |