diff --git a/src/index.js b/src/index.js index 8a046e0..76355ef 100644 --- a/src/index.js +++ b/src/index.js @@ -325,6 +325,34 @@ const worker = new Worker('scrape-jobs', async (job) => { console.log(`[Job ${job.id}] ⚠️ Wartezeit abgelaufen – starte Auslesen aus dem aktuellen DOM...`); } + // C. Sortierung auf "Neueste zuerst" (NEWEST_FIRST) umstellen + try { + const sorterLocator = page.locator('#reviewListSorters, [data-testid="reviews-sorter-component"], select[name="reviewListSorters"]').first(); + if (await sorterLocator.count() > 0) { + console.log(`[Job ${job.id}] 🔄 Stelle Sortierung auf 'NEWEST_FIRST' (Neueste zuerst) um...`); + await sorterLocator.selectOption('NEWEST_FIRST'); + await page.waitForTimeout(2500); // Warten bis Booking die Liste per AJAX neu lädt + } else { + // Fallback via JavaScript Event-Dispatch + const changed = await page.evaluate(() => { + const select = document.querySelector('#reviewListSorters, [data-testid="reviews-sorter-component"], select[name="reviewListSorters"]'); + if (select) { + select.value = 'NEWEST_FIRST'; + select.dispatchEvent(new Event('change', { bubbles: true })); + return true; + } + return false; + }).catch(() => false); + + if (changed) { + console.log(`[Job ${job.id}] 🔄 Sortierung via JS-Event auf 'NEWEST_FIRST' umgestellt.`); + await page.waitForTimeout(2500); + } + } + } catch (e) { + console.log(`[Job ${job.id}] ⚠️ Sortierung konnte nicht angepasst werden:`, e.message); + } + let pageCount = 0; const seenKeys = new Set(); diff --git a/src/review-debug.png b/src/review-debug.png index 367ecac..d38c9e6 100644 Binary files a/src/review-debug.png and b/src/review-debug.png differ