This bot helps us buy Nvidia Founders Edition GPUs as soon as they become available.
Note: This project is no longer being actively maintained. Nvidia stopped selling Founders Edition cards through their own store and transitioned to exclusively selling via 3rd-party retailers. To buy from those 3rd-party retailers, you can check out other projects like streetmerchant or fairgame.
- Continuously monitor the availability of target GPU on www.nvidia.com
- Automatically checkout item using PayPal or as guest (credit card)
- Automatically submit the order for credit card payment
- Support for multiple locales (as defined in
config/customer.json
) - Support for multiple GPUs (as defined in
data/gpus.json
)
- GeForce RTX 3090
- GeForce RTX 3080
- GeForce RTX 3070
- NVIDIA TITAN RTX
- GeForce RTX 2080 Super
- GeForce RTX 2070 Super
- GeForce RTX 2060 Super
To run the bot, we need the following things:
- Python 3.8
- Pipenv
- Firefox
sudo apt install firefox python3 pipenv
cd nvidia-sniper
pipenv install
- Install the latest version of Firefox
- Install brew package manager
- Install Pipenv using
brew install pipenv
- Navigate to project directory using
cd nvidia-sniper
- Install project dependencies using
pipenv install
- Check if you already have a Python 3.8 installation by opening Windows PowerShell and executing
python --version
- If you see
Python 3.8.0
or higher, skip to step 4, otherwise continue to step 2
- If you see
- Install the latest Python 3.8 for Windows
- Click
Add Path
at the bottom of the first installation page.
- Click
- Install the latest version of Firefox
- Exit all PowerShell windows, then open a new PowerShell and install Pipenv using
pip install pipenv
- Navigate to project directory
- If you downloaded (using git clone, or ZIP and extract) the project to
C:\Users\user\Documents\nvidia-sniper
, then use the following command:cd C:\Users\user\Documents\nvidia-sniper
- If you downloaded (using git clone, or ZIP and extract) the project to
- Install project dependencies using
pipenv install
- Install curses for Windows using
pipenv install windows-curses
If step 6 results in `pipenv : The term 'pipenv' is not recognized`
- Setup a virtual environment using
python -m venv .venv
- Ensure you have the latest Python version using
python -m venv --upgrade .venv
- Activate the virtual environment using
.venv/Scripts/activate
- Install
pipenv
again usingpip install pipenv
- Install project dependencies using
pipenv install
- Install curses for Windows using
pipenv install windows-curses
If you get `python : The term 'python' is not recognized` even after installing Python 3.8
- Open the Start menu and enter
PATH
, then press Enter - Click the
Environment Vairables...
button - In the
User variables for user
section, click the variablePath
, then click theEdit...
button - A new window called
Edit environment variable
will pop up, ensureC:\Users\<username>\AppData\Local\Programs\Python\Python38\Scripts
andC:\Users\<username>\AppData\Local\Programs\Python\Python38
exists in this list, where<username>
is your username in Windows - If these paths are not in the list, add them using the
New
button - Remove all other PATHs which contain anything to do with Python, Pip, or Idle by clicking them, then clicking the
Delete
button - Click
OK
to close theEdit environment variable
window - Click
OK
to close theEnvironment Variables
window - Click
OK
to close theSystem Properties
window
This bot is equipped with the ability to resolve simple reCAPTCHA on its own without the use of a third party reCAPTCHA solver. As long as you follow the recommendation in the usage section below, it is extremely likely that the bot will succesfully complete the full auto-checkout process. With that said, there is a very small possibility that you will be presented with a more advanced reCAPTCHA requiring solving image tasks that the bot cannot handle natively. If you would like to have a backup in place for that possibility, you have that option by following the steps below.
-
Download the ReCaptcha Solver extension using the link https://addons.mozilla.org/firefox/downloads/file/3423472/recaptcha_solver-5.7-fx.xpi. If you open this link in Firefox, it will automatically attempt to add the extension to your browser. That's not what we want. Right click the link and select "Save link as" to download the *.xpi file or try opening the link in a browser other than Firefox.
-
Put the *.xpi file inside the root of the
nvidia-sniper
directory. -
Create an account using one of ReCaptcha Solver's supported APIs, ex. 2captcha. Deposit money into your account. A few ๐ต should be enough.
-
Start the bot as per the instructions in the Usage section. After you go through the bot's selection process, you should see the ReCaptcha Solver extension in the browser.
-
Copy your API key from the provider of your choice. Add this key to the extension. Also, enable the checkboxes as shown below.
To update nvidia-sniper
use, git pull
or download a fresh .zip
archive from GitHub.
Make sure to back up the customer.json
in advance as it might get replaced in the process.
To use the bot, fill out config/customer.json
and run the script.
cd nvidia-sniper
pipenv run python -m sniper
It is highly recommended that you use Firefox as your default browser and use it to log into Google services such as YouTube or Gmail. This dramatically reduces the possibility of reCAPTCHA requiring you to pass an image challenge during the bot's operation, thus enabling a fully automatic checkout without the need for manual intervention.
In the config
folder a customer.json
file and notifications.json
file are used to configure the data used to auto fill the forms and to configure the bots notifications. To get started, copy and rename the two template files and customize the fields to your liking.
The bot can send multiple push notifications, including a screenshot attachment along the checkout process. See https://github.com/caronc/apprise#supported-notifications for more information. Add additional entries to the services
dictionary in the notifications.json
file for multiple providers. For each notification, a custom message
can be set. Additionally, the screenshot
attachment can be toggled per provider.
A couple of example URLs for different notification services:
pover://user@token
: Pushovertgram://bottoken/ChatID
: Telegramdiscord://webhook_id/webhook_token
: Discord
In the customer.json
file you can configure your locale and the field contents used for auto-filling the checkout forms. Some fields require specific values.
The locale
field can have the following values:
de-at
: Austriafr-be
: Belgiumen-ca
: Canadacs-cz
: Czech Republicda-dk
: Denmarkfi-fi
: Finlandfr-fr
: Francede-de
: Germanyit-it
: Italynl-nl
: Netherlandsnb-no
: Norwaypl-pl
: Polandes-es
: Spainsv-se
: Swedenen-gb
: United Kingdomen-us
: United States
The speed
field can have the following values:
shippingOptionID2
: Standard GroundshippingOptionID3
: Next Business day AfternoonshippingOptionID4
: Second Business Day Afternoon
There has been a common issue related to shipping speeds not being available when cards are available.
true
: (Default) Fallback to using the standard shipping speed when the desired speed isn't availablefalse
: Stop the bot from continuing with checkout
The country
field can have the following values:
AT
: AustriaBE
: BelgiumCA
: CanadaCZ
: Czech RepublicDK
: DenmarkFI
: FinlandFR
: FranceDE
: GermanyIT
: ItalyNL
: NetherlandsNO
: NorwayPL
: PolandES
: SpainSE
: SwedenGB
: United KingdomUS
: United States
For en-us
and en-ca
locale, the state
field can have the following values:
AL
: AlabamaAK
: AlaskaAB
: AlbertaAS
: American SamoaAZ
: ArizonaAR
: ArkansasAA
: Armed Forces AmericaAE
: Armed Forces EuropeAP
: Armed Forces PacificBC
: British ColumbiaCA
: CaliforniaCO
: ColoradoCT
: ConnecticutDE
: DelawareDC
: District Of ColumbiaFM
: Federated States of MicronesiaFL
: FloridaGA
: GeorgiaGU
: GuamHI
: HawaiiID
: IdahoIL
: IllinoisIN
: IndianaIA
: IowaKS
: KansasKY
: KentuckyLA
: LouisianaME
: MaineMB
: ManitobaMH
: Marshall IslandsMD
: MarylandMA
: MassachusettsMI
: MichiganMN
: MinnesotaMS
: MississippiMO
: MissouriMT
: MontanaNE
: NebraskaNV
: NevadaNB
: New BrunswickNH
: New HampshireNJ
: New JerseyNM
: New MexicoNY
: New YorkNL
: Newfoundland and LabradorNC
: North CarolinaND
: North DakotaMP
: Northern Mariana IslandsNT
: Northwest TerritoriesNS
: Nova ScotiaNU
: NunavutOH
: OhioOK
: OklahomaON
: OntarioOR
: OregonPW
: PalauPA
: PennsylvaniaPE
: Prince Edward IslandPR
: Puerto RicoQC
: QuebecRI
: Rhode IslandSK
: SaskatchewanSC
: South CarolinaSD
: South DakotaTN
: TennesseeTX
: TexasUT
: UtahVT
: VermontVI
: Virgin IslandsVA
: VirginiaWA
: WashingtonWV
: West VirginiaWI
: WisconsinWY
: WyomingYT
: Yukon
nvidia-sniper's People
Forkers
vp-regular joshuahiggins mickeygen roseninc callmeref mr-sour agentscreech soomld realxero communism3090 gpadiernos krcm0209 russellocean paulforgione ericchansen cajunb locmai0808 slutfarm brandacus nediah krnl-panic cturner44 artkomma senaxx hwamil beardeddonuteth ragergard lcxiv kellerfelix yannickpschroeder oriddlero mrzoops teeksy meced013 bikramjitnarwal donfanning dsbro jverecken fishgills jonah-chen fredpies bstepanian-plutotv jeffastringer coldblackice nwf1115 p1n4ttsu itssujeeth sofia-pika dei-ex-makina c0dem0use doringraf mikthedude kineroo tedens yfove kafagy peru3232 markidubh olimorgans123 pandaxbacon darkarcanine alecmeelan charleslabri cam-rimmer goldcut66 xbaronn zhan2an-g originalevo danparsons cbristow123 nyrroz mnelson104 ezatelsaid bdamisch defianceblack tiller431 eschleiff jackp4421 law2004 tubbz-alt foontzoot doublecc161 lovemybaby nikfin nightspite nick-t-nguyen rk16449 smartlin5228 turbo2025 701789262a ferdinand-popp 0xsammy cynicalwilson tinikaprice royvb-git insuxrebhi meawinsnamsmonvidia-sniper's Issues
Checking en-us availability for RTX 3090 using API...
Fails every time with "failed to locate digital River ID on product page"
The selenium check seems to work okay though.
Bug, or is something else going on?
API Possible Change
Why
Why the fuck would you make this? this is just a contributor to destroying the GPU market...
Issues with Notifications
Hello,
For some reason I keep on getting this error:
ERROR:root:Error while parsing the notification configuration file, check config/notifications.json for syntax errors and fix them to continue.
Here is my notifications.json config file (I inserted the corresponding values into INSERT_HERE.):
"notifications": {
"started": {
"message": "Nvidia Sniper Started! ๐น๏ธ",
"enabled": true
},
"availability": {
"message": "Quick, before it is gone! ๐โโ๏ธ",
"enabled": true
},
"add-to-basket": {
"message": "Locked and loaded! ๐ซ",
"enabled": true
},
"checkout": {
"message": "Checkout complete! โ
",
"enabled": true
},
"submit": {
"message": "SNIPED! ๐ฏ",
"enabled": true
},
"captcha-fail": {
"message": "Failed to CAPTCHA that card! ๐ค",
"enabled": true
}
},
"services": {
"apprise-1": {
"url": "discord://INSERT_HERE/INSERT_HERE",
"screenshot": true
}
}
}
[BUG] Bot crashes after filling out adress and before filling out CC details (de)
I tested several times with the RTX 2060s which is in stock on the german nvidia store.
It added to cart
entered the Adresse
and then entered the credit card number
but it crashes before filling the expiration date of the CC (its two different dropdown menus)
info stays blank and the bot crashes with this error log:
Traceback (most recent call last):
File "c:\users\johnc\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main
return run_code(code, main_globals, None,
File "c:\users\johnc\appdata\local\programs\python\python38\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\JohnC\Documents\GitHub\nvidia-sniper\sniper_main.py", line 254, in
loop.run_until_complete(main())
File "c:\users\johnc\appdata\local\programs\python\python38\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "C:\Users\JohnC\Documents\GitHub\nvidia-sniper\sniper_main.py", line 220, in main
nvidia.checkout_guest(
File "C:\Users\JohnC\Documents\GitHub\nvidia-sniper\sniper\nvidia.py", line 246, in checkout_guest
fill_out_form(driver, timeout, customer)
File "C:\Users\JohnC\Documents\GitHub\nvidia-sniper\sniper\nvidia.py", line 187, in fill_out_form
month_select.select_by_value(customer['credit']['expiration']['month'])
File "C:\Users\JohnC.virtualenvs\nvidia-sniper-EfFatCyt\lib\site-packages\selenium\webdriver\support\select.py", line 87, in select_by_value
raise NoSuchElementException("Cannot locate option with value: %s" % value)
selenium.common.exceptions.NoSuchElementException: Message: Cannot locate option with value: 02
Testing
Hello how do i test it without actually buying the rtx2060? Thank you.
Could you please add VAT/UID Number and Business Checkout?
It would be very cool, when you can do this in your next build.
API Inventory Failure 28th Sept
Looks like the api has changed again? Is this something we can fix?
2020-09-28 23:04:02,066 nvidia-sniper: Failed to get inventory status for 5438792700
Traceback (most recent call last):
File "/Users/<username>/Documents/nvidia-sniper/sniper/__main__.py", line 47, in checkout_api
inventory = await api.get_inventory_status(session, dr_locale, api_currency, dr_id)
File "/Users/<username>/Documents/nvidia-sniper/sniper/api.py", line 22, in get_inventory_status
json_resp = await response.json()
File "/Users/<username>/.local/share/virtualenvs/nvidia-sniper-V5mCHnvd/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1026, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html', url=URL('https://api-prod.nvidia.com/direct-sales-shop/DR/products/en_gb/GBP/5438792700')
feature request: automatically bring firefox into focus if recaptcha challenge intervention is necessary
Background
Some people do not have enough screen real estate to keep Firefox visible at all times, especially if they use the same PC for work and need to have other windows open and over top of Firefox. One could potentially miss out on a card if Sniper needs recaptcha challenge input and the user doesn't hear the notification(s).
Proposal
Update Sniper so that it has the capability to bring the Firefox window back into focus, above other windows, if it encounters a recaptcha challenge for which it needs manual intervention.
30xx only being listed at Best Buy. BB support?
What's the plan here? Nvidia said they are no longer listing founder edition cards on their website and they will be exclusively listed on Best buy. Without Best buy functionality this bot will no longer be able to acquire cards for us. Are there plans to integrate Best buy purchasing support? Even if we can't get full purchasing support just getting a cart URL would be great.
Could you please add address line 2
Unfortunately when checking out i need address line 2 in order for the company im reshipping with to my location to know the parcel is allocated to me / my locker kind of thing. If you could add this that would be fricken amazing, many thanks!
login support?
i have nvidia.com account with previous purchase history, credit card, and shipping address. i have saved my login credentials in the browser. is there anyway use this saved credentials in the browser and login when checking out and automatic purchasing?
Canada locale in documentation showing en-us instead of en-ca
Just wanted to make sure this was intentional, as when I visit the shop from Canada, the URL is showing https://www.nvidia.com/en-ca/ instead. Should I use en-ca
, or is en-us
the correct locale?
Issues with Notifications Again
Hello,
I am still receiving the same issues with notifications. On my last issue, I had accidentally copied and pasted my JSON wrong. I have verified my JSON with jsonlint and it's valid.
ERROR:root:Error while parsing the notification configuration file, check config/notifications.json for syntax errors and fix them to continue.
{
"notifications": {
"started": {
"message": "Nvidia Sniper Started! ๐น๏ธ",
"enabled": true
},
"availability": {
"message": "Quick, before it is gone! ๐โโ๏ธ",
"enabled": true
},
"add-to-basket": {
"message": "Locked and loaded! ๐ซ",
"enabled": true
},
"checkout": {
"message": "Checkout complete! โ
",
"enabled": true
},
"submit": {
"message": "SNIPED! ๐ฏ",
"enabled": true
},
"captcha-fail": {
"message": "Failed to CAPTCHA that card! ๐ค",
"enabled": true
}
},
"services": {
"apprise-1": {
"url": "discord://INSERT_HERE/INSERT_HERE",
"screenshot": true
}
}
}
SyntaxError: invalid syntax
Hello there . Me again. I uploaded the main.py file you updated 1 hour ago. I am getting the following error:
Traceback (most recent call last):
File "c: \ users \ pc \ appdata \ local \ programs \ python \ python38 \ lib \ runpy.py", line 185, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details (mod_name, _Error)
File "c: \ users \ pc \ appdata \ local \ programs \ python \ python38 \ lib \ runpy.py", line 144, in _get_module_details
return _get_module_details (pkg_main_name, error)
File "c: \ users \ pc \ appdata \ local \ programs \ python \ python38 \ lib \ runpy.py", line 155, in get_module_details
code = loader.get_code (mod_name)
File "", line 916, in get_code
File "", line 846, in source_to_code
File "", line 219, in call_with_frames_removed
File "C: \ nvidia-sniper \ sniper \ __ main.py", line 6
<! DOCTYPE html>
^
SyntaxError: invalid syntax
What should I do ?
bug: Selenium error when running on Arch or Gentoo flavor of linux
There is a bug in geckodriver where any system that replaces /usr/bin/firefox with a script that executes the real binary will fail
Failure will present like this
[WDM] - Driver [/home/<USER>/.wdm/drivers/geckodriver/linux64/v0.27.0/geckodriver] found in cache
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/<USER>/projects/nvidia-sniper/sniper/__main__.py", line 46, in <module>
driver = webdriver.create()
File "/home/<USER>/projects/nvidia-sniper/sniper/webdriver.py", line 38, in create
return webdriver.Firefox(firefox_profile=profile, executable_path=GeckoDriverManager().install())
File "/home/<USER>/.local/share/virtualenvs/nvidia-sniper-g1iyIxjU/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
RemoteWebDriver.__init__(
File "/home/<USER>/.local/share/virtualenvs/nvidia-sniper-g1iyIxjU/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/<USER>/.local/share/virtualenvs/nvidia-sniper-g1iyIxjU/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/<USER>/.local/share/virtualenvs/nvidia-sniper-g1iyIxjU/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/<USER>/.local/share/virtualenvs/nvidia-sniper-g1iyIxjU/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
It is mentioned here:
SeleniumHQ/selenium#8604
Despite the last comment there, upstream doesn't seem to be tracking it at geckodriver. Adding the path to the actual firefox binary into $PATH works around the issue on Gentoo Linux. In specific, I can launch nvidia sniper using PATH="/usr/lib64/firefox:$PATH" pipenv run python -m sniper
.
Question about "country"
First of all you my friend are a hero for doing this so thank you.
In the customer.json billing section my country is not listed and on Nvidia site i can choose "not applicable" so im not sure how to type that in the json since it uses US/DE etc format?
And how do I test it if it's working correctly after I'm done setting everything up?
Post Code not automatically converted to correct format
Noticed that order didn't go ahead and froze the script due to UK postcode not having a space in the middle of it. Would be useful if either postcodes were automatically formatted to the correct format accepted by the site, or put it in the read me file a notification for users to check what format their postcode needs to be in on the site before writing it into the customer.json file.
Blank Screenshots
captcha at final submit page
Checking Availability via API error
The below has started to show this evening. Selenium seems to work fine:
2020-10-01 21:32:16,581 nvidia-sniper: Checking en-gb availability for GeForce RTX 3080 using selenium...
2020-10-01 21:32:23,142 nvidia-sniper: GPU currently not available
2020-10-01 21:32:23,142 nvidia-sniper: Checking en-gb availability for GeForce RTX 3080 using API...
2020-10-01 21:32:42,781 nvidia-sniper: Failed to get inventory status for 5438792800
Traceback (most recent call last):
File "C:\nvidia-sniper\sniper_main_.py", line 49, in checkout_api
inventory = await api.get_inventory_status(session, dr_locale, api_currency, dr_id)
File "C:\nvidia-sniper\sniper\api.py", line 22, in get_inventory_status
json_resp = await response.json()
File "C:\Users<username>.virtualenvs\nvidia-sniper-Fu40Ck5x\lib\site-packages\aiohttp\client_reqrep.py", line 1026, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html', url=URL('https://api-prod.nvidia.com/direct-sales-shop/DR/products/en_gb/GBP/5438792800')
Alternate shipping caused order to fail
During last drop. the sniper crashed because css wasn't properly loaded (probably due to server load), this caused the alternative shipping address to fail and make the script crash.
I would suggest a feature where alternative shipping is disabled, this would also speed up the bot as 99% will eventually use the same invoice as shipping address.
Trace of the crash
2020-10-01 20:06:22,670 nvidia-sniper: Checking out as guest...
2020-10-01 20:06:24,534 nvidia-sniper: Sent Pushover notification to ALL_DEVICES.
Traceback (most recent call last):
File "/home/wessel/Desktop/nvidia-sniper/sniper/nvidia.py", line 140, in fill_out_form
driver.find_element(By.ID, 'shippingName1').send_keys(
File "/home/wessel/.local/share/virtualenvs/nvidia-sniper-iktqfT3h/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 477, in send_keys
self._execute(Command.SEND_KEYS_TO_ELEMENT,
File "/home/wessel/.local/share/virtualenvs/nvidia-sniper-iktqfT3h/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/home/wessel/.local/share/virtualenvs/nvidia-sniper-iktqfT3h/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/wessel/.local/share/virtualenvs/nvidia-sniper-iktqfT3h/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <input id="shippingName1" name="SHIPPINGname1" type="text"> is not reachable by keyboard
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/wessel/Desktop/nvidia-sniper/sniper/__main__.py", line 254, in <module>
loop.run_until_complete(main())
File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/home/wessel/Desktop/nvidia-sniper/sniper/__main__.py", line 220, in main
nvidia.checkout_guest(
File "/home/wessel/Desktop/nvidia-sniper/sniper/nvidia.py", line 246, in checkout_guest
fill_out_form(driver, timeout, customer)
File "/home/wessel/Desktop/nvidia-sniper/sniper/nvidia.py", line 150, in fill_out_form
WebDriverWait(driver, timeout).until(shipping_visible)
File "/home/wessel/.local/share/virtualenvs/nvidia-sniper-iktqfT3h/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
I get the following error when I try to launch the bot
When I get to the very last command "pipenv run python -m sniper" I get the following error:
ERROR:root:Could not import all required modules. Please run the following command again:
pipenv install
I have already done "pipenv install" and it had no issues. I did it again after the error to verify,, and I get "Requirement already satisfied" on every item it runs through.
FYI my coding is very limited, but I am a network admin so I can follow syntax and have ran through it a couple of times to make sure I'm not missing anything. Thoughts?
Stops at recaptcha
Does not auto checkout stop at recaptcha even though i cant see the recaptcha. Also it is slower at adding to cart than other bots out there, can that be improved?
log:
2020-09-24 09:42:09,374 nvidia-sniper: An invalid Pushover Access Token (token) was specified.
2020-09-24 09:42:09,374 nvidia-sniper: Could not load Pushover URL: pover://user@token
2020-09-24 09:42:09,614 nvidia-sniper: Clicking pre checkout reCAPTCHA!
#Closed
Failed to locate Digital River ID on product page
2020-10-05 15:01:27,360 nvidia-sniper: Checking en-us availability for GeForce RTX 3090 using selenium...
2020-10-05 15:01:43,297 nvidia-sniper: GPU currently not available
2020-10-05 15:01:43,297 nvidia-sniper: Checking en-us availability for GeForce RTX 3090 using API...
2020-10-05 15:01:44,475 nvidia-sniper: Failed to locate Digital River ID on product page
Is this how it is supposed to look? Concerned with the "Failed to locate Digital River ID on product page" portion.
Captcha Extension not showing up in browser
Hey Guys,
I downloaded the captcha.xpi file and put in the root of the Nvidia-Sniper directory. (ie user/downloads/nvidia-sniper) but when I ran the Nvidia-Sniper bot and the Firefox browser opened I don't see that the captcha extension is there. Am I doing something wrong?
Fraud Detection will mess you up
I really liked this repository, but I am concerned that automated payment via Browser Automation will trigger Paypals Fraud Detection and will mess up your day.
Problem
Hi. I updated the program. I am getting the following error. I don't know where to post on given nvidia-snatcher discord channel. Can you help me ?
ERROR:root:Could not import all required modules. Please run the following command again:
pipenv install
Country Calling Code
do we need to enter our countries calling code? for example +44?
Failed to Get inventory Status using API
Running on windows, getting this error when checking for inventory with API
2020-09-25 17:22:34,820 nvidia-sniper: Checking en-us availability for GeForce RTX 3080 using selenium...
2020-09-25 17:22:53,622 nvidia-sniper: GPU currently not available
2020-09-25 17:22:53,622 nvidia-sniper: Checking en-us availability for GeForce RTX 3080 using API...
2020-09-25 17:23:12,158 nvidia-sniper: Failed to get inventory status for 5438481700
Traceback (most recent call last):
File "C:\nvidia-sniper\sniper_main_.py", line 47, in checkout_api
inventory = await api.get_inventory_status(session, dr_locale, api_currency, dr_id)
File "C:\nvidia-sniper\sniper\api.py", line 22, in get_inventory_status
json_resp = await response.json()
File "C:\Users\usr.virtualenvs\nvidia-sniper-Fu40Ck5x\lib\site-packages\aiohttp\client_reqrep.py", line 1026, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html', url=URL('https://api-prod.nvidia.com/direct-sales-shop/DR/products//en_us/USD/5438481700')
Bug: WebDriverException: Failed to decode response from marionette
Got this exception after 12ish hours of running. No obvious cause apart from Firefox appearing to be closed when I returned.
Traceback (most recent call last):
File "c:\users\<username>\appdata\local\programs\python\python38-32\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\<username>\appdata\local\programs\python\python38-32\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\<username>\Desktop\nvidia-sniper\sniper\__main__.py", line 269, in <module>
loop.run_until_complete(main())
File "c:\users\<username>\appdata\local\programs\python\python38-32\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "C:\Users\<username>\Desktop\nvidia-sniper\sniper\__main__.py", line 230, in main
checkout_reached = checkout_selenium(
File "C:\Users\<username>\Desktop\nvidia-sniper\sniper\__main__.py", line 102, in checkout_selenium
gpu_available = nvidia.check_availability(driver, timeout)
File "C:\Users\<username>\Desktop\nvidia-sniper\sniper\nvidia.py", line 40, in check_availability
WebDriverWait(driver, timeout).until(add_to_basket_clickable)
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until
value = method(self._driver)
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 297, in __call__
element = visibility_of_element_located(self.locator)(driver)
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 128, in __call__
return _element_if_visible(_find_element(driver, self.locator))
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 415, in _find_element
raise e
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 411, in _find_element
return driver.find_element(*by)
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\<username>\.virtualenvs\nvidia-sniper-e_ejhjj8\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Failed to decode response from marionette```
Multitude of errors
Followed Directions (sorry, new to this). Received following errors:
C:\Users\usr\nvidia-sniper>pipenv run python -m sniper
Traceback (most recent call last):
File "c:\users\usr\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main
return run_code(code, main_globals, None,
File "c:\users\usr\appdata\local\programs\python\python38\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\usr\nvidia-sniper\sniper_main.py", line 6, in
import aiohttp
File "C:\Users\usr.virtualenvs\nvidia-sniper-1gkHHUZV\lib\site-packages\aiohttp_init.py", line 6, in
from .client import BaseConnector as BaseConnector
File "C:\Users\usr.virtualenvs\nvidia-sniper-1gkHHUZV\lib\site-packages\aiohttp\client.py", line 32, in
from . import hdrs, http, payload
File "C:\Users\usr.virtualenvs\nvidia-sniper-1gkHHUZV\lib\site-packages\aiohttp\http.py", line 7, in
from .http_parser import HeadersParser as HeadersParser
File "C:\Users\usr.virtualenvs\nvidia-sniper-1gkHHUZV\lib\site-packages\aiohttp\http_parser.py", line 15, in
from .helpers import NO_EXTENSIONS, BaseTimerContext
File "C:\Users\usr.virtualenvs\nvidia-sniper-1gkHHUZV\lib\site-packages\aiohttp\helpers.py", line 43, in
import async_timeout
ModuleNotFoundError: No module named 'async_timeout'
Guide for updating nvidia-sniper
Is there a guide write up available to update nvidia-sniper. Thanks!
confusion on paypal
Sorry, this is more of a question than a raise.
There isn't a config for paypal info so are we simply to log in using the bot window or do I use regular firefox to login and gather cookies?
Also, on run we get to pick auto submit but it says it only works with credit card. This prompt is after choosing guest checkout or paypal checkout so it's a little confusing. As in, will it work if I have a credit card added to my paypal account or am I contradicting the previous parameter?
Thank you very much for writing this. I also wrote one using requests and selenium but your code is much more robust and elegant. Learning a lot from going through it.
Failed to locate Digital River ID on product page
Hello,
This morning (US) I noticed Sniper reporting that it failed to locate the Digital River ID on product page in the logs. Last night this seemed accessible. Should this be of concern?
Edit: watching 3080 - https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3080/
Thanks.
sniper did not trigger when stock was available today in the uk
Apparently stock did appear today in the uk with a link to purchase via scan.co.uk
Sniper did not trigger as it was not available on the NV site direct, but Nvidia had a link to scan to purchase.
Profile issue
Correct phone number format for US
I noticed that the customer template json has "-" in the phone number but I was wondering if I will need that for a US phone number. I'm assuming that i will not need a "+" and/or a country code. Thank you!
Failed to locate Digital River ID on product page
Running the script fails with "Failed to locate Digital River ID on product page" after checking availibility.
macOS 10.13.6
python 3.8.5
Address suggestion
The danish da-dk locale works perfectly! Was able to test it with a 2060S, however the address suggestion stopped the sniper in its tracks... I think it would be great with some sort of address suggestion bypass. Do you have any discord group for discussing development? :-) Cheers!
Question
Hello there . Thanks for your work.
I uploaded the latest updated version. Previously, the page was constantly refreshed in firefox. But in Mozilla Firefox, the page is no longer refreshed. However, it seems that your stock is being controlled in the program. Is it normal ?
getting error on run
File "c:\users\wader\appdata\local\programs\python\python38-32\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 25 column 9 (char 672)
da_dk locale
Hi! I would love to try this, but will it work for the danish locale? It would be awesome of that could work! Cheers
Failed to locate digital river I'd on product page
The script gives me this error:" Failed to locate digital river I'd on product page" this is a problem for the correct working fo the script?
No module named 'aiohttp'
Running on mac, getting the following error :(
File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/<username>/Documents/nvidia-sniper/sniper/__main__.py", line 6, in <module> import aiohttp ModuleNotFoundError: No module named 'aiohttp'
Latest build seems slower
Howdy,
I've been updating and testing your build daily and today's build seems slower compared to yesterday build. I noticed it during the checking out button process (after adding to cart, before adding personal information). Is it because of the notification send off command before it can proceed to next step? Just wanted to give my feedback. Thanks again!
Page not found when using en-ca locale
Trying to set up nvidia-sniper using en-ca locale. It goes to https://www.nvidia.com/en-ca/geforce/graphics-cards/30-series/rtx-3080/ which is giving a Page Not Found error. Presumably the correct page is somewhere else for Canadian shoppers...
Ubuntu 20 Firefox profile not found
https://i.imgur.com/hD0zkbt.png
Latest Firefox is installed.
discord link not working
Has the discord been updated to another server? The link on the page goes to a discord called nvidia snatcher.
Thank you.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.