GithubHelp home page GithubHelp logo

hari-nagarajan / fairgame Goto Github PK

View Code? Open in Web Editor NEW
2.4K 75.0 806.0 2.31 MB

Tool to help us buy hard to find items.

License: GNU General Public License v3.0

Python 99.50% Batchfile 0.15% Shell 0.35%

fairgame's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fairgame's Issues

Amazon not auto buying

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:

Script not adding cvv and continue past credit card page

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.

Autobuy executes twice!

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.

Best Buy Option

Is it possible to have this search BestBuy and purchase like it does with Amazon?

en_GB locale returns 409 invalid product id

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!

EVGA Auto-Checkout

This was mentioned in chat as a request. Thought I would open something up for it.

Implement a Discord webhook/bot

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.

Nvidia not logging in

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....

no_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.

  1. close all cmd windows and browser windows 2) open Chrome and go to chrome://settings/?search=cache 3) clear all browsing data (except passwords) 4) next go to Nvidia Store and login 5) once successfully logged in, close all browser windows 6) re-run the bot and it should work

If not, a few other things to try:

  1. try the script in both cmd Admin and PowerShell
  2. Check that Google is your OS default browser
  3. reboot and retry
  4. Confirm manually copy and paste of UN/PW from autobuy_config.json to cart login box successfully logs you in

Good luck!

Nvidia Captcha

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.

Question about adding international amazon stores

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?

Add cache to gitignore

I use the desktop app and it recognises all the cached files as changes, would it be possible to add them to the .gitignore file?

image

Also I don't know if this matters but your .gitignore file says /discord_config.json when the other config .json files don't have a slash

image

Autobuy disabled, but card details inputted.

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.
Screen Shot 2020-09-22 at 7 53 31 pm

Feature Request: Verify API key on start of script

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?

Chrome starts with a temp profile

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

Spoofing reCAPTCHA’s passive bot detection more reliably

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.

Bypass address suggestion not working (17:20 BST)

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;">

Capture

nvidia.de

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

Bug: Timeout exception is not caught

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'))

Amazon Checkout Issue

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.

Retry on exception?

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?

nl_nl locale is incorrect in current version

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.

Autobuy not functional

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 49 (char 50)
I keep getting this error, why?

Feature Request: Different Shipping/Billing addresses

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.

Risk of captcha incompatibilities

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?

Bug : Can't close the script

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.

Nvidia login traceback?

`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!

GUI

Its bad. I need to make it less bad.

Nvidia order window appearing as tab in existing chrome session

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.

[minor] Missing comma in telegram template

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"
}

Feature Request: Notification when adding to cart during autobuy?

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)

Adding shipping speed to the bot

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!

SSL Error normal?

Hi again,

Just woke up this morning to a surprise of another new version, you are on fire! :) You should get a donate button up, if this gets me the card, I'll happily buy you a coffee.

There is one thing I want to double check. With the new logic, I'm getting an SSL error, is this expected?

image

Need localization 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"
    }

When using Autobuy chrome immediately closes after launch.

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.

Implement Telegram Message

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).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.