jdholtz / auto-southwest-check-in

A Python script that automatically checks in to your Southwest flight 24 hours beforehand.
GNU General Public License v3.0
458 stars 88 forks source link

Bypass Early Bird Check-ins #150

Closed sandthemann closed 1 year ago

sandthemann commented 1 year ago

Description

Had a few people travelling with me and set up reservations with a config for everyone on a home desktop, after the program started one flier decided to get early bird check-in rather than trust the program. This resulted in the program freezing when trying to refresh the headers, since early bird puts out a pop-up before 24 hours before check-in that the flier has early bird and the seating will be assigned at the 24-hour mark, which would have resulted in the other check-ins failing. Not marking this as a bug since this is likely an edge-case.

What alternatives have you considered?

No response

jdholtz commented 1 year ago

When exactly does the program freeze? Refreshing headers does not use the actual reservation information (therefore, it wouldn't be tied to any reservation with early-bird), so I would be confused if the program freezes then.

I have an early bird reservation that has a check-in in two weeks, so I can test this out then. However, I haven't had an issue scheduling the flight check-ins.

sandthemann commented 1 year ago

Where can I locate logs for past runs? I'll see if I can identify one where it happened. When I initially started the program they hadn't gotten early bird yet, I believe they bought it after.

jdholtz commented 1 year ago

Where can I locate logs for past runs?

In the logs/ directory. It keeps the last 5 runs.

sandthemann commented 1 year ago

Looks like the log files are gone now, I'd been doing some testing so it only just got deleted, looks like it's unrecoverable.

jdholtz commented 1 year ago

No worries. I would be interested to see how this is possible. I don't think it would happen while refreshing headers, as that inputs fake reservation information. Maybe it happens during log-ins, but it sounded like you input the reservation config, not the login config. Last, there shouldn't be any pop-ups during the actual check-in, as a browser isn't run then. However, it could be some sort of error that happens due to early-bird.

I will close this issue for now since it can't be debugged now, but I can reopen it if anyone else has this issue or if I have an issue for my early-bird flight in a couple of weeks.

sandthemann commented 1 year ago

While the logging is gone, I do remember a few other details that may help if this comes up again. The computer I had left at home that kept running the program, after their check-in had occurred the terminal didn't update with any additional outputs, so I assume something between the flight getting scheduled (before they had added early bird) and when the program should have checked them in caused an issue, ie. the header request.

I also did some testing on another computer to see how the program would handle it when I found out they got early bird (and before they checked in). There were a total of 4 flights across 3 confirmations, and the early bird one had 2 of the flights. When I tried to start up the program fresh (before their check-in), I would never get a response that the early bird flights had scheduled. 0-2 of the other flights would get a scheduled successfully across multiple runs. That goes along with the above that some request was causing an issue, and I assumed I was occasionally getting one or two of the others depending on how the multiprocessing handled things.

jdholtz commented 1 year ago

Interesting. That could be caused by the webdriver not working correctly as well, as that would explain why it would've stopped at the refreshing headers step. Many people have been having issues with the webdriver which are unfortunately hard to reproduce and specific to their system.

sandthemann commented 1 year ago

Yeah could be - if it does end up being an issue outside of the webdriver it looks like you can get the early bird information using the existing set up for viewing reservations, just requires a slight URL change to "mobile-air-booking/v1/mobile-air-booking/page/early-bird/"

jdholtz commented 1 year ago

@sandthemann I did just test on an early bird check-in with this script and did not run into any issues. I believe the problem was with the webdriver not starting correctly (which should be more reliable in v6.1).