Fix(job): Internal wait for 1215
All checks were successful
ktm-booking-bot/ktm-booking-bot/pipeline/head This commit looks good
All checks were successful
ktm-booking-bot/ktm-booking-bot/pipeline/head This commit looks good
This commit is contained in:
@@ -434,14 +434,32 @@ func selectBookingSlot(ctx context.Context, page *rod.Page, timeCode string) *ro
|
||||
time.Sleep(5 * time.Second)
|
||||
twoCaptchaAPIKey := os.Getenv("TWOCAPTCHA_API_KEY")
|
||||
|
||||
needToWait := false
|
||||
|
||||
// Initial closing of maintenance modal
|
||||
bodyText := page.MustElement("body").MustText()
|
||||
if strings.Contains(bodyText, "System maintenance scheduled at 23:00 to 00:15 (UTC+8)") {
|
||||
closeModalButton := page.MustElement("#popupModalCloseButton")
|
||||
closeModalButton.Eval(`this.click()`)
|
||||
|
||||
needToWait = true
|
||||
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
}
|
||||
|
||||
// Wait for 1215am
|
||||
if needToWait {
|
||||
log.Println("Waiting for 1215am")
|
||||
destinationTime := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 15, 1, 0, time.Now().Location())
|
||||
needToWaitTimer := time.NewTimer(time.Until(destinationTime))
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return page
|
||||
case <-needToWaitTimer.C:
|
||||
log.Println("1215am reached")
|
||||
}
|
||||
}
|
||||
|
||||
// Start probing
|
||||
reportedTicketDetails := false
|
||||
completed := false
|
||||
@@ -498,6 +516,19 @@ func selectBookingSlot(ctx context.Context, page *rod.Page, timeCode string) *ro
|
||||
closeModalButton := page.MustElement("#popupModalCloseButton")
|
||||
closeModalButton.Eval(`this.click()`)
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
// Repeat if there's no seats -- seats might be released later
|
||||
if strings.Contains(bodyText, "Not enough seat for onward trip") {
|
||||
completed = false
|
||||
|
||||
closeModalButton := page.MustElement("#popupModalCloseButton")
|
||||
closeModalButton.Eval(`this.click()`)
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
// Check if there is captcha
|
||||
@@ -516,15 +547,6 @@ func selectBookingSlot(ctx context.Context, page *rod.Page, timeCode string) *ro
|
||||
page.Eval(`RecaptchaCallback()`)
|
||||
}
|
||||
|
||||
// Repeat if there's no seats -- seats might be released later
|
||||
if strings.Contains(bodyText, "Not enough seat for onward trip") {
|
||||
completed = false
|
||||
|
||||
closeModalButton := page.MustElement("#popupModalCloseButton")
|
||||
closeModalButton.Eval(`this.click()`)
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
}
|
||||
|
||||
styleAttribute := selectButtonElement.MustAttribute("style")
|
||||
if styleAttribute == nil || !strings.Contains(*styleAttribute, "display: none") {
|
||||
completed = false
|
||||
|
||||
Reference in New Issue
Block a user