Changeset 3802175
- Timestamp:
- 11/14/2026 03:53:53 PM (10 hours ago)
- Location:
- mediaspy
- Files:
-
- 310 added
- 16 edited
-
tags/1.4.1 (added)
-
tags/1.4.1/app (added)
-
tags/1.4.1/app/Admin (added)
-
tags/1.4.1/app/Admin/Extras.php (added)
-
tags/1.4.1/app/Admin/Navigation.php (added)
-
tags/1.4.1/app/App.php (added)
-
tags/1.4.1/app/Autopilot (added)
-
tags/1.4.1/app/Autopilot/ExifGpsStripper.php (added)
-
tags/1.4.1/app/Autopilot/FilenameCleaner.php (added)
-
tags/1.4.1/app/Autopilot/Settings.php (added)
-
tags/1.4.1/app/Autopilot/SvgSanitizer.php (added)
-
tags/1.4.1/app/Autopilot/UploadResizer.php (added)
-
tags/1.4.1/app/Detection (added)
-
tags/1.4.1/app/Detection/AcfFieldMap.php (added)
-
tags/1.4.1/app/Detection/AttachmentRepo.php (added)
-
tags/1.4.1/app/Detection/Cli.php (added)
-
tags/1.4.1/app/Detection/ContentVersion.php (added)
-
tags/1.4.1/app/Detection/DbRefLookup.php (added)
-
tags/1.4.1/app/Detection/Deadline.php (added)
-
tags/1.4.1/app/Detection/Matcher.php (added)
-
tags/1.4.1/app/Detection/PathNormalizer.php (added)
-
tags/1.4.1/app/Detection/ReasonLocations.php (added)
-
tags/1.4.1/app/Detection/RefLookup.php (added)
-
tags/1.4.1/app/Detection/RefSink.php (added)
-
tags/1.4.1/app/Detection/ReferenceExtractor.php (added)
-
tags/1.4.1/app/Detection/ScanRun.php (added)
-
tags/1.4.1/app/Detection/Schema.php (added)
-
tags/1.4.1/app/Detection/Sources (added)
-
tags/1.4.1/app/Detection/Sources/CommentsSource.php (added)
-
tags/1.4.1/app/Detection/Sources/KeysetSource.php (added)
-
tags/1.4.1/app/Detection/Sources/MetaSliderSource.php (added)
-
tags/1.4.1/app/Detection/Sources/OptionsSource.php (added)
-
tags/1.4.1/app/Detection/Sources/PostmetaSource.php (added)
-
tags/1.4.1/app/Detection/Sources/PostsSource.php (added)
-
tags/1.4.1/app/Detection/Sources/SnippetsSource.php (added)
-
tags/1.4.1/app/Detection/Sources/SourceInterface.php (added)
-
tags/1.4.1/app/Detection/Sources/StructuredSource.php (added)
-
tags/1.4.1/app/Detection/Sources/TermmetaSource.php (added)
-
tags/1.4.1/app/Detection/Sources/ThemeFilesSource.php (added)
-
tags/1.4.1/app/Detection/Sources/ThirdPartyTablesSource.php (added)
-
tags/1.4.1/app/Detection/Sources/UsermetaSource.php (added)
-
tags/1.4.1/app/Detection/ValueDecoder.php (added)
-
tags/1.4.1/app/Health (added)
-
tags/1.4.1/app/Health/Activity.php (added)
-
tags/1.4.1/app/Health/ActivityFeed.php (added)
-
tags/1.4.1/app/Health/DashboardWidget.php (added)
-
tags/1.4.1/app/Health/HealthData.php (added)
-
tags/1.4.1/app/Health/HealthHistory.php (added)
-
tags/1.4.1/app/Health/HealthScore.php (added)
-
tags/1.4.1/app/Health/Overview.php (added)
-
tags/1.4.1/app/Hooks (added)
-
tags/1.4.1/app/Hooks/Handlers (added)
-
tags/1.4.1/app/Hooks/Handlers/AdminMenuHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/AltHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/AutopilotHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/DeactivationFeedbackHandler.php (added)
-
tags/1.4.1/app/Hooks/Handlers/DuplicatesHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/LazyLoadHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/MonitorHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/OptimizerHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/OrphansHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/OverviewHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/RenameHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/ReplaceHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/RestApiHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/SizesHandlers.php (added)
-
tags/1.4.1/app/Hooks/Handlers/UploadHandlers.php (added)
-
tags/1.4.1/app/Integrations (added)
-
tags/1.4.1/app/Integrations/FluentSnippets.php (added)
-
tags/1.4.1/app/Library (added)
-
tags/1.4.1/app/Library/AltCli.php (added)
-
tags/1.4.1/app/Library/AltFiller.php (added)
-
tags/1.4.1/app/Library/AltFromName.php (added)
-
tags/1.4.1/app/Library/CacheCleaner.php (added)
-
tags/1.4.1/app/Library/Duplicates (added)
-
tags/1.4.1/app/Library/Duplicates/DuplicateFinder.php (added)
-
tags/1.4.1/app/Library/Duplicates/DuplicatesCli.php (added)
-
tags/1.4.1/app/Library/Duplicates/Fingerprint.php (added)
-
tags/1.4.1/app/Library/Duplicates/FingerprintIndex.php (added)
-
tags/1.4.1/app/Library/Duplicates/Merger.php (added)
-
tags/1.4.1/app/Library/Jobs (added)
-
tags/1.4.1/app/Library/Jobs/RunState.php (added)
-
tags/1.4.1/app/Library/Orphans (added)
-
tags/1.4.1/app/Library/Orphans/OrphanActions.php (added)
-
tags/1.4.1/app/Library/Orphans/OrphanScanner.php (added)
-
tags/1.4.1/app/Library/Orphans/OrphansCli.php (added)
-
tags/1.4.1/app/Library/Orphans/OwnedNames.php (added)
-
tags/1.4.1/app/Library/ReferenceRewriter.php (added)
-
tags/1.4.1/app/Library/RenamePlan.php (added)
-
tags/1.4.1/app/Library/Renamer.php (added)
-
tags/1.4.1/app/Library/Replacer.php (added)
-
tags/1.4.1/app/Library/RewriteLog.php (added)
-
tags/1.4.1/app/Library/RewriteTargets.php (added)
-
tags/1.4.1/app/Library/ScanFollower.php (added)
-
tags/1.4.1/app/Library/Sizes (added)
-
tags/1.4.1/app/Library/Sizes/IndexLookup.php (added)
-
tags/1.4.1/app/Library/Sizes/LeftoverFinder.php (added)
-
tags/1.4.1/app/Library/Sizes/Regenerator.php (added)
-
tags/1.4.1/app/Library/Sizes/SizeStats.php (added)
-
tags/1.4.1/app/Library/Sizes/SizeSwitch.php (added)
-
tags/1.4.1/app/Library/Sizes/SizesCli.php (added)
-
tags/1.4.1/app/Library/ValueRewriter.php (added)
-
tags/1.4.1/app/Monitoring (added)
-
tags/1.4.1/app/Monitoring/BrokenAlert.php (added)
-
tags/1.4.1/app/Monitoring/Scheduler.php (added)
-
tags/1.4.1/app/Monitoring/StorageTrend.php (added)
-
tags/1.4.1/app/Optimizer (added)
-
tags/1.4.1/app/Optimizer/AssetCopies.php (added)
-
tags/1.4.1/app/Optimizer/AutoQuality.php (added)
-
tags/1.4.1/app/Optimizer/BackgroundRewriter.php (added)
-
tags/1.4.1/app/Optimizer/Backups.php (added)
-
tags/1.4.1/app/Optimizer/BulkOrder.php (added)
-
tags/1.4.1/app/Optimizer/CopyLocator.php (added)
-
tags/1.4.1/app/Optimizer/CopyNames.php (added)
-
tags/1.4.1/app/Optimizer/FrontendDelivery.php (added)
-
tags/1.4.1/app/Optimizer/ImagePipeline.php (added)
-
tags/1.4.1/app/Optimizer/JpegQuality.php (added)
-
tags/1.4.1/app/Optimizer/PictureRewriter.php (added)
-
tags/1.4.1/app/Optimizer/Regex.php (added)
-
tags/1.4.1/app/Optimizer/Rules.php (added)
-
tags/1.4.1/app/Optimizer/SizePolicy.php (added)
-
tags/1.4.1/app/Optimizer/StylesheetRewriter.php (added)
-
tags/1.4.1/app/Reports (added)
-
tags/1.4.1/app/Reports/ReportMailer.php (added)
-
tags/1.4.1/app/Reports/Settings.php (added)
-
tags/1.4.1/app/Reports/WeeklyReport.php (added)
-
tags/1.4.1/app/Services (added)
-
tags/1.4.1/app/Services/BrokenMediaFinder.php (added)
-
tags/1.4.1/app/Services/DirectoryOptimizer.php (added)
-
tags/1.4.1/app/Services/Exporter.php (added)
-
tags/1.4.1/app/Services/HashBackfill.php (added)
-
tags/1.4.1/app/Services/Importer.php (added)
-
tags/1.4.1/app/Services/LazyLoad.php (added)
-
tags/1.4.1/app/Services/MediaSync.php (added)
-
tags/1.4.1/app/Services/Optimizer.php (added)
-
tags/1.4.1/app/Services/Scanner.php (added)
-
tags/1.4.1/app/Services/UploadGuard.php (added)
-
tags/1.4.1/app/Services/UsageDetector.php (added)
-
tags/1.4.1/app/Services/UsageFinder.php (added)
-
tags/1.4.1/app/Support (added)
-
tags/1.4.1/app/Support/Media.php (added)
-
tags/1.4.1/app/Views (added)
-
tags/1.4.1/app/Views/email-weekly.php (added)
-
tags/1.4.1/app/Views/widget-health.php (added)
-
tags/1.4.1/assets (added)
-
tags/1.4.1/assets/feedback.js (added)
-
tags/1.4.1/assets/images (added)
-
tags/1.4.1/assets/images/icon-64.png (added)
-
tags/1.4.1/assets/images/icon.png (added)
-
tags/1.4.1/assets/images/logo.png (added)
-
tags/1.4.1/assets/images/menu-icon.png (added)
-
tags/1.4.1/assets/media-column.js (added)
-
tags/1.4.1/assets/rename.js (added)
-
tags/1.4.1/assets/replace.js (added)
-
tags/1.4.1/composer.json (added)
-
tags/1.4.1/composer.lock (added)
-
tags/1.4.1/languages (added)
-
tags/1.4.1/languages/index.php (added)
-
tags/1.4.1/mediaspy.php (added)
-
tags/1.4.1/package-lock.json (added)
-
tags/1.4.1/package.json (added)
-
tags/1.4.1/public (added)
-
tags/1.4.1/public/assets (added)
-
tags/1.4.1/public/assets/Inter-400-ext.woff2 (added)
-
tags/1.4.1/public/assets/Inter-400.woff2 (added)
-
tags/1.4.1/public/assets/Inter-500-ext.woff2 (added)
-
tags/1.4.1/public/assets/Inter-500.woff2 (added)
-
tags/1.4.1/public/assets/Inter-600-ext.woff2 (added)
-
tags/1.4.1/public/assets/Inter-600.woff2 (added)
-
tags/1.4.1/public/assets/JetBrainsMono-400.woff2 (added)
-
tags/1.4.1/public/assets/extras.css (added)
-
tags/1.4.1/public/assets/extras.js (added)
-
tags/1.4.1/public/assets/main.css (added)
-
tags/1.4.1/public/assets/main.js (added)
-
tags/1.4.1/readme.txt (added)
-
tags/1.4.1/resources (added)
-
tags/1.4.1/resources/css (added)
-
tags/1.4.1/resources/css/base.css (added)
-
tags/1.4.1/resources/css/components (added)
-
tags/1.4.1/resources/css/components/data.css (added)
-
tags/1.4.1/resources/css/components/forms.css (added)
-
tags/1.4.1/resources/css/components/layout.css (added)
-
tags/1.4.1/resources/css/components/overlays.css (added)
-
tags/1.4.1/resources/css/components/primitives.css (added)
-
tags/1.4.1/resources/css/components/shell.css (added)
-
tags/1.4.1/resources/css/extras-tokens.css (added)
-
tags/1.4.1/resources/css/extras.css (added)
-
tags/1.4.1/resources/css/fonts.css (added)
-
tags/1.4.1/resources/css/screens (added)
-
tags/1.4.1/resources/css/screens/cleanup.css (added)
-
tags/1.4.1/resources/css/screens/library.css (added)
-
tags/1.4.1/resources/css/screens/optimize.css (added)
-
tags/1.4.1/resources/css/screens/overview.css (added)
-
tags/1.4.1/resources/css/screens/settings.css (added)
-
tags/1.4.1/resources/css/tokens.css (added)
-
tags/1.4.1/resources/fonts (added)
-
tags/1.4.1/resources/fonts/Inter-400-ext.woff2 (added)
-
tags/1.4.1/resources/fonts/Inter-400.woff2 (added)
-
tags/1.4.1/resources/fonts/Inter-500-ext.woff2 (added)
-
tags/1.4.1/resources/fonts/Inter-500.woff2 (added)
-
tags/1.4.1/resources/fonts/Inter-600-ext.woff2 (added)
-
tags/1.4.1/resources/fonts/Inter-600.woff2 (added)
-
tags/1.4.1/resources/fonts/JetBrainsMono-400.woff2 (added)
-
tags/1.4.1/resources/fonts/OFL.txt (added)
-
tags/1.4.1/resources/js (added)
-
tags/1.4.1/resources/js/App.vue (added)
-
tags/1.4.1/resources/js/api.js (added)
-
tags/1.4.1/resources/js/extras.js (added)
-
tags/1.4.1/resources/js/i18n.js (added)
-
tags/1.4.1/resources/js/main.js (added)
-
tags/1.4.1/resources/js/router.js (added)
-
tags/1.4.1/resources/js/screens (added)
-
tags/1.4.1/resources/js/screens/alt (added)
-
tags/1.4.1/resources/js/screens/alt/AltTextScreen.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup (added)
-
tags/1.4.1/resources/js/screens/cleanup/BrokenScreen.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/BulkBar.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/FileDrawer.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/FileGrid.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/FileList.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/ImportZipModal.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/UnusedScreen.vue (added)
-
tags/1.4.1/resources/js/screens/cleanup/unusedModel.js (added)
-
tags/1.4.1/resources/js/screens/library (added)
-
tags/1.4.1/resources/js/screens/library/DuplicatesView.vue (added)
-
tags/1.4.1/resources/js/screens/library/ImageSizesView.vue (added)
-
tags/1.4.1/resources/js/screens/library/LeftoverSizesView.vue (added)
-
tags/1.4.1/resources/js/screens/library/OrphanFilesView.vue (added)
-
tags/1.4.1/resources/js/screens/library/jobs.js (added)
-
tags/1.4.1/resources/js/screens/optimize (added)
-
tags/1.4.1/resources/js/screens/optimize/BeforeAfterModal.vue (added)
-
tags/1.4.1/resources/js/screens/optimize/FolderFilesScreen.vue (added)
-
tags/1.4.1/resources/js/screens/optimize/OptimizeScreen.vue (added)
-
tags/1.4.1/resources/js/screens/overview (added)
-
tags/1.4.1/resources/js/screens/overview/ActivityScreen.vue (added)
-
tags/1.4.1/resources/js/screens/overview/HealthScore.vue (added)
-
tags/1.4.1/resources/js/screens/overview/OverviewScreen.vue (added)
-
tags/1.4.1/resources/js/screens/overview/StorageChart.vue (added)
-
tags/1.4.1/resources/js/screens/overview/TodoList.vue (added)
-
tags/1.4.1/resources/js/screens/registry.js (added)
-
tags/1.4.1/resources/js/screens/settings (added)
-
tags/1.4.1/resources/js/screens/settings/SettingRow.vue (added)
-
tags/1.4.1/resources/js/screens/settings/SettingsScreen.vue (added)
-
tags/1.4.1/resources/js/screens/settings/sections (added)
-
tags/1.4.1/resources/js/screens/settings/sections/AdvancedSection.vue (added)
-
tags/1.4.1/resources/js/screens/settings/sections/DeliverySection.vue (added)
-
tags/1.4.1/resources/js/screens/settings/sections/OptimizationSection.vue (added)
-
tags/1.4.1/resources/js/screens/settings/sections/ReportsSection.vue (added)
-
tags/1.4.1/resources/js/screens/settings/sections/UploadsSection.vue (added)
-
tags/1.4.1/resources/js/shell (added)
-
tags/1.4.1/resources/js/shell/AppShell.vue (added)
-
tags/1.4.1/resources/js/shell/NavList.vue (added)
-
tags/1.4.1/resources/js/store.js (added)
-
tags/1.4.1/resources/js/ui (added)
-
tags/1.4.1/resources/js/ui/MsAlert.vue (added)
-
tags/1.4.1/resources/js/ui/MsBadge.vue (added)
-
tags/1.4.1/resources/js/ui/MsButton.vue (added)
-
tags/1.4.1/resources/js/ui/MsCard.vue (added)
-
tags/1.4.1/resources/js/ui/MsCheckbox.vue (added)
-
tags/1.4.1/resources/js/ui/MsConfirm.vue (added)
-
tags/1.4.1/resources/js/ui/MsDrawer.vue (added)
-
tags/1.4.1/resources/js/ui/MsDropdownMenu.vue (added)
-
tags/1.4.1/resources/js/ui/MsEmpty.vue (added)
-
tags/1.4.1/resources/js/ui/MsField.vue (added)
-
tags/1.4.1/resources/js/ui/MsIcon.vue (added)
-
tags/1.4.1/resources/js/ui/MsIconButton.vue (added)
-
tags/1.4.1/resources/js/ui/MsInput.vue (added)
-
tags/1.4.1/resources/js/ui/MsModal.vue (added)
-
tags/1.4.1/resources/js/ui/MsNumberInput.vue (added)
-
tags/1.4.1/resources/js/ui/MsPageHeader.vue (added)
-
tags/1.4.1/resources/js/ui/MsPager.vue (added)
-
tags/1.4.1/resources/js/ui/MsProgress.vue (added)
-
tags/1.4.1/resources/js/ui/MsRadioGroup.vue (added)
-
tags/1.4.1/resources/js/ui/MsSaveBar.vue (added)
-
tags/1.4.1/resources/js/ui/MsSearch.vue (added)
-
tags/1.4.1/resources/js/ui/MsSegmented.vue (added)
-
tags/1.4.1/resources/js/ui/MsSelect.vue (added)
-
tags/1.4.1/resources/js/ui/MsSkeleton.vue (added)
-
tags/1.4.1/resources/js/ui/MsSpinner.vue (added)
-
tags/1.4.1/resources/js/ui/MsStack.vue (added)
-
tags/1.4.1/resources/js/ui/MsStat.vue (added)
-
tags/1.4.1/resources/js/ui/MsStatGrid.vue (added)
-
tags/1.4.1/resources/js/ui/MsStatusDot.vue (added)
-
tags/1.4.1/resources/js/ui/MsTable.vue (added)
-
tags/1.4.1/resources/js/ui/MsTabs.vue (added)
-
tags/1.4.1/resources/js/ui/MsToastHost.vue (added)
-
tags/1.4.1/resources/js/ui/MsToggle.vue (added)
-
tags/1.4.1/resources/js/ui/MsTooltip.vue (added)
-
tags/1.4.1/resources/js/ui/focus-trap.js (added)
-
tags/1.4.1/resources/js/ui/format.js (added)
-
tags/1.4.1/resources/js/ui/icons.js (added)
-
tags/1.4.1/resources/js/ui/index.js (added)
-
tags/1.4.1/resources/js/ui/navigate.js (added)
-
tags/1.4.1/resources/js/ui/toast.js (added)
-
tags/1.4.1/uninstall.php (added)
-
tags/1.4.1/vendor (added)
-
tags/1.4.1/vendor/autoload.php (added)
-
tags/1.4.1/vendor/composer (added)
-
tags/1.4.1/vendor/composer/ClassLoader.php (added)
-
tags/1.4.1/vendor/composer/InstalledVersions.php (added)
-
tags/1.4.1/vendor/composer/LICENSE (added)
-
tags/1.4.1/vendor/composer/autoload_classmap.php (added)
-
tags/1.4.1/vendor/composer/autoload_namespaces.php (added)
-
tags/1.4.1/vendor/composer/autoload_psr4.php (added)
-
tags/1.4.1/vendor/composer/autoload_real.php (added)
-
tags/1.4.1/vendor/composer/autoload_static.php (added)
-
tags/1.4.1/vendor/composer/installed.json (added)
-
tags/1.4.1/vendor/composer/installed.php (added)
-
tags/1.4.1/vendor/composer/platform_check.php (added)
-
tags/1.4.1/vite.config.js (added)
-
trunk/app/App.php (modified) (1 diff)
-
trunk/app/Detection/Schema.php (modified) (2 diffs)
-
trunk/app/Hooks/Handlers/AdminMenuHandlers.php (modified) (1 diff)
-
trunk/app/Hooks/Handlers/LazyLoadHandlers.php (modified) (1 diff)
-
trunk/app/Hooks/Handlers/OptimizerHandlers.php (modified) (1 diff)
-
trunk/app/Library/CacheCleaner.php (modified) (1 diff)
-
trunk/app/Library/Renamer.php (modified) (1 diff)
-
trunk/app/Library/Replacer.php (modified) (1 diff)
-
trunk/app/Library/RewriteTargets.php (modified) (1 diff)
-
trunk/app/Library/Sizes/IndexLookup.php (modified) (1 diff)
-
trunk/app/Services/Optimizer.php (modified) (1 diff)
-
trunk/mediaspy.php (modified) (1 diff)
-
trunk/package.json (modified) (1 diff)
-
trunk/readme.txt (modified) (4 diffs)
-
trunk/uninstall.php (modified) (1 diff)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mediaspy/trunk/app/App.php
r3801982 r3802175 31 31 32 32 public function boot( $plugin_file ) { 33 define( 'MEDIASPY_VERSION', '1.4. 0' );33 define( 'MEDIASPY_VERSION', '1.4.1' ); 34 34 define( 'MEDIASPY_FILE', $plugin_file ); 35 35 define( 'MEDIASPY_PATH', untrailingslashit( plugin_dir_path( $plugin_file ) ) ); -
mediaspy/trunk/app/Detection/Schema.php
r3801982 r3802175 67 67 68 68 // 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. 70 70 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. 72 72 $wpdb->query( "ALTER TABLE {$refs} DROP INDEX uniq_ref" ); 73 73 } … … 128 128 global $wpdb; 129 129 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. 131 131 $wpdb->query( "DROP TABLE IF EXISTS {$table}" ); 132 132 } -
mediaspy/trunk/app/Hooks/Handlers/AdminMenuHandlers.php
r3801982 r3802175 74 74 public function enqueue_assets( $hook ) { 75 75 // 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'] ) ) : ''; 77 78 78 79 // Match main slug and hash-based subpages -
mediaspy/trunk/app/Hooks/Handlers/LazyLoadHandlers.php
r3801982 r3802175 76 76 } 77 77 $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. 79 79 $image = wp_get_attachment_image_src( $thumb_id, $size ); 80 80 if ( ! $image || empty( $image[0] ) ) { -
mediaspy/trunk/app/Hooks/Handlers/OptimizerHandlers.php
r3801982 r3802175 230 230 $clean = Rules::remove( $content ); 231 231 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. 233 233 } 234 234 } -
mediaspy/trunk/app/Library/CacheCleaner.php
r3801982 r3802175 84 84 return null; 85 85 } 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. 87 87 $v = $wpdb->get_var( $wpdb->prepare( "SELECT `{$column}` FROM `{$table}` WHERE `{$pk}` = %d", $id ) ); 88 88 return null === $v ? null : (string) $v; -
mediaspy/trunk/app/Library/Renamer.php
r3801982 r3802175 72 72 $this->log->purge(); 73 73 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. 75 75 } 76 76 $batch = md5( uniqid( 'mspy-rename', true ) ); -
mediaspy/trunk/app/Library/Replacer.php
r3801982 r3802175 77 77 $this->log->purge(); 78 78 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. 80 80 } 81 81 $batch = md5( uniqid( 'mspy-replace', true ) ); -
mediaspy/trunk/app/Library/RewriteTargets.php
r3801982 r3802175 145 145 return null; 146 146 } 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. 148 148 $keys = (array) $this->wpdb->get_results( "SHOW KEYS FROM `{$table}` WHERE Key_name = 'PRIMARY'", ARRAY_A ); 149 149 if ( 1 !== count( $keys ) ) { -
mediaspy/trunk/app/Library/Sizes/IndexLookup.php
r3801982 r3802175 36 36 ]; 37 37 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. 39 39 return true; 40 40 } -
mediaspy/trunk/app/Services/Optimizer.php
r3801982 r3802175 598 598 599 599 // Optimized images. 600 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 600 601 $optimized = (int) $wpdb->get_var( 601 602 $wpdb->prepare( -
mediaspy/trunk/mediaspy.php
r3801982 r3802175 3 3 * Plugin Name: Mediaspy – Unused Media Cleaner, Image Optimizer, WebP & Safe SVG 4 4 * 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. 05 * Version: 1.4.1 6 6 * Author: Masum Ahmad 7 7 * Author URI: https://github.com/devmasum52 -
mediaspy/trunk/package.json
r3801982 r3802175 1 1 { 2 2 "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.", 5 5 "private": true, 6 6 "type": "module", -
mediaspy/trunk/readme.txt
r3802125 r3802175 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 1.4. 07 Stable tag: 1.4.1 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 189 189 190 190 == Changelog == 191 192 = 1.4.1 = 193 * Passes the WordPress Plugin Check with no errors or warnings. No changes to features or settings. 191 194 192 195 = 1.4.0 = … … 291 294 == Upgrade Notice == 292 295 296 = 1.4.1 = 297 Maintenance release: code quality checks only, no feature changes. 298 293 299 = 1.4.0 = 294 300 Big 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. … … 311 317 = 1.0.0 = 312 318 Initial release. 313 -
mediaspy/trunk/uninstall.php
r3801982 r3802175 89 89 // Phase 2: reference index tables and scan state. 90 90 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. 92 92 } 93 93 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 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => '4 661c46efd2c531226e9c8b9a7914b703079c9d1',6 'reference' => '459f083dea5e4084bb19382c13366007718a1340', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => '4 661c46efd2c531226e9c8b9a7914b703079c9d1',16 'reference' => '459f083dea5e4084bb19382c13366007718a1340', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../',
Note:
See TracChangeset
for help on using the changeset viewer.