From bfc72f2cfb00c260196dac32d2db5941af908bcd Mon Sep 17 00:00:00 2001 From: Collin Duncan <3679940+cgduncan7@users.noreply.github.com> Date: Tue, 7 May 2024 11:47:44 +0200 Subject: [PATCH] Properly retrying speedy reservations and speeding up searching for opponents --- src/runner/baanreserveren/service.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/runner/baanreserveren/service.ts b/src/runner/baanreserveren/service.ts index e63e4d4..50d262d 100644 --- a/src/runner/baanreserveren/service.ts +++ b/src/runner/baanreserveren/service.ts @@ -558,16 +558,13 @@ export class BaanReserverenService { .catch((e: Error) => { throw new RunnerOpponentSearchError(e) }) - await playerSearch - ?.type(name, { delay: this.getTypingDelay() }) - .catch((e: Error) => { - throw new RunnerOpponentSearchInputError(e) - }) - await this.page.waitForNetworkIdle().catch((e: Error) => { - throw new RunnerOpponentSearchNetworkError(e) + await playerSearch?.type(name).catch((e: Error) => { + throw new RunnerOpponentSearchInputError(e) }) await this.page - .$(`select.br-user-select[name="players[${resolvedIndex}]"]`) + .waitForSelector( + `select.br-user-select[name="players[${resolvedIndex}]"]`, + ) .then((d) => d?.select(id)) .catch((e: Error) => { throw new RunnerOpponentSearchSelectionError(e) @@ -716,14 +713,16 @@ export class BaanReserverenService { ) await this.selectOwner(reservation.ownerId) await this.selectOpponents(reservation.opponents) + let errorReserving = false await this.confirmReservation().catch((error: Error) => { if (error instanceof RunnerReservationConfirmSubmitError) { this.loggerService.warn('Court taken, retrying', { courtSlot }) - return + errorReserving = true + } else { + throw error } - throw error }) - return + if (!errorReserving) return } throw new NoCourtAvailableError('Could not reserve court')