chore: organization and pipeline (#3)

* chore: organization

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>

* Update index.js

Includes @malbert69 latest changes

Co-authored-by: Ion Caza <contact@johncaza.com>
This commit is contained in:
Jef LeCompte
2020-09-17 21:04:09 -04:00
committed by GitHub
parent dcfc03cdc8
commit c07662a435
12 changed files with 207 additions and 2 deletions
+1
View File
@@ -0,0 +1 @@
* @jef @andirew @davidlbowman @fuckingrobot @ioncaza @malbert69
+1
View File
@@ -0,0 +1 @@
github: jef
+16
View File
@@ -0,0 +1,16 @@
---
name: Bug report
about: Report a bug for this project
title: 'Bug: '
labels: 'bug'
assignees: jef
---
### Description
<!-- Describe the feature here. -->
### Possible solution
<!-- Describe the possible solution here. -->
+16
View File
@@ -0,0 +1,16 @@
---
name: Feature request
about: Suggest a feature for this project
title: 'Enhancement: '
labels: 'enhancement'
assignees: jef
---
### Description
<!-- Describe the feature here. -->
### Possible solution
<!-- Describe the possible solution here. -->
+20
View File
@@ -0,0 +1,20 @@
version: 2
updates:
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
labels:
- "dependencies"
+15
View File
@@ -0,0 +1,15 @@
### Description
<!-- Fixes #(issue) -->
<!-- Please also include relevant motivation and context. -->
### Testing
<!-- Please describe the tests that you ran to verify your changes. -->
<!-- Provide instructions so we can reproduce. -->
<!-- Please also list any relevant details for your test configuration -->
### New dependencies
<!-- List any dependencies that are required for this change. -->
<!-- Otherwise, delete section. -->
+38
View File
@@ -0,0 +1,38 @@
name: cd
on:
push:
branches:
- master
jobs:
cd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: GoogleCloudPlatform/release-please-action@v2.2.0
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: node
package-name: nvidia-snatcher
- name: login into github package registry
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- name: build nightly docker image
if: ${{ ! steps.release.outputs.release_created }}
run: |
docker build \
-t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
-t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
- name: publish nightly
if: ${{ ! steps.release.outputs.release_created }}
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
- name: build latest docker image
if: ${{ steps.release.outputs.release_created }}
run: |
docker build \
-t "ghcr.io/${GITHUB_REPOSITORY}:${TAG_NAME}" \
-t "ghcr.io/${GITHUB_REPOSITORY}:latest" .
env:
TAG_NAME: ${{ steps.release.outputs.tag_name }}
- name: publish latest
if: ${{ steps.release.outputs.release_created }}
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
+21
View File
@@ -0,0 +1,21 @@
name: ci
on: push
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x]
name: Lint
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@v2.1.1
with:
node-version: ${{ matrix.node-version }}
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-
- name: Pull dependencies
run: npm ci
+1
View File
@@ -0,0 +1 @@
node_modules/
+53 -2
View File
@@ -1,2 +1,53 @@
# nvidia-snatcher
🔮 For all your Nvidia needs
# nvidia-snatcher [![cd](https://github.com/jef/nvidia-snatcher/workflows/cd/badge.svg?branch=master)](https://github.com/jef/nvidia-snatcher/actions?query=workflow%3Acd)
## Description
This is going to check Nvidia's website every 5 seconds to see if the 3080 is out of stock in the background. If it comes into stock, then your browser will open and direct you to a cart with the 3080 in it where you can proceed manually.
You may get false positives from time to time, so I apologize for that. If you're getting than more often than not, I would change the `const waitForTimeout = 1000;` to a higher number.
**Update 1:** Now includes Best Buy 3080 FE
## Installation and running
Not going to write a full write up here, but I'm going to assume you know Node.js. If you don't then go to Google and look up how to install for your OS.
Here's how to get it running:
- Save this text to a file in a folder on your Desktop. E.g. `nvidia/nvidia.js`
- Open up your favorite terminal (`cmd`, `iTerm`, `Tilix`)
- Run the below
```
npm i puppeteer opn nodemailer
node nvidia.js
```
If you want to get an email as well:
- If you have two-factor authentication, use https://myaccount.google.com/apppasswords to get your password Google app password
- Otherwise, use your regular password
```
npm i puppeteer opn nodemailer
EMAIL_USERNAME="youremail@gmail.com" EMAIL_PASSWORD="secretpassword" node nvidia.js
```
## Further customization and hacking
You can potentially add more `links` and change the `timeout` if you'd like.
- `timeout` and `waitForTimeout` are in milliseconds.
- `links` are specific to find the `"out of stock"` verbiage (forced to lowercase).
### Acknowledgements
Thanks to the great contributors that make this project possible
Special shout to initial developers:
- [@andirew](https://github.com/andirew)
- [@davidlbowman](https://github.com/davidlbowman)
- [@fuckingrobot](https://github.com/fuckingrobot)
- [@ioncaza](https://github.com/IonCaza)
- [@malbert69](https://github.com/malbert69)
+25
View File
@@ -0,0 +1,25 @@
{
"name": "nvidia-snatcher",
"version": "1.0.0",
"description": "🔮 For all your Nvidia needs",
"main": "src/index.js",
"scripts": {
"start": "node src/index.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/jef/nvidia-snatcher.git"
},
"keywords": [],
"author": "jef",
"license": "MIT",
"bugs": {
"url": "https://github.com/jef/nvidia-snatcher/issues"
},
"homepage": "https://github.com/jef/nvidia-snatcher#readme",
"dependencies": {
"nodemailer": "^6.4.11",
"opn": "^6.0.0",
"puppeteer": "^5.3.0"
}
}
View File