jvolker / miq-nz-booking-tools

Tools to help booking a spot in New Zealand Managed Isolation and Quarantine. Automatically refreshes, checks and fills forms in the website to find and book the rare spots.
MIT License
83 stars 35 forks source link

Display corresponding calendar page on alert? #86

Open HKG2301 opened 3 years ago

HKG2301 commented 3 years ago

In v9 the script would halt at the relevant calendar month when a date alert was issued. Is it possible to have this again, to avoid having to search through the months to find the alert date? It wastes vital seconds which makes all the difference.

Of note, since v10 each search now reverts to the July page. Possibly one step too many?

alexDrinkwater commented 3 years ago

@HKG2301 The script still switches months whenever it finds an available date. v10 doesn't revert to July, it just never switches off July because its no longer needed to switch to find dates. The program will switch to the month and even select the first available date currently.

Shdedwards commented 3 years ago

It has only gone to the month and selected the date once for me. Every other time it stays on July and I have to find the date. Is there something we might be doing different?

alexDrinkwater commented 3 years ago

@Shdedwards Do you hear the beeping noise in the cases when the month does not change?

MannerlyApple94 commented 3 years ago

@alexDrinkwater I also am having the behaviour described, it finds a date, starts beeping, but the calendar isn't switched to the month containing the available date. Previous versions used to, now it doesn't. It also doesn't select the date as it used to.

Same behaviour using the Electron app, as with Command Line

Shdedwards commented 3 years ago

Yeah I here the beeping noise every time

alexDrinkwater commented 3 years ago

@MannerlyApple94 and @Shdedwards and @HKG2301 Are you on windows or mac? I've only tested it personally on windows 10.

Shdedwards commented 3 years ago

I'm windows 10

MannerlyApple94 commented 3 years ago

Im on Mac

alexDrinkwater commented 3 years ago

@Shdedwards Do you remember which month it was when it did switch? When you need to find the month is the date already selected? Or do you need to select that as well?

alexDrinkwater commented 3 years ago

Another question. Are you specifying particular dates or months? Or telling it to look for all dates?

Shdedwards commented 3 years ago

It was November, I have the script set to all dates too. I thought maybe adding select months might work, but nah. Thank heaps for helping Alex

Shdedwards commented 3 years ago

I mean set to find any date

MannerlyApple94 commented 3 years ago

When looking for any date (with the Electron app), I get the alert and the calendar doesn't switch.

When looking for specific dates (with the command line), and using test dates that match, I saw the date being injected into the flatpickr, but it wasn't alerting me, or selecting it, even though the dates were a 1:1 match.

alexDrinkwater commented 3 years ago

@Shdedwards What version were you on when you saw the month switch for you? Could it have been an older version?

alexDrinkwater commented 3 years ago

@MannerlyApple94 Were you making sure the dates in the test dates were in the YYYY-MM-DD format i.e. make sure you add a 0 for september. 2021-09-01

MannerlyApple94 commented 3 years ago

@MannerlyApple94 Were you making sure the dates in the test dates were in the YYYY-MM-DD format i.e. make sure you add a 0 for september. 2021-09-01

Yup, 99% confident, however I'll check again

Shdedwards commented 3 years ago

@alexDrinkwater Yeah I have your latest fix, 0.10.2

cmartin-kavlifoundation commented 3 years ago

I'm also using the command line version from the master branch and it IS successfully switching the month to the proper month. I've tried it using both all dates and specific dates and they both work. I'm on mac.

As a side note, the example dates in miq-assistance.js myDates should probably have the leading zeros added to avoid misleading people who use that feature. Those leading zeros in YYYY-MM-DD seem to be absolutely necessary.

alexDrinkwater commented 3 years ago

@cmartin-kavlifoundation Thanks for your report

MannerlyApple94 commented 3 years ago

With the following in command line:

let myDates = ['2021-08-05']; let findAnyDate = false; let testDates = ['2021-08-05'];

Its not alerting or jumping for me. Hmm interesting.

alexDrinkwater commented 3 years ago

@MannerlyApple94 The test dates are set to alert on the 4th try/refresh. I added that to make the test somewhat more realistic. Can you confirm you confirm how many refreshes you waited?

alexDrinkwater commented 3 years ago

@cmartin-kavlifoundation Have you tried the executable? I would be interested to hear if that works for you.

chrisneilsen commented 3 years ago

I'm seeing this issue too.

