StockAlertBot
Faced with the scenario of scalpers using bots to hog up all the inventory of popular holiday toys and sell them at ridiculously high markup prices, I decided to put up a fight so we can get our hands on things we need to survive the #Coronavirus quarantine(s).
Install / Use
/learn @Prince25/StockAlertBotREADME
Urgent: Developers Wanted!
Since I've been working multiple part-time jobs, I haven't had time to maintain or add new features. That is why I'm looking for developers who would like to volunteer to contribute to this project. Whether you're a JavaScript expert or you're intrigued by the idea of programming, please contact me on Discord Prince#0584 or email prince112592@yahoo.com.
<br><br>
StockAlertBot
Faced with the scenario of scalpers using bots to hog up all the inventory of popular holiday toys and sell them at ridiculously high markup prices, I decided to put up a fight so we can get our hands on things we ~~want~~ need to survive the #Coronavirus quarantine(s).
Of course, this is only half the battle. For full writeup on scoring items, look here.<br><br><br><br>
<p align="center"> Donate, buy me a <a href="https://buymeacoff.ee/PrinceSingh" target="_blank">Pizza</a> or <a href="https://paypal.me/PrinceSingh25" target="_blank">PayPal</a> me if you'd like to see this project expanded and support me. :) <br> <br> <a href="https://www.paypal.com/donate?business=3Y9NEYR4TURT8&item_name=Making+software+and+hacking+the+world%21+%E2%99%A5¤cy_code=USD" target="_blank"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" alt="Paypal me" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> <br> <br> <a href="https://www.buymeacoffee.com/PrinceSingh" target="_blank"><img src="https://i.imgur.com/H7BJq0V.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> <a href="https://www.paypal.me/PrinceSingh25" target="_blank"><img src="https://i.imgur.com/FDuYJBd.png" alt="Paypal me" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> </p>How does it work?
Enter links of the products you want tracked and how often you want the program to monitor them. When an item becomes available, you will be alerted through variety of notifications. <br>
Features
- Add links and change settings easily through a browser page
- Complete control over check intervals
- Ability to freely set monitor frequency, no limits
- Ability to space out checks if multiple items per store
- Ability to override default interval and define frequency for each store
- Proxy Support
- Automatically opens a product's URL upon restock
- Notifications
- Desktop
- SMS / Text
- Terminal
- Webhooks: Discord, IFTTT, and Slack <br>
What stores/websites are supported?
Currently, the following stores are supported:
- AntOnline
- Amazon, with ability to track stock by a particular merchant
- Argos (UK. Does not currently work with proxies)
For PS5, use the following links. Disc:https://www.argos.co.uk/product/8349000, Digital:https://www.argos.co.uk/product/8349024 - Best Buy, including open-box and packages (Does not currently work with proxies)
- Currys (UK)
- Ebuyer (UK)
- Gamestop (Does not currently work with proxies)
- Microcenter
- Newegg, including combo deals
- Target, including local stock
- Tesco (UK. Does not currently work with proxies)
- Walmart (No third party sellers)
Prerequisites
- A Terminal: (cmd (Windows), Terminal (macOS), or Console (Linux))
- Install Node.js, either LTS or Current.
- Clone or download this repository
git clone https://github.com/Prince25/StockAlertBot.git - Go to root directory
cd StockAlertBot - Install npm packages via a terminal
npm install<br><br>
Usage
There are only two steps to use this program: 1) enter information and 2) launch the program.
-
You can now enter information using two ways: via a browser (recommended) or a text editor.
Via Browser
<details> <summary>Expand</summary>- At the root directory, run on the terminal:
npm run settings
A browser window should open up. If it doesn't and the console saysServer started!, go to:http://localhost:3250/in your browser. - Enter the links of the items you want to track in the URLs tab.
- Go to Settings tab and change to your heart's content.
- Set how often you want to check the stores for given URLs and how much to space out the checks between items. It's not recommended to set it to 0 as you may be flagged as a bot. If you have 3 items (call them A, B, C) for Amazon and 2 items for Walmart (call them D, E) at 10 second interval spaced out at 2 seconds, for example, Items A and D will be checked first. 2 seconds later, items B and E will be checked. 2 seconds later, item C will be checked. The checks will start again in 8 seconds for Walmart and 10 seconds for Amazon.
- If you want to use Proxies, turn it on and create a file called
proxies.txtin theconfigfolder and fill it with one proxy per line. See proxies. - If you have Amazon link(s), you will see an option to pick a region. Select a region if you want to only monitor items sold by Amazon and not third party sellers. If you want to use a particular seller or if your region is not in the list, select
Customand provide the merchant ID. See Feedback and Support if you'd like to request a region. - If you have Target link(s), you will see additional options to put zip code and API Key. Only change the key if you get API key errors. Refer to the instructions in the following section.
- Configure notification options in Optional tab.
- If you want notifications sent to Discord, IFTTT, or Slack, expand WEBHOOKS and enter the webhook URL(s) there.
- If you want notification sent via SMS/Text, expand SMS and choose a method: Amazon Web Services, Email, or Twilio. See SMS.
- If you want notifications sent to Email, turn on email and enter your service provider information. Some providers (Yahoo, AOL, AT&T) cause problems. Refer to this section.
- Once you're happy with the settings, click
Save Settings.
config.jsonand.envfiles in theconfigdirectory should now reflect your settings.
You can useCTRL + CorCMD + Cto stop the program.
Via Text Editor
<details> <summary>Expand</summary>Open and edit
config.jsonin theconfigdirectory- Add urls of products in the
URLSarray - Change the
INTERVALto suit your desires.
You can override this default interval for any store by changingSTORE_INTERVALSin the following manner:
"STORE_INTERVALS": { "newegg": { "unit": "seconds", "value": 10 } },
WARNING: Having the interval too low might have negative consquences such as this program being detected as a bot or blocking your IP from accessing the website entirely. See proxies. SettingTIME_BETWEEN_CHECKSmight help prevent this. See step 3a from the other method for a detailed explanation and an example. - Set
OPEN_URLto false if you don't want the application to automatically open urls when item is in stock - Set
DESKTOPto false if you want to disable desktop and audible warnings - Optional Settings.
- If you're planning to track Amazon item(s), you can also set a merchant ID in
AMAZON_MERCHANT_IDto only get prices from a ceratin merchant. The other method allows you to select pre-configured IDs items only sold by Amazon depending on the region. - If you're planning to track Target item(s), enter your zip code in
TARGET_ZIP_CODE.
NOTE: If you encounter an error relating to API Key, you need to get this key yourself:- Go to target.com with the DevTools (Chrome) or Developer Tools (Firefox) open (Google or ask if you're unsure how)
- On the console, you should see GET requests as you load the page.
In DevTools, you have to click the gear and check "Log XMLHttpRequests" to see them - Click on any of the urls that has the string "key=" and copy the whole key
- Paste it to
TARGET_KEY
- If you want to send alerts to webhook URL(s) like Discord, IFTTT, or Slack, add them to
WEBHOOK_URLSarray. - If you want to use Proxies, change
PROXIEStotrueand create a file calledproxies.txtin theconfigdirectory and fill it with one proxy per line. See proxies. - If you want to send alerts to email, change
EMAILtotrue. Make a copy ofexample.envin theconfigdirectory and rename it to.env. Inside.env, type out one of the service providers (EMAIL_SERVICE) listed in Email, your email (EMAIL_FROM) and password (EMAIL_PASS) and the email you want alerts sent to (EMAIL_TO). All without quotes.
- If you're planning to track Amazon item(s), you can also set a merchant ID in
- At the root directory, run on the terminal:
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
