Review with more then 200 and sort
This commit is contained in:
28
src/index.js
28
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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user