Verbesserte

This commit is contained in:
root
2025-11-09 15:49:07 +01:00
parent 79a271b453
commit b8aceb695e
6 changed files with 345 additions and 96 deletions

View File

@@ -126,6 +126,10 @@ async function fetchStores(cookieHeader, profileId, options = {}) {
const delayBetweenRequestsMs = Number.isFinite(options.delayBetweenRequestsMs)
? Math.max(0, options.delayBetweenRequestsMs)
: 0;
const onStoreCheck =
typeof options.onStoreCheck === 'function'
? options.onStoreCheck
: null;
try {
const response = await client.get(`/api/user/${profileId}/stores`, {
headers: buildHeaders(cookieHeader),
@@ -143,14 +147,14 @@ async function fetchStores(cookieHeader, profileId, options = {}) {
zip: store.zip || ''
}));
return annotateStoresWithPickupSlots(normalized, cookieHeader, delayBetweenRequestsMs);
return annotateStoresWithPickupSlots(normalized, cookieHeader, delayBetweenRequestsMs, onStoreCheck);
} catch (error) {
console.warn('Stores konnten nicht geladen werden:', error.message);
return [];
}
}
async function annotateStoresWithPickupSlots(stores, cookieHeader, delayBetweenRequestsMs = 0) {
async function annotateStoresWithPickupSlots(stores, cookieHeader, delayBetweenRequestsMs = 0, onStoreCheck) {
if (!Array.isArray(stores) || stores.length === 0) {
return [];
}
@@ -160,6 +164,13 @@ async function annotateStoresWithPickupSlots(stores, cookieHeader, delayBetweenR
for (let index = 0; index < stores.length; index += 1) {
const store = stores[index];
if (onStoreCheck) {
try {
onStoreCheck(store, index + 1, stores.length);
} catch (callbackError) {
console.warn('Store-Progress-Callback fehlgeschlagen:', callbackError);
}
}
if (delayMs > 0 && index > 0) {
await wait(delayMs);
}