rebootjeff / cowgoesmoo Goto Github PK
View Code? Open in Web Editor NEWIf only CVS and Walgreens built wait lists for the COVID vaccine
License: GNU General Public License v3.0
If only CVS and Walgreens built wait lists for the COVID vaccine
License: GNU General Public License v3.0
Invert so then it checks for green banner rather than red one
Know sum1 who needs #COVID #vaccine but can't refresh @cvspharmacy & @Walgreens websites 24/7 to check for open appointment? I made #CowGoesMoo, a tool to check websites & alert u when it finds availability
๐ฎ๐ฌ๐ https://github.com/RebootJeff/cowGoesMoo (requires @nodejs)
but make sure the preview image picked up by Twitter is correct
To allow the code to be deployed to a server so it doesn't have to run locally
Hi!
Currently the CVS checker just looks at statewide availability instead of looking at specific zip codes. It would be nice to have it check based on zip code for more accurate alerts.
Thanks!
Add it to the README and to the desktop notifications (as an icon to replace the default placeholders).
Maybe use something like Snyk. Could be integrated into CI too.
The social media preview image isn't working when I link to this repo from Twitter. Twitter will use my GitHub avatar as the preview image. So maybe I should change my GitHub avatar to the CowGoesMoo social media preview image?
Walgreens checker error: TypeError: Cannot read property 'press' of null
at checker (file:///Users/tmunn/src/cowGoesMoo/src/sites/walgreens.js:55:29)
at processTicksAndRejections (node:internal/process/task_queues:94:5)
at async runCheckerSafely (file:///Users/tmunn/src/cowGoesMoo/src/check.js:19:12)
at async checkAllSites (file:///Users/tmunn/src/cowGoesMoo/src/check.js:34:20)
at async startChecking (file:///Users/tmunn/src/cowGoesMoo/src/check.js:57:5)
at async start (file:///Users/tmunn/src/cowGoesMoo/src/index.js:34:5)
there's validateConfig.js
, but there's also other validation logic sprinkled in the emailer code
CVS checker also seems to have issues on MacOS. Switching to a web crawler-based approach might fix it.
Right now, repeated checks are done via recursion. But I'm worried this could lead to a slow-but-steady growth in memory usage.
The repetition could be refactored to use an iterative loop instead of recursion.
This is only needed if #6 is done
To convey how the app is used (at a glance).
e.g., multiple zip codes
When running the app locally, the expected logs aren't shown when you press CTRL+C
to exit. You only see some of the expected logs. It makes me think the shutdown code isn't set up correctly.
(to mitigate bot-like behavior)
https://github.com/RebootJeff/cowGoesMoo/wiki/Caveats#operating-a-bot
When a checker returns null
, there was likely unexpected website behavior. Ideally, the checkers are retried at least once when they fail to return a proper boolean.
It might be useful to send notifications to multiple recipients. I don't think my mom checks her email as often as I do, so I want the app to notify me in addition to her.
It just needs to be able to handle 1 recipient.
Add a feature that periodically (once per week?) sends a notification to remind the recipient that the app intends to send notification with good news ASAP. This is to prevent the recipient from forgetting that their contact info is still in use and that the app is still running.
This is especially relevant if the app is running on a server.
If an email notification is sent too often, the email sender may hit its outbox limit too easily.
There should be a config field to define how often emails can be sent.
The future of CowGoesMoo might be to simply rely on the Vaccine Spotter API rather than using Puppeteer to browse various websites. My only hesitation is that the API is "very beta". But if I were to take CowGoesMoo into this new direction, there are a couple of things to address...
The initial version of the Vaccine Spotter checker doesn't do any caching, so if there are multiple cities in the search config that are in the same state, the state-specific endpoint will be requested over and over even though it probably hasn't changed yet (i.e., CowGoesMoo will run through each city faster than Vaccine Spotter API's once-per-minute update speed).
When the Vaccine Spotter checker was first added to CowGoesMoo, there wasn't much tweaking to the notifications. Ideally, the CowGoesMoo uses the details in the Vaccine Spotter API data to provide more useful info in the CowGoesMoo notifications. For example, the email notification could show a list of vaccine providers (with availability) broken down by location.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.