Closed Arcanlaw closed 7 months ago
Thanks for reporting this. Could you attach the logs of the run? Also, does it check you in correctly if you run it again?
Not sure if it checks me in correctly since I won't have another same-day flight for a few weeks.
Would attach logs but I'm running this in a qnap docker container and I'm not sure where I'd find them. It's still running, with the terminal output as shown above; if anyone knows where to look for said logs (somewhere via ssh?) I'll happily retrieve them.
It appears that you can find the logs by following the steps on this qnap tutorial under the Checking Individual Container Logs
section. From there, you might be able to either download it as a file or just copy/paste it into a file and send it here
One thing I've learned about qnap is their documentation is often not representative of their products:
As you can see, there is no logs tab. There are no tabs! Event logs have very high level docker logs, nothing there. I ssh'd into the box and ran a 'docker logs container-name' and got exactly the terminal output that I pasted above. Tried to ssh to the container:
[~] # docker exec -it auto-SW-checkin bash OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown [~] # docker exec -it auto-SW-checkin ksh OCI runtime exec failed: exec failed: unable to start container process: exec: "ksh": executable file not found in $PATH: unknown
no dice there either. Wish I could help but not sure there's any way to get logs from this thing.
Did a little more digging, found this, if it's helpful:
[~] # cat /share/CACHEDEV1_DATA/Container/container-station-data/lib/docker/containers/96efb77c80e4c7e8fd4e210a36903e952f110881f066f922c0ae6bbfc87cc494/96efb77c80e4c7e8fd4e210a36903e952f110881f066f922c0ae6bbfc87cc494-json.log {"log":"Successfully scheduled the following flights to check in for FIRST LAST:\r\n","stream":"stdout","time":"2023-08-06T17:01:27.587385046Z"} {"log":"Flight from Source/Airport to Destination/Airport at 2023-08-10 13:40:00 UTC\r\n","stream":"stdout","time":"2023-08-06T17:01:27.587492541Z"} {"log":"Flight from Destination/Airport to Source/Airport at 2023-08-10 21:35:00 UTC\r\n","stream":"stdout","time":"2023-08-06T17:01:27.587505499Z"} {"log":"\r\n","stream":"stdout","time":"2023-08-06T17:01:27.587515926Z"} {"log":"Checking in to flight from 'Source/Airport' to 'Destination/Airport' for FIRST LAST\r\n","stream":"stdout","time":"2023-08-10T11:19:55.004224453Z"} {"log":"\r\n","stream":"stdout","time":"2023-08-10T11:19:55.004288156Z"} {"log":"Successfully checked in to flight from 'Source/Airport' to 'Destination/Airport' for FIRST LAST!\r\n","stream":"stdout","time":"2023-08-10T11:20:09.969668778Z"} {"log":"First Last got A41!\r\n","stream":"stdout","time":"2023-08-10T11:20:09.970115338Z"} {"log":"\r\n","stream":"stdout","time":"2023-08-10T11:20:09.970384655Z"} {"log":"Checking in to flight from 'Destination/Airport' to 'Source/Airport' for FIRST LAST\r\n","stream":"stdout","time":"2023-08-10T20:24:55.004073845Z"} {"log":"\r\n","stream":"stdout","time":"2023-08-10T20:24:55.004131664Z"} {"log":"Successfully checked in to flight from 'Destination/Airport' to 'Source/Airport' for FIRST LAST!\r\n","stream":"stdout","time":"2023-08-10T20:24:57.922247775Z"} {"log":"First Last got A41!\r\n","stream":"stdout","time":"2023-08-10T20:24:57.922293265Z"} {"log":"\r\n","stream":"stdout","time":"2023-08-10T20:24:57.922305042Z"}
(I tried to obfuscate as much as possible without making the logs worthless... bear with me)
no dice there either. Wish I could help but not sure there's any way to get logs from this thing.
The image only has sh
, so you can try that and see if you can access the logs
directory (that doesn't have private information). It would probably be in one of those files as the container logs will actually just show the same printed messages you shared at the beginning.
Did you have the same confirmation number for both flights? There might be a way that Southwest handles same-day flights that I don't know about and that is the reason it checked you into the same flight instead of the two different ones
Yes, the confirmation number is the same for same-day flights.
That sh tip was it! (Sending logs privately)
It appears that Southwest handles same-day flights differently. Unfortunately, I don't have a same-day flight for the foreseeable future, so I am not able to investigate how this can be handled correctly.
If you would want to look at how Southwest handles this (since you have a same-day flight in a few weeks), that would be great. Alternatively, I might book a same-day flight and then cancel it after I have fixed the issue.
Here's what the preview was for capture of a POST request to https://mobile.southwest.com/api/mobile-air-operations/v1/mobile-air-operations/page/check-in/<confirmation_number>
:
{
"checkInSessionToken": "eyJwbnIiOns...==",
"checkInViewReservationPage": {
"pnr": {
"confirmationNumber": "999999",
"passengers": [
"Firstname Lastname"
]
},
"cards": [
{
"dates": {
"first": "2023-08-15",
"second": null
},
"destinationDescription": "Dallas",
"departureDate": "2023-08-15",
"departureAirport": "HOU",
"departureTime": "07:00",
"arrivalAirport": "DAL",
"arrivalTime": "08:00",
"hazmatCheckInDisclaimer": "By tapping 'Check in' you acknowledge that you understand the hazardous materials restrictions and penalties.",
"flights": [
{
"flightNumber": "4",
"hasWifi": true,
"originAirportCode": "HOU",
"destinationAirportCode": "DAL",
"destinationStationName": "Dallas (Love Field)",
"departureDate": "Aug 15",
"departureGate": "26",
"departureTime": "07:00",
"isOvernight": false
}
],
"travelTime": "1h 0m"
},
{
"dates": {
"first": "2023-08-15",
"second": null
},
"destinationDescription": "Houston",
"departureDate": "2023-08-15",
"departureAirport": "DAL",
"departureTime": "18:30",
"arrivalAirport": "HOU",
"arrivalTime": "19:45",
"hazmatCheckInDisclaimer": "By tapping 'Check in' you acknowledge that you understand the hazardous materials restrictions and penalties.",
"flights": [
{
"flightNumber": "49",
"hasWifi": true,
"originAirportCode": "DAL",
"destinationAirportCode": "HOU",
"destinationStationName": "Houston (Hobby)",
"departureDate": "Aug 15",
"departureGate": null,
"departureTime": "18:30",
"isOvernight": false
}
],
"travelTime": "1h 15m"
}
],
"hazmattext": "Federal law forbids the carriage of hazardous materials such as aerosols, fireworks, lithium batteries and flammable liquids aboard the aircraft in your checked or carryon baggage. E-cigarettes are not permitted in checked baggage and must be transported in carryon baggage only.",
"_analytics": {
"checkin.odout": "HOUDAL",
"checkin.odrtn": "DALHOU"
},
"_links": {
"checkIn": {
"href": "/v1/mobile-air-operations/page/check-in",
"method": "POST",
"body": {
"recordLocator": "999999",
"checkInSessionToken": "eyJwbn...Q==",
"firstName": "Firstname",
"lastName": "Lastname",
"passengerSearchToken": "VZrQwumvaHacpo...d1J1kQpVMVgng="
}
},
"travelDocuments": null
}
},
"prefillPassengerAPISDocuments": null
}
Hope this helps!
@mattmora44, this is very helpful, thanks! This appears to be the response from the GET request. Is that right? Would you also be able to post the request data to the POST request (not the response, just the request)? Sorry, if this is the data that you already posted.
Also, do you see two separate requests for check-ins? Nothing appears to be out of the ordinary, so Southwest might be doing something special using JavaScript or the tokens are how the correct flight is checked in.
@jdholtz I have sent an email to you of the network capture of the check in.
Thank you very much @mattmora44. The issue is that the script starts checking in to the flight five seconds early. However, since the second flight is technically the same as the first flight (same confirmation number), the check in for the second flight goes through, but only for the first flight (since it is five seconds earlier than check in). I'll work on a fix for this.
This issue should be fixed in the fix-same-day-flights branch. I've only tested it on mocked data though, so it would be great if @Arcanlaw or anyone else with a same-day flight can test this out.
To test, execute the following commands in this script's directory:
git pull
git checkout fix-same-day-flights
If you would like to test with Docker, you can build the image after executing the above commands:
docker build -t <image-name> .
For anyone wanting to test this, the fix-same-day-flights branch is up to date with v6.1. Just follow my directions in the above comment to test the fix out in a real scenario with same day flights.
Hey there, so I happen to be using your script for a little while now and I've come up with a same day flight.
I used your steps above to pull to validate I'm on 6.1, then flipped to fix-same-day-fights. I'll post up my details after the test. I booked less than 24 hours so it auto checked my first flight in (I paid for upgraded boarding, work perks sometimes pays off) but I'll test it on the return flight that is 12 hours later.
Successfully logged in to j0nsgh's account
Checking in to flight from 'City A' to 'City B' for j0nsgh
Successfully scheduled the following flights to check in for j0nsgh: Flight from City A to City B at 2023-10-04 13:05:00 UTC Flight from City B to City A at 2023-10-05 01:55:00 UTC
Successfully checked in to flight from 'City A' to 'City B' for j0nsgh! j0nsgh got A06!
UTC shows two different days BUT in my timezone its the same day...
I'll test it on the return flight that is 12 hours later.
Sounds great
UTC shows two different days BUT in my timezone its the same day
I get this often too, but the timing is correct. You can verify that by manually calculating your timezone’s offset with UTC to see that it’s still the correct flight time.
So I'm not sure it worked, I received the following error:
Checking in to flight from 'City B' to 'City A' for j0nsgh
Failed to check in to flight ##### for j0nsgh. Reason: Too many attempts during check-in. Check in at this url: https://mobile.southwest.com/check-in
Logs:
2023-10-03 18:54:55 DEBUG Process-1:2[checkin_handler:130]: Attempting to check in 2023-10-03 18:54:55 DEBUG Process-1:2[checkin_handler:144]: Making GET request to check in 2023-10-03 18:54:56 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:54:56 DEBUG Process-1:2[checkin_handler:169]: Submitting check-in with a POST request 2023-10-03 18:54:57 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:54:57 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:00 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:00 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:02 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:02 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:04 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:04 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:07 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:07 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:09 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:09 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:12 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:12 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:15 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:15 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:17 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:17 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:20 DEBUG Process-1:2[utils:34]: Successfully made request after 1 attempts 2023-10-03 18:55:20 DEBUG Process-1:2[checkin_handler:184]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2023-10-03 18:55:21 DEBUG Process-1:2[checkin_handler:190]: Same-day flight failed to check in after 10 attempts 2023-10-03 18:55:21 DEBUG Process-1:2[checkin_handler:150]: Failed to check in. Error: Too many attempts during check-in. Exiting 2023-10-03 18:55:21 DEBUG Process-1:2[notification_handler:97]: Sending failed check-in notification... 2023-10-03 19:14:09 INFO MainProcess[main:167]: Ctrl+C pressed. Stopping all check-ins 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:58]: Stopping check-in for current flight 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:61]: Killing process with PID 22402 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:65]: Waiting for process with PID 22402 to be terminated 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:71]: Process with PID 22402 successfully terminated 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:58]: Stopping check-in for current flight 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:61]: Killing process with PID 22403 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:65]: Waiting for process with PID 22403 to be terminated 2023-10-03 19:14:09 DEBUG Process-1[checkin_handler:71]: Process with PID 22403 successfully terminated
To confirm I did run this prior and let it sit:
j0nsgh@laptop:~/auto-southwest-check-in$ git pull j0nsgh@laptop:~/auto-southwest-check-in$ git checkout fix-same-day-flights Branch 'fix-same-day-flights' set up to track remote branch 'fix-same-day-flights' from 'origin'. Switched to a new branch 'fix-same-day-flights' j0nsgh@laptop:~/auto-southwest-check-in$ python3 southwest.py
I have the full log if you'd like it.
@j0nsgh Thanks for trying. I'm actually not sure what went wrong. If you try again, does the check-in successfully go through? If it doesn't, would you be able to add the line print(flights)
to line 178 of lib/checkin_handler.py
and sending the output either here or in an email to me (removing any private data you don't want to share)?
By the time I saw this and went to run it again it had dropped off my 1st flight :(. I have another one coming up soon so I will re-test then (if not resolved).
By the time I saw this and went to run it again it had dropped off my 1st flight :(. I have another one coming up soon so I will re-test then (if not resolved).
No worries. I have one thought as to what the issue is. I will fix it in the next couple of days and let you know so you can test on your next one. Thanks for helping test this fix
Hey @j0nsgh, I made changes to the fix-same-day-flights
branch that I believe will fix the issue. To apply my new changes, just do git pull
before running the script (make sure you are still on the fix-same-day-flights
branch).
Version 7.0 (plus one bug fix in the develop branch) is merged into the fix-same-day-flights
branch, so it is up to date for anyone wanting to test a check-in with same-day flights.
@jdholtz hey sir! I have another flight coming up next week that I can test this with. So to confirm just update the script to ensure its on its latest and then let it run, any flags or anything I should use to test?
@j0nsgh yup! Everything on the fix-same-day-flights branch is up to version 7.1, so all you should need to do is run git pull
and update the dependencies using pip install -r requirements.txt
.
@jdholtz hey sir! Just FYI, I wiped my system a little bit ago and thus a new OS build. Pulled down the latest version, created config.json with usual settings, and let it run today all day (I have same day flight out and back tomorrow). Success! Worked like a champ.
j0nsgh@laptop:~/Downloads/auto-southwest-check-in$ python3 southwest.py Successfully logged in to j0nsgh's account
Checking in to flight from 'City A' to 'City B' for j0nsgh
Successfully scheduled the following flights to check in for j0nsgh: Flight from City A to City B at 2023-12-13 16:10:00 UTC Flight from City B to City A at 2023-12-14 02:05:00 UTC
Successfully checked in to flight from 'City A' to 'City B' for j0nsgh! j0nsgh got B02!
Checking in to flight from 'City B' to 'City A' for j0nsgh
Successfully checked in to flight from 'City B' to 'City A' for j0nsgh! j0nsgh got B02!
Ctrl+C pressed. Stopping all check-ins
Stopping monitoring for account with username j0nsgh Cancelling check-in from 'City A' to 'City B' for j0nsgh Cancelling check-in from 'City B' to 'City A' for j0nsgh
Scratch that, it LOOKS like it passed, but it did not check in, it reported B02 which was city A (first flight), City B did not check in properly it looks like... I went to confirm on my SW app and it shows a different seat. I'll pull the log and post it shortly.
Here's leading up to the 2nd flight...
Hey @j0nsgh, from your logs, it doesn't appear that you used the fix-same-day-flights branch as the log messages don't match up with that branch. Next time you test, just make sure to run git checkout fix-same-day-flights
before. Thanks for attempting it though!
Gah! I could have swore I saw it merged together and no switch needed but you are right I missed that. I have another coming up so I shall try again in a few weeks and report back.
I'm assuming this is still being tested. I have a case today that I recall we still need to test. I assume this branch is still working so we'll see what happens. In about 3h or so my wife's checking should occur again. So we'll know if it fails or not.
Anything you'd like me to do prior to that checkin, please let me know. Thanks.
Also, I don't think the changes that are in the most current release with the "special characters" password issue is on this branch as it "errored" out on me when it got to that specific login.
Anything you'd like me to do prior to that checkin, please let me know. Thanks.
@babehboi I just updated the branch, so it is be as up to date with v7.3. Just make sure the requirements are up to date and you should be good.
The outbound flight check-in should definitely work (doesn't matter that it's a same-day). This issue is with the inbound flight, so if you are correctly checked in to the inbound flight, that means the fix works.
Sounds good. Do you want me to go up to 7.3 or leave it as I don't have any preference. I have about 1.5h before the 2nd leg is checked in
Sounds good. Do you want me to go up to 7.3 or leave it as I don't have any preference. I have about 1.5h before the 2nd leg is checked in
I would just pull the latest changes to the fix-same-day-flights
branch. Other than that, you should be good.
I can confirm that it worked. I didn't get a chance to update it prior to the check-in but it will display both confirmations which I think is a nice touch.
Auto Southwest Check-in Script
Successfully checked in to flight from 'Away City' to 'Home City' for First Last! FULL NAME got A45! FULL NAME got A35!
I can confirm that it worked. I didn't get a chance to update it prior to the check-in but it will display both confirmations which I think is a nice touch.
That's awesome. Can you send the logs of the check-in too? Just want to make sure those are outputting the correct information too. Displaying both confirmations is just a side effect of it being within 24 hours of each check-in, but that is nice.
2024-03-18 19:40:01 DEBUG Process-2:2[checkin_handler:105]: Lock released 2024-03-18 19:40:01 DEBUG Process-2:2[checkin_handler:109]: Sleeping until check-in: 1793 seconds... 2024-03-18 20:09:55 DEBUG Process-2:2[checkin_handler:128]: Attempting to check in 2024-03-18 20:09:55 DEBUG Process-2:2[checkin_handler:156]: Submitting check-in with a POST request 2024-03-18 20:09:55 DEBUG Process-2:2[checkin_handler:188]: Making GET request to check in 2024-03-18 20:09:56 DEBUG Process-2:2[utils:34]: Successfully made request after 1 attempts 2024-03-18 20:09:56 DEBUG Process-2:2[checkin_handler:194]: Making POST request to check in 2024-03-18 20:09:57 DEBUG Process-2:2[utils:34]: Successfully made request after 1 attempts 2024-03-18 20:09:57 DEBUG Process-2:2[checkin_handler:167]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2024-03-18 20:09:58 DEBUG Process-2:2[checkin_handler:188]: Making GET request to check in 2024-03-18 20:09:59 DEBUG Process-2:2[utils:34]: Successfully made request after 1 attempts 2024-03-18 20:09:59 DEBUG Process-2:2[checkin_handler:194]: Making POST request to check in 2024-03-18 20:10:01 DEBUG Process-2:2[utils:34]: Successfully made request after 1 attempts 2024-03-18 20:10:01 DEBUG Process-2:2[checkin_handler:167]: Same-day flight has not been checked in yet. Waiting 1 second and trying again 2024-03-18 20:10:02 DEBUG Process-2:2[checkin_handler:188]: Making GET request to check in 2024-03-18 20:10:04 DEBUG Process-2:2[utils:34]: Successfully made request after 1 attempts 2024-03-18 20:10:04 DEBUG Process-2:2[checkin_handler:194]: Making POST request to check in 2024-03-18 20:10:06 DEBUG Process-2:2[utils:34]: Successfully made request after 1 attempts 2024-03-18 20:10:06 DEBUG Process-2:2[checkin_handler:164]: Successfully checked in after 3 attempts 2024-03-18 20:10:06 DEBUG Process-2:2[notification_handler:99]: Sending successful check-in notification...
That looks great. Thanks for testing @babehboi! Will make this fix officially part of the next release.
Yeah no problem. It looked good to me too. I went to review the code to ensure it was what we would have expected from it =). Great job everyone.
Thanks to everyone who helped debug and test.
Version
4.3
Description
Ran script with conf number & name for a flight to/from a destination on the same day (morning arrival, return evening).
(details obfuscated)
Thought it was a little coincidental I got the same position on both flights. Checked several hours later, the first flight I got A41. Second flight was C19 ... I was never checked into the 2nd flight.
To Reproduce
Run script on a flights on the same day. Same confirmation number will show both flight times but it will only check in the first flight.
Expected Behavior
Expected proper checkin, or for script to notify it will not be checking in later flight.
Relevant logs and program output
Additional context
No response