I'm Running Windows 10 Chrome Version 92.0.4515.107 (Official Build) (64-bit)

I've got dates set to whole months let myDates = ['2021-08', '2021-09', '2021-10', '2021-11', '2021-12'];

When I get a beep: "Next" button turns black (from grey) indicating it's active Calendar doesn't change visually

I click the reCaptcha. If I'm lucky it goes straight to the green tick I click next (without scrolling to make the date visible) The page refreshes (slowly), then so far has shown "This date is now full. Please try another date."

My suspicion is that the calendar does select the first available month and date, but just doesn't update the screen. If that's true, it's not really a problem

I often get through the steps (click reCapcha, click Next) in 2 to 3 seconds, but still too slow!

FYI, a site that shows you the history of when dates came available is https://www.bidbud.co.nz/miq/ Useful to see what you just missed out on!

MannerlyApple94 commented 3 years ago

@MannerlyApple94 The test dates are set to alert on the 4th try/refresh. I added that to make the test somewhat more realistic. Can you confirm you confirm how many refreshes you waited?

@alexDrinkwater Yup, understand it takes 4 refreshes (waited 10+). Oddly it seems to alert me when I set myDates using the month, and not the specific date. i.e.

let myDates = ['2021-08']; let findAnyDate = false; let testDates = ['2021-08-05'];

HKG2301 commented 3 years ago

Sound alert is good for me in v10.2 but does not switch to alert month. This with whole month (Nov) or specific dates selected. On alert, having scrolled through to the alert month, the date is not selected, but shows highlight on roll-over.

Thanx Alex.

alexDrinkwater commented 3 years ago

I suspect the calendar animation when it changes is what is causing the issue and I may need to add a slight delay after programmatically switching the month.

MannerlyApple94 commented 3 years ago

