This bot helps us buy Nvidia Founders Edition GPUs as soon as they become available.
- 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
data/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
- Geckodriver
sudo apt install firefox firefox-geckodriver python3 pipenv
cd nvidia-sniper
pipenv install
- Install the latest version of Firefox
- Install brew package manager
- Install Geckodriver using
brew install geckodriver
- Install Pipenv using
brew install pipenv
- Navigate to project directory using
cd nvidia-sniper
- Install project dependencies using
pipenv install
- Install Python for Windows
- Install the latest version of Firefox
- Download Geckodriver and add executable to PATH or to
nvidia-sniper
directory - Open PowerShell and install Pipenv using
pip install pipenv
- Navigate to project directory using
cd nvidia-sniper
- Install project dependencies using
pipenv install
- Install curses for Windows using
pipenv install windows-curses
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 data/customer.json
and run the script.
cd nvidia-sniper
pipenv run python -m sniper
In the customer.json
file, some fields require specific values.
The bot can send multiple apprise notifications, including a screenshot attachment upon successful checkout. See https://github.com/caronc/apprise#supported-notifications for more information. Add additional entries to the notification
dictionary in the customer.json
file for multiple providers. For each notification channel, a custom message
and a title
can be set. Additionally, the screenshot
attachment can be toggled per channel.
A couple of example URLs for different notification services:
pover://user@token
: Pushovertgram://bottoken/ChatID
: Telegramdiscord://webhook_id/webhook_token
: Discord
The locale
field can have the following values:
de-at
: Austriafr-fr
: Belgiumen-us
: Canadaen-gb
: Czech Republicda-dk
: Denmarkfi-fi
: Finlandfr-fr
: Francede-de
: Germanyit-it
: Italyfr-fr
: Luxembourgpl-pl
: Polandru-ru
: Russian Federationes-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
The country
field can have the following values:
AT
: AustriaBE
: BelgiumCA
: CanadaCZ
: Czech RepublicDK
: DenmarkFI
: FinlandFR
: FranceDE
: GermanyIT
: ItalyLU
: LuxembourgPL
: PolandRU
: Russian FederationES
: SpainSE
: SwedenGB
: United KingdomUS
: United States
For en-us
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