From 4f89a69ee37fa000cd0b49668d988c23bdb76204 Mon Sep 17 00:00:00 2001 From: ergosteur <1992147+ergosteur@users.noreply.github.com> Date: Sat, 7 Mar 2026 20:25:23 -0500 Subject: [PATCH] fix: optimize scanning performance and resolve zero-post bug --- src/App.tsx | 74 ++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 3a5dfd7..650c4ca 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -579,7 +579,7 @@ const PostModal = ({
-
{profilePic ? : {post.username[0]}}
+
{profilePic ? : {post.username[0]}}
{post.username}{post.caption}
{format(parseISO(post.date), 'MMMM d, yyyy')}
@@ -738,7 +738,10 @@ export default function App() { if (lowerName.includes('_profile_pic.jpg') || (detectedUsername && lowerName === `${detectedUsername.toLowerCase()}.jpg`)) { try { - const url = file.url || URL.createObjectURL(new Blob([await file.arrayBuffer()], { type: 'image/jpeg' })); + const url = file.url || (await (async () => { + const blob = new Blob([await file.arrayBuffer()], { type: 'image/jpeg' }); + return URL.createObjectURL(blob); + })()); discoveredProfilePics.push({ name: file.name, url }); if (format === 'unknown' && lowerName.includes('_profile_pic.jpg')) format = 'instaloader'; } catch(e) {} @@ -751,7 +754,6 @@ export default function App() { console.log(`[Scanner] Format Detection Complete. Result: ${format}. Media indexed: ${mediaFilesMap.size}`); - // Pass 2: JSON Parsing if (jsonFiles.length > 0 && (format === 'json' || format === 'instaloader')) { setScanningPhase('Parsing'); for (let i = 0; i < jsonFiles.length; i++) { @@ -809,7 +811,6 @@ export default function App() { } } - // Pass 3: Regex Parsing if (format === 'export' || format === 'instaloader') { setScanningPhase('Parsing'); const CHUNK_SIZE = 100; @@ -862,7 +863,6 @@ export default function App() { } } - // Pass 4: Generic Fallback if (postsMap.size === 0) { console.log(`[Scanner] No posts found with standard patterns. Using mediaFilesMap: ${mediaFilesMap.size}`); setScanningPhase('Parsing'); @@ -1017,7 +1017,7 @@ export default function App() { const loadMore = () => setVisiblePostsCount(prev => prev + 90); useEffect(() => { - const params = new URLSearchParams(); + const params = new URLSearchParams(window.location.search); if (currentArchive) params.set('a', currentArchive.name); else if (allPosts.length > 0 && username) params.set('a', username); if (activeTab !== 'posts') params.set('t', activeTab); @@ -1066,16 +1066,16 @@ export default function App() { handleLocalFiles(e.target.files)} />