/** * ============================================================ * SYMBOLIC CACHE PURGE CONSOLE โ€” FULL DASHBOARD WIDGET * ============================================================ */ add_action('wp_dashboard_setup', function () { wp_add_dashboard_widget( 'symbolic_thumbnail_dashboard_widget', '๐ŸŒˆ Thumbnail Overlay + Symbolic Purge', 'symbolic_render_thumbnail_dashboard_widget' ); }); /** * ------------------------------------------------------------ * WIDGET RENDERER * ------------------------------------------------------------ */ function symbolic_render_thumbnail_dashboard_widget() { // Run scan $scan = symbolic_scan_uploads(); echo "
"; echo "

๐ŸŒˆ Symbolic Thumbnail Overlay + Purge Console

"; // Action buttons echo "
"; echo "๐Ÿ” Run Scan "; echo "๐Ÿงช Dryโ€‘Run Purge "; echo "๐Ÿงน Live Purge"; echo "
"; // Entropy summary echo "

Entropy Summary

"; foreach ($scan['summary'] as $glyph => $count) { $class = symbolic_entropy_class($glyph); echo "

{$glyph} โ†’ {$count} flagged

"; } // Regrowth list echo "

๐ŸŒฟ Regrowth Candidates (" . count($scan['regrowth']) . ")

"; if (!empty($scan['regrowth'])) { echo ""; } else { echo "

None eligible yet.

"; } // Timestamp $stamp = symbolic_timestamp(); echo "

Last scan: {$stamp['local']} ({$stamp['relative']})

"; echo "
"; // Inline JS echo symbolic_ _js(); // Inline CSS echo symbolic_widget_css(); } /** * ------------------------------------------------------------ * SCANNER * ------------------------------------------------------------ */ function symbolic_scan_uploads() { $baseUploads = WP_CONTENT_DIR . '/uploads'; $startYear = 2016; $endYear = (int) date('Y'); $summary = ['๐ŸŒฑ'=>0,'๐Ÿ‚'=>0,'๐Ÿชฆ'=>0]; $regrowthList = []; for ($year = $startYear; $year <= $endYear; $year++) { for ($month = 1; $month <= 12; $month++) { $folder = sprintf('%s/%d/%02d', $baseUploads, $year, $month); if (!is_dir($folder)) continue; $files = glob($folder . '/*.{jpg,jpeg,png,avif,webp}', GLOB_BRACE); if (empty($files)) continue; foreach ($files as $path) { $mtime = filemtime($path); $entropy = symbolic_entropy_glyph($mtime); $eligible = symbolic_regrowth_flag($mtime); $summary[$entropy]++; if ($eligible === '๐ŸŒฟ regrowth') { $regrowthList[] = [ 'path' => "{$year}/{$month}/" . basename($path), 'entropy' => $entropy ]; } } } } return [ 'summary' => $summary, 'regrowth' => $regrowthList ]; } /** * ------------------------------------------------------------ * ENTROPY GLYPH LOGIC * ------------------------------------------------------------ */ function symbolic_entropy_glyph($mtime) { $age = time() - $mtime; if ($age < 90 * 86400) return '๐ŸŒฑ'; // < 3 months if ($age < 365 * 86400) return '๐Ÿ‚'; // < 1 year return '๐Ÿชฆ'; // older } function symbolic_entropy_class($glyph) { return [ '๐ŸŒฑ' => 'fresh', '๐Ÿ‚' => 'stale', '๐Ÿชฆ' => 'retired' ][$glyph] ?? ''; } /** * ------------------------------------------------------------ * REGROWTH FLAG * ------------------------------------------------------------ */ function symbolic_regrowth_flag($mtime) { $age = time() - $mtime; return ($age > 365 * 86400) ? '๐ŸŒฟ regrowth' : 'no'; } /** * ------------------------------------------------------------ * TIMESTAMP HELPER * ------------------------------------------------------------ */ function symbolic_timestamp() { $local = date('Y-m-d H:i:s'); $relative = human_time_diff(time(), time()); return [ 'local' => $local, 'relative' => $relative . ' ago' ]; } /** * ------------------------------------------------------------ * INLINE JS * ------------------------------------------------------------ */ function symbolic_widget_js() { return " "; } /** * ------------------------------------------------------------ * INLINE CSS * ------------------------------------------------------------ */ function symbolic_widget_css() { return " "; } add_action('admin_post_symbolic_scan', 'symbolic_handle_scan'); add_action('admin_post_symbolic_dryrun', 'symbolic_handle_dryrun'); add_action('admin_post_symbolic_purge', 'symbolic_handle_purge'); $scan = symbolic_scan_uploads(); $regrowth = $scan['regrowth']; $deleted = 0; $log = "=== LIVE PURGE ===\n"; $log .= "Timestamp: " . date('Y-m-d H:i:s') . "\n"; foreach ($regrowth as $item) { $full = WP_CONTENT_DIR . '/uploads/' . $item['path']; if (file_exists($full)) { if (unlink($full)) { $deleted++; $log .= "[OK] Deleted: {$item['path']}\n"; } else { $log .= "[ERR] Failed: {$item['path']}\n"; } } else { $log .= "[MISS] Not found: {$item['path']}\n"; } } $log .= "\nTotal deleted: {$deleted}\n"; symbolic_write_ledger($log); wp_redirect(admin_url('index.php?symbolic=purge-complete')); exit; } /** * ------------------------------------------------------------ * ADMIN ACTION HANDLERS * ------------------------------------------------------------ */ add_action('admin_post_symbolic_scan', 'symbolic_handle_scan'); add_action('admin_post_symbolic_dryrun', 'symbolic_handle_dryrun'); add_action('admin_post_symbolic_purge', 'symbolic_handle_purge'); /** * SCAN HANDLER */ function symbolic_handle_scan() { symbolic_write_ledger("=== SCAN RUN ===\nTimestamp: " . date('Y-m-d H:i:s')); wp_redirect(admin_url('index.php?symbolic=scan-complete')); exit; } /** * DRYโ€‘RUN HANDLER */ function symbolic_handle_dryrun() { $scan = symbolic_scan_uploads(); $regrowth = $scan['regrowth']; $log = "=== DRY RUN ===\n"; $log .= "Timestamp: " . date('Y-m-d H:i:s') . "\n"; $log .= "Would delete: " . count($regrowth) . " files\n\n"; foreach ($regrowth as $item) { $log .= "[DRY] {$item['path']}\n"; } symbolic_write_ledger($log); wp_redirect(admin_url('index.php?symbolic=dryrun-complete')); exit; } /** * LIVE PURGE HANDLER */ function symbolic_handle_purge() { $scan = symbolic_scan_uploads(); $regrowth = $scan['regrowth']; $deleted = 0; $log = "=== LIVE PURGE ===\n"; $log .= "Timestamp: " . date('Y-m-d H:i:s') . "\n"; foreach ($regrowth as $item) { $full = WP_CONTENT_DIR . '/uploads/' . $item['path']; if (file_exists($full)) { if (unlink($full)) { $deleted++; $log .= "[OK] Deleted: {$item['path']}\n"; } else { $log .= "[ERR] Failed: {$item['path']}\n"; } } else { $log .= "[MISS] Not found: {$item['path']}\n"; } } $log .= "\nTotal deleted: {$deleted}\n"; symbolic_write_ledger($log); wp_redirect(admin_url('index.php?symbolic=purge-complete')); exit; } /** * LEDGER WRITER */ function symbolic_write_ledger($text) { $ledger = WP_CONTENT_DIR . '/uploads/symbolic-ledger.log'; file_put_contents($ledger, $text . "\n\n", FILE_APPEND); } function symbolic_handle_purge() { $scan = symbolic_scan_uploads(); $regrowth = $scan['regrowth']; $deleted = 0; $log = "=== LIVE PURGE ===\n"; $log .= "Timestamp: " . date('Y-m-d H:i:s') . "\n"; foreach ($regrowth as $item) { $full = WP_CONTENT_DIR . '/uploads/' . $item['path']; if (file_exists($full)) { if (unlink($full)) { $deleted++; $log .= "[OK] Deleted: {$item['path']}\n"; } else { $log .= "[ERR] Failed: {$item['path']}\n"; } } else { $log .= "[MISS] Not found: {$item['path']}\n"; } } $log .= "\nTotal deleted: {$deleted}\n"; symbolic_write_ledger($log); wp_redirect(admin_url('index.php?symbolic=purge-complete')); exit; } function symbolic_write_ledger($text) { $ledger = WP_CONTENT_DIR . '/uploads/symbolic-ledger.log'; file_put_contents($ledger, $text . "\n\n", FILE_APPEND); } https://goodoldjuyjimmy.com/ 2026-03-23T05:51:29+00:00 https://goodoldjuyjimmy.com/slaughters-online-barbershop/ 2026-03-19T19:23:23+00:00 https://goodoldjuyjimmy.com/cart-2/ 2025-12-10T17:21:52+00:00 https://goodoldjuyjimmy.com/divine-reconciliation/ 2026-03-22T23:33:25+00:00 https://goodoldjuyjimmy.com/contact-page/ 2024-12-11T02:28:52+00:00 https://goodoldjuyjimmy.com/post/ 2024-11-22T23:57:43+00:00 https://goodoldjuyjimmy.com/logo-7/ 2024-11-28T18:44:23+00:00 https://goodoldjuyjimmy.com/logo-6/ 2016-03-31T14:32:39+00:00 https://goodoldjuyjimmy.com/logo-5/ 2016-03-31T14:32:39+00:00 https://goodoldjuyjimmy.com/logo-4/ 2016-03-31T14:32:39+00:00 https://goodoldjuyjimmy.com/logo-3/ 2025-01-17T00:15:23+00:00 https://goodoldjuyjimmy.com/logo-2/ 2016-03-31T14:32:39+00:00 https://goodoldjuyjimmy.com/shark-upright-vacuum/ 2026-03-20T03:08:59+00:00 https://goodoldjuyjimmy.com/home-storage/ 2026-03-17T01:25:30+00:00 https://goodoldjuyjimmy.com/vevor-scooter-rear-basket/ 2026-03-16T18:39:40+00:00 https://goodoldjuyjimmy.com/air-fryers/ 2026-03-16T23:56:01+00:00 https://goodoldjuyjimmy.com/fit-for-toyota-prius-seat-covers-2001-2026/ 2026-03-04T07:16:06+00:00 https://goodoldjuyjimmy.com/8l-diesel-heater-8kw/ 2026-03-04T17:36:22+00:00 https://goodoldjuyjimmy.com/atv-for-sale/ 2026-03-16T13:27:58+00:00 https://goodoldjuyjimmy.com/ebossy-womens-faux-fur-crop-jacket/ 2026-02-28T04:51:05+00:00 https://goodoldjuyjimmy.com/pmini-jewelry-travel-case/ 2026-02-28T04:48:08+00:00 https://goodoldjuyjimmy.com/cosori-9-in-1-turboblaze-air-fryer-6-qt/ 2026-02-28T04:55:43+00:00 https://goodoldjuyjimmy.com/carote-14pcs-pots-and-pans-set-non-stick/ 2026-03-01T05:10:51+00:00 https://goodoldjuyjimmy.com/creation-book-one-coterie-the-never-ending-circle-2/ 2026-02-04T02:38:45+00:00 https://goodoldjuyjimmy.com/parousia-book-three-the-thought-people/ 2026-02-04T02:34:36+00:00 https://goodoldjuyjimmy.com/revelation-book-two-heaven-and-hell-the-bibles/ 2026-02-04T02:40:51+00:00 https://goodoldjuyjimmy.com/explore-the-divine-reconciliation-trilogy/ 2026-02-04T02:43:18+00:00