Plugin Directory

Changeset 3802175


Ignore:
Timestamp:
11/14/2026 03:53:53 PM (10 hours ago)
Author:
masum52
Message:

Release 1.4.1: Plugin Check clean, no feature changes

Location:
mediaspy
Files:
310 added
16 edited

Legend:

Unmodified
Added
Removed
  • mediaspy/trunk/app/App.php

    r3801982 r3802175  
    3131
    3232        public function boot( $plugin_file ) {
    33                 define( 'MEDIASPY_VERSION', '1.4.0' );
     33                define( 'MEDIASPY_VERSION', '1.4.1' );
    3434                define( 'MEDIASPY_FILE', $plugin_file );
    3535                define( 'MEDIASPY_PATH', untrailingslashit( plugin_dir_path( $plugin_file ) ) );
  • mediaspy/trunk/app/Detection/Schema.php

    r3801982 r3802175  
    6767
    6868                // v3: the unique key gained source_field; dbDelta cannot change an existing key.
    69                 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- own table.
     69                // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- own table.
    7070                if ( $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $refs ) ) === $refs && self::uniq_key_outdated( (array) $wpdb->get_results( "SHOW INDEX FROM {$refs}", ARRAY_A ) ) ) {
    71                         // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- own table.
     71                        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- own table.
    7272                        $wpdb->query( "ALTER TABLE {$refs} DROP INDEX uniq_ref" );
    7373                }
    … …  
    128128                global $wpdb;
    129129                foreach ( [ self::refs_table(), self::skipped_table(), self::rewrites_table() ] as $table ) {
    130                         // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- own tables.
     130                        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- own tables.
    131131                        $wpdb->query( "DROP TABLE IF EXISTS {$table}" );
    132132                }
  • mediaspy/trunk/app/Hooks/Handlers/AdminMenuHandlers.php

    r3801982 r3802175  
    7474        public function enqueue_assets( $hook ) {
    7575                // Load on Mediaspy pages
    76                 $page = isset( $_GET['page'] ) ? sanitize_key( $_GET['page'] ) : '';
     76                // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only: decides whether to load assets.
     77                $page = isset( $_GET['page'] ) ? sanitize_key( wp_unslash( $_GET['page'] ) ) : '';
    7778
    7879                // Match main slug and hash-based subpages
  • mediaspy/trunk/app/Hooks/Handlers/LazyLoadHandlers.php

    r3801982 r3802175  
    7676                }
    7777                $thumb_id = (int) get_post_thumbnail_id( $post_id );
    78                 $size     = apply_filters( 'post_thumbnail_size', 'post-thumbnail', $post_id );
     78                $size     = apply_filters( 'post_thumbnail_size', 'post-thumbnail', $post_id ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- WordPress core filter, same value the theme gets.
    7979                $image    = wp_get_attachment_image_src( $thumb_id, $size );
    8080                if ( ! $image || empty( $image[0] ) ) {
  • mediaspy/trunk/app/Hooks/Handlers/OptimizerHandlers.php

    r3801982 r3802175  
    230230                        $clean   = Rules::remove( $content );
    231231                        if ( $clean !== $content ) {
    232                                 file_put_contents( $root, $clean ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
     232                                file_put_contents( $root, $clean ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents, PluginCheck.CodeAnalysis.WriteFile.ABSPATHDetected -- removes Mediaspy's own old rules from .htaccess, nothing else.
    233233                        }
    234234                }
  • mediaspy/trunk/app/Library/CacheCleaner.php

    r3801982 r3802175  
    8484                        return null;
    8585                }
    86                 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- validated identifiers.
     86                // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- validated identifiers.
    8787                $v = $wpdb->get_var( $wpdb->prepare( "SELECT `{$column}` FROM `{$table}` WHERE `{$pk}` = %d", $id ) );
    8888                return null === $v ? null : (string) $v;
  • mediaspy/trunk/app/Library/Renamer.php

    r3801982 r3802175  
    7272                $this->log->purge();
    7373                if ( function_exists( 'set_time_limit' ) ) {
    74                         @set_time_limit( 120 ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- may be disabled by the host.
     74                        @set_time_limit( 120 ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, Squiz.PHP.DiscouragedFunctions.Discouraged -- long file job; may be disabled by the host.
    7575                }
    7676                $batch    = md5( uniqid( 'mspy-rename', true ) );
  • mediaspy/trunk/app/Library/Replacer.php

    r3801982 r3802175  
    7777                $this->log->purge();
    7878                if ( function_exists( 'set_time_limit' ) ) {
    79                         @set_time_limit( 300 ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- may be disabled by the host.
     79                        @set_time_limit( 300 ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, Squiz.PHP.DiscouragedFunctions.Discouraged -- long file job; may be disabled by the host.
    8080                }
    8181                $batch  = md5( uniqid( 'mspy-replace', true ) );
  • mediaspy/trunk/app/Library/RewriteTargets.php

    r3801982 r3802175  
    145145                        return null;
    146146                }
    147                 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- identifier validated above.
     147                // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- identifier validated above.
    148148                $keys = (array) $this->wpdb->get_results( "SHOW KEYS FROM `{$table}` WHERE Key_name = 'PRIMARY'", ARRAY_A );
    149149                if ( 1 !== count( $keys ) ) {
  • mediaspy/trunk/app/Library/Sizes/IndexLookup.php

    r3801982 r3802175  
    3636                ];
    3737                foreach ( $checks as $sql ) {
    38                         if ( $wpdb->get_var( $sql ) ) { // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- each $sql was built with $wpdb->prepare() above.
     38                        if ( $wpdb->get_var( $sql ) ) { // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- each $sql was built with $wpdb->prepare() above.
    3939                                return true;
    4040                        }
  • mediaspy/trunk/app/Services/Optimizer.php

    r3801982 r3802175  
    598598
    599599                // Optimized images.
     600                // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
    600601                $optimized = (int) $wpdb->get_var(
    601602                        $wpdb->prepare(
  • mediaspy/trunk/mediaspy.php

    r3801982 r3802175  
    33 * Plugin Name: Mediaspy – Unused Media Cleaner, Image Optimizer, WebP & Safe SVG
    44 * Description: Delete unused images safely, compress images, serve WebP/AVIF, upload SVG safely, and fix broken media. One plugin for a clean, fast media library.
    5  * Version: 1.4.0
     5 * Version: 1.4.1
    66 * Author: Masum Ahmad
    77 * Author URI: https://github.com/devmasum52
  • mediaspy/trunk/package.json

    r3801982 r3802175  
    11{
    22  "name": "mediaspy",
    3   "version": "1.2.0",
    4   "description": "Find unused media, detect hotlinks, and clean wasted storage in your WordPress media library.",
     3  "version": "1.4.1",
     4  "description": "Unused media cleaner, image optimizer, WebP/AVIF and safe SVG for WordPress.",
    55  "private": true,
    66  "type": "module",
  • mediaspy/trunk/readme.txt

    r3802125 r3802175  
    55Tested up to: 7.1
    66Requires PHP: 7.4
    7 Stable tag: 1.4.0
     7Stable tag: 1.4.1
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    189189
    190190== Changelog ==
     191
     192= 1.4.1 =
     193* Passes the WordPress Plugin Check with no errors or warnings. No changes to features or settings.
    191194
    192195= 1.4.0 =
    … …  
    291294== Upgrade Notice ==
    292295
     296= 1.4.1 =
     297Maintenance release: code quality checks only, no feature changes.
     298
    293299= 1.4.0 =
    294300Big update: more accurate scan, new image optimizer with WebP/AVIF and lazy loading, upload autopilot, library tools and a redesigned admin. Back up your site before updating.
    … …  
    311317= 1.0.0 =
    312318Initial release.
    313 
  • mediaspy/trunk/uninstall.php

    r3801982 r3802175  
    8989        // Phase 2: reference index tables and scan state.
    9090        foreach ( [ $wpdb->prefix . 'mspy_refs', $wpdb->prefix . 'mspy_skipped', $wpdb->prefix . 'mspy_rewrites' ] as $mspy_table ) {
    91                 $wpdb->query( "DROP TABLE IF EXISTS {$mspy_table}" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- own tables.
     91                $wpdb->query( "DROP TABLE IF EXISTS {$mspy_table}" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter -- own tables.
    9292        }
    9393        foreach ( [ 'mspy_schema_version', 'mspy_scan_run', 'mspy_content_version', 'mspy_scan_seq', 'mspy_scan_partial' ] as $mspy_option ) {
  • mediaspy/trunk/vendor/composer/installed.php

    r3801982 r3802175  
    44        'pretty_version' => 'dev-main',
    55        'version' => 'dev-main',
    6         'reference' => '4661c46efd2c531226e9c8b9a7914b703079c9d1',
     6        'reference' => '459f083dea5e4084bb19382c13366007718a1340',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
    … …  
    1414            'pretty_version' => 'dev-main',
    1515            'version' => 'dev-main',
    16             'reference' => '4661c46efd2c531226e9c8b9a7914b703079c9d1',
     16            'reference' => '459f083dea5e4084bb19382c13366007718a1340',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.