If the earliest date is in-fact being selected (as mentioned by, irrespective of the calendar switching, as mentioned by @chrisneilsen, then I think thats acceptable, so long as individual date input is being honoured.

alexDrinkwater commented 3 years ago

@chrisneilsen Yes the 5 seconds refresh time really makes it a gamble. I've got a prototype where we could share dates that become available in realtime in under 10ms. The problem I see with that is people would be poaching dates of each other so I need a way to lock it down to only users that want specific dates (with some sort of max date limit). I would need to package it separately to not expose the api keys to prevent misuse. I'm not sure if its worth it but if we get enough people using it and sharing data each time they refresh, it would give the "bots" a run for their money.

chrisneilsen commented 3 years ago

@alexDrinkwater I really appreciate the effort you are putting in. Regarding "too slow" issue, I understand it's a lottery where in the 5s between refreshes the new date is actually listed. Given how fast they go, it seems to me that it's most likely there are Bots out there that are responding faster, and auto completing the booking (from my uninformed position, I have no idea how they can do that). Re "The problem I see with that is people would be poaching dates of each other " I like your idea of a faster version, that limits the number of dates it will scan. In terms of "giving the Bots a run for their money" I think that's fair game...

cmartin-kavlifoundation commented 3 years ago

@cmartin-kavlifoundation Have you tried the executable? I would be interested to hear if that works for you.

@alexDrinkwater : I just set up my system to look for 2021-11-15 as a specific date and set let testDates = ['2021-11-15']; I made sure my clone of the master branch was up to date and then ran npm run make to create an executable. Both the command line version (npm start) and the executable that I created both jumped the calendar viewer to November on the 4th refresh with Nov 15 selected as expected. So looks like the executable is working for me on MacOS.

Thanks for all of the hard you are putting into this!

mmp105 commented 3 years ago

Firstly thank you so much for giving your time to this cause. Until I found you I I was developing RSI from manually refreshing the page and not able to do anything else. Like the others the script is finding dates and beeping but just staying on July so you have to scroll through to see the slightly bold date it’s found. It searching for any date in Oct or Nov and script is running on a Mac with high Sierra 10.13.6

Saj22 commented 3 years ago

Yep mine is doing the same. Beeps when date is found but stays on July. It does not switch to relevant date. I have clicked at exactly the same time as the beep but always get a recaptcha error when going to next. However, I have had the same recaptcha error when doing this manually so suspect it is related to the MIQ site.

kimmered1234 commented 3 years ago

I'm running this on Windows 10. I put in a search for all of Oct and all of Nov and I'll get the alert, but the calendar doesn't change. So I have to quickly scroll through and find the date (also have the twitter alert on to tell me where to look) and I'll click on it, do the Captcha and then click next (which has turned black) and then the page just refreshes back to the July calendar and I don't get a message telling me anything. It's just back to the July calendar... nothing about the date being taken. What am I doing wrong?

stilljake commented 3 years ago

I'm running this on Windows 10. I put in a search for all of Oct and all of Nov and I'll get the alert, but the calendar doesn't change. So I have to quickly scroll through and find the date (also have the twitter alert on to tell me where to look) and I'll click on it, do the Captcha and then click next (which has turned black) and then the page just refreshes back to the July calendar and I don't get a message telling me anything. It's just back to the July calendar... nothing about the date being taken. What am I doing wrong?

This is just what happens when you are not fast enough to secure the date.

acidack commented 3 years ago

Have the same issue. Running it on windows with npm start (packages uptodate). Once a date is found, the calendar does not display the corresonding month and/or selects that date. Running the latest version.

Erasha7 commented 3 years ago

I'm also seeing this issue, I've just had october 31st come up with beeping but the calander didn't change to highlight the date, I'm also on Windows 10.

The issue started with the last update. At first the date would get selected but now its just stopped.

Ponticus commented 3 years ago

As far as I can see, @chrisneilsen is right about this: the screen is not updated, but the date has nevertheless been selected. You can go directly to filling out the recaptcha and clicking next.

Shdedwards commented 3 years ago

Ok, will try next chance I get.

Shdedwards commented 3 years ago

Yeah it looks like the date is still auto selected...After pressing reCAPTCHA, 'Next' is clickable and MIQ site does the little loading symbol (If you're quick enough, or the refresh happens early enough).

acidack commented 3 years ago

Just re ran the test. Definitely does not pick the date. When a date is found, you have to go and click the date before next option shows up. I am not filtering on dates, using win 10,ran both npm start and via exe and using the latest version.

jvolker commented 3 years ago

I've got a prototype where we could share dates that become available in realtime in under 10ms. The problem I see with that is people would be poaching dates of each other so I need a way to lock it down to only users that want specific dates (with some sort of max date limit). I would need to package it separately to not expose the api keys to prevent misuse. I'm not sure if its worth it but if we get enough people using it and sharing data each time they refresh, it would give the "bots" a run for their money.

@alexDrinkwater brilliant! πŸš€ Do you like to start a new issue for this?

Saj22 commented 3 years ago

Sounds great! Aug 2 9 16 23 or 30...any Monday

On Thu, 29 Jul 2021, 9:06 am Jeremias Volker, @.***> wrote:

I've got a prototype where we could share dates that become available in realtime in under 10ms. The problem I see with that is people would be poaching dates of each other so I need a way to lock it down to only users that want specific dates (with some sort of max date limit). I would need to package it separately to not expose the api keys to prevent misuse. I'm not sure if its worth it but if we get enough people using it and sharing data each time they refresh, it would give the "bots" a run for their money.

@alexDrinkwater https://github.com/alexDrinkwater brilliant! πŸš€ Do you like to start a new issue for this?

β€” You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jvolker/miq-nz-booking-tools/issues/86#issuecomment-888676675, or unsubscribe https://github.com/notifications/unsubscribe-auth/AU5M4AC3P73CZV3UY6PPH6DT2CEOXANCNFSM5BA5XT6Q .

Saj22 commented 3 years ago

Whatever it takes. Happy to help.

On Thu, 29 Jul 2021, 9:08 am Shirley Johnson, @.***> wrote:

Sounds great! Aug 2 9 16 23 or 30...any Monday

On Thu, 29 Jul 2021, 9:06 am Jeremias Volker, @.***> wrote:

I've got a prototype where we could share dates that become available in realtime in under 10ms. The problem I see with that is people would be poaching dates of each other so I need a way to lock it down to only users that want specific dates (with some sort of max date limit). I would need to package it separately to not expose the api keys to prevent misuse. I'm not sure if its worth it but if we get enough people using it and sharing data each time they refresh, it would give the "bots" a run for their money.

@alexDrinkwater https://github.com/alexDrinkwater brilliant! πŸš€ Do you like to start a new issue for this?

β€” You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jvolker/miq-nz-booking-tools/issues/86#issuecomment-888676675, or unsubscribe https://github.com/notifications/unsubscribe-auth/AU5M4AC3P73CZV3UY6PPH6DT2CEOXANCNFSM5BA5XT6Q .