hari-nagarajan / fairgame Goto Github PK
View Code? Open in Web Editor NEWTool to help us buy hard to find items.
License: GNU General Public License v3.0
Tool to help us buy hard to find items.
License: GNU General Public License v3.0
Couldn't make a pull request so i'll submit this trough an issue. In nvidia.py
change the locale too:
"nl_nl": {
"signed_in_help": "NVIDIA Online winkel - Help",
"checkout": "NVIDIA Online winkel - Kassa",
"verify_order": "NVIDIA Online winkel - Bestelling controleren",
"address_validation": "NVIDIA Online winkel - Adres Validatie Suggestie pagina",
"order_completed": "NVIDIA Online winkel - Bestelling voltooid",
},
Tested and worked with 2060s. Only page that i couldn't validate was the address_validation
page.
I copied the amazon.py and edited to make it work for amazon.co.uk and amazon.de
I named them:
amazonde.py
amazoncouk.py
However when typing
python. app.py amazonuk
I get an error saying:
Usage: app.py [OPTIONS] COMMAND [ARGS]... Try 'app.py --help' for help. Error: No such command 'amazonuk'.
How can I launch those files?
With a chance that Nvidia might change the API key at will before the sale, would it be possible to let the script first check the source of the website on start-up to retrieve the (possible new) API key?
Trying to buy a 2060S seems to start chrome with a temp profile, which means that you can't really login before.
It doesn't seem to matter if chrome is running or not.
chrome://version
from a temp chrome looks like this:
Command Line "C:\Users\$USERNAME\AppData\Local\Google\Chrome\Application\chrome.exe" --disable-application-cache --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-blink-features=ShadowDOMV0 --enable-logging --log-level=0 --no-first-run --password-store=basic --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\$USERNAME\AppData\Local\Temp\scoped_dir****_******" --flag-switches-begin --flag-switches-end --enable-audio-service-sandbox data:,
Profile Path C:\Users\$USERNAME\AppData\Local\Temp\scoped_dir****_******\Default
I am based in the UK, so "https://store.nvidia.com/DRHM/store?Action=Logout&SiteID=nvidia&Locale=en_GB&ThemeID=326200&Env=BASE&nextAction=help" doesn't work for me.
Maybe based on locale, not sure on the correct url for the uk.
Strange behavior appeared today, where CTRL+C or CTRL+D is not able to kill the script anymore (at least on Windows).
Also with the 2060S the script keeps lookings for more to buy after it founds one.
Request for enhancement ability of bot to add to cart items that show as Pre-Order on Best Buy or Amazon. This will allow a chance to scan for xbox series x console preorders tomorrow 9/22/2020.
example BB: https://www.bestbuy.com/site/cyberpunk-2077-standard-edition-xbox-one-xbox-series-x/6255136.p?skuId=6255136
example Amazon: https://www.amazon.com/Cyberpunk-2077-PlayStation-4/dp/B07DJWBYKP/
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 49 (char 50)
I keep getting this error, why?
Current behaviour is that when autobuy is enabled, we only get notifications if checkout completes.
Would it be possible to add a notification trigger on adding item to cart even if autobuy is enabled? This would help to alert us if autobuy fails for whatever reason (captcha/timeouts etc)
Post your thoughts and ideas on how we want to deal with the different ways nvidia could implement a captcha. They currently do not have one.
On commit debd8f57daac30c1f14b234cda649d6908818ea0. The script loads the order page but there's no place to enter the cvv although the stored card is selected. You have to click continue to see the cvv field after the page returns an error. This has been the behavior of the checkout page for awhile. I'm not sure why they designed it like that where the cvv field only shows after submitting the form with the stored card.
FYI: This is with full autobuy enabled.
Filled out my NVIDIA profile, complete with a billing and shipping address, in addition to my card number.
However still getting this error on launching the bot:
ERROR: "2020-09-22 19:53:02,619 - No payment option on account or missing CVV. Disable Autobuy
My autobuy_config.json file looks like this:
{
"NVIDIA_LOGIN": "[redacted]",
"NVIDIA_PASSWORD": "[redacted]",
"FULL_AUTOBUY":false,
"CREDITCARD_NUMBER":"XXXX XXXX XXXX 87XX",
"CREDITCARD_EXP":"07/20XX",
"CREDITCARD_SECURITY_CODE":"XXX",
"AUTOBUY_COUNTRY_SELECT":"",
"BYPASS_ADDRESS_SUGGESTION":false
}
Login works fine otherwise.
Attached is the screenshot of what my NVIDIA profile looks like.
Its bad. I need to make it less bad.
FYI this is on a mac.
Used to work correctly in that a new window and chrome session would be open each time the order page was loaded. Now it just opens a new tab in an existing chrome session, usually one I'm using to browse. If I have multiple chrome windows open it'll choose one and I'll have to hunt for where the tab opened. Can you have it so that it simply opens a new window? Thanks.
I don't know how hard it is, but a Discord webhook for a personal server or even better a DM from a bot that's hosted locally would be greatly appreciated.
In the autobuy feature it would be nice if you could select what shipping you want when you're checking out in the autobuy_config.json file. Just wanted to throw that idea out there!
(nvidia-bot2-N-x_5dcQ) C:\Users\Jake\PycharmProjects\nvidia-bot2>python app.py
tkinter did not import successfully. Please check your setup.
I setup everything just like instructed but keep getting this error when running app.py?
Thanks for the CVV fix for GB locale. Unfortunately the "Use this address" bypass isn't working on the next page.
I hope the following info is useful for you.
Page Title: "<title>NVIDIA Online Store - Address Validation Suggestion Page</title>"
Form Container div ID: "#dr_suggestionForm"
Button:
<input id="selectionButton" type="button" class="dr_button" value="Use this address" onclick="setDefaultRadioValuesWhenNoSuggestOption(true,false);javascript:document.suggestionForm.submit();q=false;" style="display: inline-block;">
Nevermind! Sorry!
When testing the EVGA bot after solving the captcha about 8 times in a row I get this error in the captcha window.
Your computer or network may be sending automated queries to protect our users we can't process your request right now?
Thankfully my whole network isn’t flagged just my selenium browser instances, but I’m thinking theres probably some settings we could set to prevent something like this. I tried using a random user agent which was suggested online, but that didn’t help.
Maybe preserving reCAPTCHA’s cookies might help.
We have some logic in Selenium for the login workflow and the final bits of the checkout workflow where we check the page title to ensure we are on the right page. These page titles vary based on localization. I need your help to get the page titles for each localization.
https://github.com/Hari-Nagarajan/nvidia-bot/blob/master/stores/nvidia.py#L72-L143
"fr_be": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"es_es": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"fr_fr": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"it_it": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"nl_nl": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"sv_se": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"de_de": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"de_at": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
},
"en_gb": {
'signed_in_help': "NVIDIA Online Store - Help",
'checkout': "NVIDIA Online Store - Checkout",
'verify_order': "NVIDIA Online Store - Verify Order",
'address_validation': "NVIDIA Online Store - Address Validation Suggestion Page",
'order_completed': "NVIDIA Online Store - Order Completed"
}
What GPU are you after?: 2060S
What locale shall we use? [en_us]: en_gb
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products?pageNumber=2 : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products?pageNumber=3 : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products?pageNumber=4 : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products?pageNumber=5 : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products?pageNumber=6 : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products?pageNumber=7 : DEBUG -stores.nvidia
19092020 05:20:59 AM : 200 : DEBUG -stores.nvidia
19092020 05:20:59 AM : Checking stock for NVIDIA GEFORCE RTX 2060 SUPER... : INFO -stores.nvidia
19092020 05:21:00 AM : Calling https://api.digitalriver.com/v1/shoppers/me/products/5379432500/inventory-status? : DEBUG -stores.nvidia
19092020 05:21:06 AM : Returned 200 : DEBUG -stores.nvidia
19092020 05:21:06 AM : Stock status is PRODUCT_INVENTORY_IN_STOCK : INFO -stores.nvidia
19092020 05:21:06 AM : Getting session token : DEBUG -stores.nvidia
19092020 05:21:06 AM : 200 : DEBUG -stores.nvidia
19092020 05:21:06 AM : Adding to cart : DEBUG -stores.nvidia
***19092020 05:21:06 AM : b'{"errors":{"error":[{"relation":"https://developers.digitalriver.com/v1/shoppers/LineItemsResource","code":"invalid-product-id","description":"Could not find a Product resource with an id of 5379432500"}]}}' : DEBUG -stores.nvidia***
19092020 05:21:06 AM : 409 : DEBUG -stores.nvidia
Please see the ***'d line, using 2060S to check if it's working.
en_gb
en_GB
en-gb
all fail, not sure if I'm just getting the locale wrong or if I'm missing something? Thank you for the hard work!
Using the bot without an autobuy config will open the chrome browser just fine and add a 2060s into a cart on the Nvidia website when testing. When having an autobuy config (without comments), thereby enabling autobuy, the bot will detect that the 2060s is in stock, open a chrome window, and then immediately close it. The bot then continues on a loop of saying that the 2060s is not in stock even though it is.
I am using the latest official version of chrome. I have tried reinstalling chrome on this windows machine and attempting to use the bot on a different mac machine with the same results. It has to be something to do with the implementation of opening chrome between autobuy being enabled and not.
Here is a screenshot of command prompt: https://cdn.discordapp.com/attachments/756730877785931935/757484444352380948/qb0TUzR.png
Edit: Problem was fixed with latest release.
I tested it on some starbursts and it clicked buy it now, but not the place your order button on the pop up it creates.
INFO: "2020-09-20 14:32:12,262 - Attempting to buy item for 12
INFO: "2020-09-20 14:32:12,664 - Clicking 'Buy Now'.
DEBUG: "2020-09-20 14:32:14,953 - Went to check out page.
Traceback (most recent call last):
File "C:\Users\Zach\nvidia-bot\stores\amazon.py", line 95, in buy_now
place_order = WebDriverWait(self.driver, 2).until(
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "app.py", line 225, in
cli.main()
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\Zach\nvidia-bot\cli\cli.py", line 62, in amazon
amzn_obj.run_item(item_url=amazon_item_url, price_limit=amazon_price_limit)
File "C:\Users\Zach\nvidia-bot\stores\amazon.py", line 83, in run_item
self.buy_now()
File "C:\Users\Zach\nvidia-bot\stores\amazon.py", line 100, in buy_now
place_order = WebDriverWait(self.driver, 2).until(
File "C:\Users\Zach.virtualenvs\nvidia-bot-AeXYW4nJ\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Is it possible to have this search BestBuy and purchase like it does with Amazon?
Nvidia has announced that they will be adding a captcha system to the checkout. https://www.nvidia.com/en-us/geforce/news/rtx-3080-qa/
Therefore as it is, I belive the browser launches in a manner that prevents various images from loading, therefore captcha will not function.
With this announcement I highly doubt that they will restock without the captcha in place, therefore we need to have images loading correctly to allow the captcha to function.
Is this possible?
Missing comma at the end of the "BOT_TOKEN" line.
That could make non-dev adoption a bit harder.
{
"BOT_TOKEN" : "1234567890:abcdefghijklmnopqrstuvwxyz",
"BOT_CHAT_ID" : "111222333"
}
The whole process works fine but when amazon loads up in the newer browser and logs in it then asks for email confirmation or a captcha, the script then does an auto refresh which ruins the whole script since when it would find the thing in stock instead of checking out it'd just click on sign in again.
Justin reported this issue on the discord
I was able to recreat it.
It says "still working"
Even though it should alert us that its in stock and / or buy it.
https://discordapp.com/channels/756730877509369906/756730877785931935/757927220999225424
Thank you for creating this 🥇 Is it possible to make this work for nvidia.de for a 3090? I've no idea how any of this works
This was mentioned in chat as a request. Thought I would open something up for it.
If I was good at Python I would do it myself, but I've look into it and am failing at the moment. Time is scarce in order to get a RTX 3080, so maybe you can do it much quicker:
Would it be possible to let a Telegram Bot send a message? It very easy to create your own bot, then the script would only need the API and the chatid (which chat or group it needs to send the message to).
Not really an issue with the code, but what are your thoughts on the change NVIDIA might change the Digital River API key?
Opening this issue here per Hari, for this functionality.
I just tested autobuy with a test CC and it executed twice due to the 2060 having two different Product IDs, is this expected behaviour? If not this is an issue, I don't wanna end up with two cards.
Update: see fix below if you experience this issue
2060s en_us as test > script successfully adds 2060s and Rainbow 6 Siege to cart and sends discord notif
However, doesn't login....
Troubleshooting:
Update: If you experience this issue, try these steps first They require that you have successfully setup your Nvidia Store (not Nvidia.com) login.
If not, a few other things to try:
Good luck!
Hello, running nvidia-bot and sometimes it crashes after a random period of time, instead of catching the exception and retrying in the next period. e.g. this following log came after around 20 minutes, but sometimes it can run overnight without problems.
Running on Mac.
❯ uname -a
Darwin 19.6.0 Darwin Kernel Version 19.6.0: Thu Jun 18 20:49:00 PDT 2020; root:xnu-6153.141.1~1/RELEASE_X86_64 x86_64
❯ pip freeze
aiohttp==3.6.2
async-timeout==3.0.1
attrs==20.2.0
certifi==2020.6.20
chardet==3.0.4
chromedriver-py==85.0.4183.87
click==7.1.2
colorama==0.4.3
discord-webhook==0.9.0
furl==2.1.0
halo==0.0.30
idna==2.10
log-symbols==0.0.14
multidict==4.7.6
orderedmultidict==1.0.1
prompt-toolkit==3.0.7
pycryptodome==3.9.8
PyJWT==1.7.1
pytz==2020.1
questionary==1.5.2
requests==2.24.0
selenium==3.141.0
six==1.15.0
slackclient==2.9.0
spinlog==0.3.0
spinners==0.0.24
termcolor==1.1.0
twilio==6.45.2
typing-extensions==3.7.4.3
urllib3==1.25.10
wcwidth==0.2.5
yarl==1.5.1
❯ git rev-parse HEAD
b88b34d5e2368d9eb7980759df6807408eb120d8
Terminal log:
❯ python3 app.py nvidia
? What GPU are you after? 3080
? What locale shall we use? en_gb
INFO: "2020-09-22 18:27:16,199 - Initializing notification handlers
INFO: "2020-09-22 18:27:16,200 - Enabled Handlers: []
INFO: "2020-09-22 18:27:16,200 - Opening Webdriver
INFO: "2020-09-22 18:27:18,369 - Signing in.
INFO: "2020-09-22 18:27:19,668 - Adding driver cookies to session
INFO: "2020-09-22 18:27:19,668 - Getting product IDs
INFO: "2020-09-22 18:27:20,956 - We have 1 product IDs for NVIDIA GEFORCE RTX 3080
INFO: "2020-09-22 18:27:20,957 - Product IDs: {5438792800}
INFO: "2020-09-22 18:27:20,957 - Checking stock for 5438792800 at 3 second intervals.
Traceback (most recent call last):
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 677, in urlopen
chunked=chunked,
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 426, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 421, in _make_request
httplib_response = conn.getresponse()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/client.py", line 1321, in getresponse
response.begin()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/client.py", line 296, in begin
version, status, reason = self._read_status()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/client.py", line 257, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socket.py", line 589, in readinto
return self._sock.recv_into(b)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/ssl.py", line 1052, in recv_into
return self.read(nbytes, buffer)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/ssl.py", line 911, in read
return self._sslobj.read(len, buffer)
ConnectionResetError: [Errno 54] Connection reset by peer
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 727, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/util/retry.py", line 403, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/packages/six.py", line 734, in reraise
raise value.with_traceback(tb)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 677, in urlopen
chunked=chunked,
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 426, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/urllib3/connectionpool.py", line 421, in _make_request
httplib_response = conn.getresponse()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/client.py", line 1321, in getresponse
response.begin()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/client.py", line 296, in begin
version, status, reason = self._read_status()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/http/client.py", line 257, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/socket.py", line 589, in readinto
return self._sock.recv_into(b)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/ssl.py", line 1052, in recv_into
return self.read(nbytes, buffer)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/ssl.py", line 911, in read
return self._sslobj.read(len, buffer)
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "app.py", line 5, in <module>
cli.main()
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/jeremychan/GitHub/nvidia-bot/cli/cli.py", line 32, in nvidia
nv.run_items()
File "/Users/jeremychan/GitHub/nvidia-bot/stores/nvidia.py", line 313, in run_items
log.info(fut.result())
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/Users/jeremychan/GitHub/nvidia-bot/stores/nvidia.py", line 322, in buy
while not self.add_to_cart(product_id) and self.enabled:
File "/Users/jeremychan/GitHub/nvidia-bot/stores/nvidia.py", line 429, in add_to_cart
DIGITAL_RIVER_ADD_TO_CART_API_URL, headers=DEFAULT_HEADERS, params=params
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/requests/sessions.py", line 578, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/Users/jeremychan/.local/share/virtualenvs/nvidia-bot-1-ZZV8bi/lib/python3.7/site-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer'))
Thanks for creating this tool! Great work, however i have an issue once in a while which makes the script stop making new requests. Is it possible that the script automatically retries after an error?
raise RetryError(e, request=request)
requests.exceptions.RetryError: HTTPSConnectionPool(host='api.digitalriver.com', port=443): Max retries exceeded with url: /v1/shoppers/me/products/5438796700/inventory-status?apiKey=9485fa7b159e42edb08a83bde0d83dia&locale=nl_nl (Caused by ResponseError('too many 429 error responses'))
Edit; it's a rate limit, maybe lowering the request frequency?
Would be great to test notification support so that we can be sure they're setup correctly :)
`DevTools listening on ws://127.0.0.1:62031/devtools/browser/0241f930-8d8f-43a8-b449-d4778173ffff
INFO: "2020-09-21 09:25:36,874 - Signing in.
Traceback (most recent call last):
File "app.py", line 5, in
cli.main()
File "C:\Users\Administrator.conda\envs\nvidia2\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "C:\Users\Administrator.conda\envs\nvidia2\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Users\Administrator.conda\envs\nvidia2\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\Administrator.conda\envs\nvidia2\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\Administrator.conda\envs\nvidia2\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\Administrator\Desktop\nvidia-bot-master\cli\cli.py", line 30, in nvidia
nv = NvidiaBuyer(gpu, locale)
File "C:\Users\Administrator\Desktop\nvidia-bot-master\stores\nvidia.py", line 217, in init
self.sign_in()
File "C:\Users\Administrator\Desktop\nvidia-bot-master\stores\nvidia.py", line 516, in sign_in
email.send_keys(self.nvidia_login)
AttributeError: 'NvidiaBuyer' object has no attribute 'nvidia_login'
C:\Users\Administrator\Desktop\nvidia-bot-master>[28208:29372:0921/092542.839:ERROR:device_event_log_impl.cc(208)] [09:25:42.839] Bluetooth: bluetooth_adapter_winrt.cc:1164 RequestRadioAccessAsync failed: RadioAccessStatus::DeniedByUserWill not be able to change radio power.`
I'm using the version that was posted 22 mins ago. Thank you for the help and great utility!
Currently the bot auto defaults into using the same shipping and billing address. To use different shipping/billing addresses all you need to do is press one button and everything can be populated similarly to the billing address.
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.