From e5cbb0c21be30ccbc78c051b8c7c8c0ad409df2e Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 13:28:43 +0000 Subject: [PATCH] Pre-calculate search string and format dates for faster rendering Co-authored-by: MrAlokTech <107493955+MrAlokTech@users.noreply.github.com> --- .jules/bolt.md | 3 ++ screenshot.png | Bin 0 -> 101922 bytes script.js | 62 +++++++++++++++++++++--------- verify.py | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 149 insertions(+), 18 deletions(-) create mode 100644 .jules/bolt.md create mode 100644 screenshot.png create mode 100644 verify.py diff --git a/.jules/bolt.md b/.jules/bolt.md new file mode 100644 index 0000000..f351eef --- /dev/null +++ b/.jules/bolt.md @@ -0,0 +1,3 @@ +## 2024-05-24 - Pre-calculate search index and format dates +**Learning:** Pre-calculating derived properties (search string concatenations, boolean date thresholds, formatted date strings) directly into in-memory collection objects during initial data load drastically speeds up rendering cycles in vanilla JavaScript list components. Instantiating `new Date()` within a high-frequency `render()` loop is a noticeable performance bottleneck. +**Action:** When filtering or rendering lists containing dates or complex search fields, process them once upstream (before or right after storing locally), cache the derived strings/booleans on the object itself, and read those pre-computed values dynamically downstream in the filter and render functions. diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..818c05c5886d1506f744925b73bfdac5493f05c9 GIT binary patch literal 101922 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 literal 0 HcmV?d00001 diff --git a/script.js b/script.js index 22f399d..d234c3b 100644 --- a/script.js +++ b/script.js @@ -416,6 +416,37 @@ async function syncClassSwitcher() { renderSemesterTabs(); } +function prepareSearchIndex() { + const now = new Date(); + const SEVEN_DAYS = 7 * 24 * 60 * 60 * 1000; + + pdfDatabase.forEach(pdf => { + // Pre-calculate search string + const t = pdf.title ? pdf.title.toLowerCase() : ''; + const d = pdf.description ? pdf.description.toLowerCase() : ''; + const c = pdf.category ? pdf.category.toLowerCase() : ''; + const a = pdf.author ? pdf.author.toLowerCase() : ''; + pdf._searchStr = `${t} ${d} ${c} ${a}`; + + // Pre-calculate date info + let uploadDateObj; + if (pdf.uploadDate && typeof pdf.uploadDate.toDate === 'function') { + uploadDateObj = pdf.uploadDate.toDate(); + } else if (pdf.uploadDate) { + uploadDateObj = new Date(pdf.uploadDate); + } else { + uploadDateObj = new Date(); + } + + const timeDiff = now - uploadDateObj; + pdf._isNew = timeDiff < SEVEN_DAYS; + + pdf._formattedDate = uploadDateObj.toLocaleDateString('en-US', { + year: 'numeric', month: 'short', day: 'numeric' + }); + }); +} + async function loadPDFDatabase() { if (isMaintenanceActive) return; @@ -454,6 +485,7 @@ async function loadPDFDatabase() { if (shouldUseCache) { pdfDatabase = cachedData; + prepareSearchIndex(); // --- FIX: CALL THIS TO POPULATE UI --- syncClassSwitcher(); renderSemesterTabs(); @@ -477,6 +509,7 @@ async function loadPDFDatabase() { data: pdfDatabase })); + prepareSearchIndex(); // --- FIX: CALL THIS TO POPULATE UI --- syncClassSwitcher(); renderPDFs(); @@ -905,26 +938,23 @@ function renderPDFs() { // Locate renderPDFs() in script.js and update the filter section const filteredPdfs = pdfDatabase.filter(pdf => { - const matchesSemester = pdf.semester === currentSemester; + if (pdf.semester !== currentSemester) return false; // NEW: Check if the PDF class matches the UI's current class selection // Note: If old documents don't have this field, they will be hidden. - const matchesClass = pdf.class === currentClass; + if (pdf.class !== currentClass) return false; - let matchesCategory = false; if (currentCategory === 'favorites') { - matchesCategory = favorites.includes(pdf.id); - } else { - matchesCategory = currentCategory === 'all' || pdf.category === currentCategory; + if (!favorites.includes(pdf.id)) return false; + } else if (currentCategory !== 'all') { + if (pdf.category !== currentCategory) return false; } - const matchesSearch = pdf.title.toLowerCase().includes(searchTerm) || - pdf.description.toLowerCase().includes(searchTerm) || - pdf.category.toLowerCase().includes(searchTerm) || - pdf.author.toLowerCase().includes(searchTerm); + if (searchTerm) { + if (!pdf._searchStr || !pdf._searchStr.includes(searchTerm)) return false; + } - // Update return statement to include matchesClass - return matchesSemester && matchesClass && matchesCategory && matchesSearch; + return true; }); updatePDFCount(filteredPdfs.length); @@ -994,9 +1024,7 @@ function createPDFCard(pdf, favoritesList, index = 0, highlightRegex = null) { const heartIconClass = isFav ? 'fas' : 'far'; const btnActiveClass = isFav ? 'active' : ''; - const uploadDateObj = new Date(pdf.uploadDate); - const timeDiff = new Date() - uploadDateObj; - const isNew = timeDiff < (7 * 24 * 60 * 60 * 1000); // 7 days + const isNew = pdf._isNew || false; const newBadgeHTML = isNew ? `NEW` @@ -1011,9 +1039,7 @@ function createPDFCard(pdf, favoritesList, index = 0, highlightRegex = null) { const categoryIcon = categoryIcons[pdf.category] || 'fa-file-pdf'; // Formatting Date - const formattedDate = new Date(pdf.uploadDate).toLocaleDateString('en-US', { - year: 'numeric', month: 'short', day: 'numeric' - }); + const formattedDate = pdf._formattedDate || ''; // Uses global escapeHtml() now diff --git a/verify.py b/verify.py new file mode 100644 index 0000000..46b0eba --- /dev/null +++ b/verify.py @@ -0,0 +1,102 @@ +import asyncio +from playwright.async_api import async_playwright +import time + +async def verify(): + async with async_playwright() as p: + browser = await p.chromium.launch(headless=True) + page = await browser.new_page() + + # Block firebase/google to prevent hanging in playwright and overwriting our mock DB + await page.route("**/*firebase*", lambda route: route.abort()) + await page.route("**/*google*", lambda route: route.abort()) + + # Seed local storage with mock data so it renders immediately + await page.goto('http://127.0.0.1:8000', wait_until="commit") + + await page.evaluate('''() => { + const timestamp = new Date().getTime(); + const pastDate = new Date(timestamp - 1000 * 60 * 60 * 24 * 2).toISOString(); // 2 days old (new) + const oldDate = new Date(timestamp - 1000 * 60 * 60 * 24 * 10).toISOString(); // 10 days old (not new) + + const mockData = [ + { id: '1', title: 'Organic Chemistry Basics', description: 'Intro to alkanes', category: 'Organic', author: 'Dr. Smith', uploadDate: pastDate, semester: 1, class: 'MSc Chemistry' }, + { id: '2', title: 'Quantum Mechanics', description: 'Schrodinger equation', category: 'Physical', author: 'Dr. Jones', uploadDate: oldDate, semester: 1, class: 'MSc Chemistry' } + ]; + + localStorage.setItem('classnotes_db_cache', JSON.stringify({ timestamp, data: mockData })); + localStorage.setItem('currentClass', 'MSc Chemistry'); + localStorage.setItem('currentSemester', '1'); + + // Mock firestore globally before app init + window.firebase = { + apps: [{ name: '[DEFAULT]' }], + initializeApp: () => {}, + firestore: () => ({ + collection: (col) => ({ + doc: (id) => ({ + onSnapshot: (cb) => { cb({ exists: false, data: () => ({}) }); return () => {}; }, + set: async () => {}, + collection: () => ({ add: async () => {}, doc: () => ({ set: async () => {} }) }) + }), + orderBy: () => ({ + limit: () => ({ + get: async () => ({ empty: true }) + }), + get: async () => ({ + forEach: (cb) => { + const data = JSON.parse(localStorage.getItem('classnotes_db_cache') || "{}").data || []; + data.forEach(d => cb({ id: d.id, data: () => d })); + } + }) + }) + }) + }), + auth: () => ({ + onAuthStateChanged: (cb) => { cb(null); }, + signInAnonymously: async () => ({ user: { uid: 'mock_uid' } }) + }) + }; + window.firebase.firestore.FieldValue = { + serverTimestamp: () => new Date(), + increment: () => 1 + }; + }''') + + # Reload page with seeded data and mock + await page.goto('http://127.0.0.1:8000', wait_until="domcontentloaded") + + # Force script initialization if needed (mock data) + await page.evaluate('''() => { + if (typeof loadPDFDatabase === 'function') { + pdfDatabase = JSON.parse(localStorage.getItem('classnotes_db_cache') || "{}").data || []; + prepareSearchIndex(); + renderPDFs(); + } + }''') + + # Hide UI blockers + await page.evaluate("() => document.getElementById('preloader')?.classList.add('hidden')") + await page.evaluate("() => document.getElementById('holidayOverlay')?.classList.add('hidden')") + await page.evaluate("() => document.getElementById('contentWrapper')?.classList.add('active')") + + # Wait for the grid to render + await page.wait_for_selector('.pdf-card', timeout=5000) + + # Get count + cards = await page.locator('.pdf-card').count() + print(f"Rendered {cards} cards") + + # Take screenshot + await page.screenshot(path="screenshot.png") + print("Screenshot saved to screenshot.png") + + # Search test + await page.fill('#searchInput', 'Organic') + await page.wait_for_timeout(1000) # wait for debounce & render + organic_cards = await page.locator('.pdf-card').count() + print(f"Rendered {organic_cards} cards after searching 'Organic'") + + await browser.close() + +asyncio.run(verify())