mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 05:17:35 +00:00
Compare commits
96 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 89e3709440 | |||
| a7be09d56e | |||
| e3d09803ad | |||
| 40c4a8c1b9 | |||
| eee669b1b3 | |||
| 9e8c83622d | |||
| f583029bf3 | |||
| 8ee6815c0f | |||
| 6934d5b31c | |||
| cfe292eb3e | |||
| a3c726b45c | |||
| 11e14655e1 | |||
| b3a88f6608 | |||
| 659edcd421 | |||
| 5effbae882 | |||
| 4d1e1ba3e7 | |||
| 69e005905a | |||
| cb7d215c3a | |||
| 1288f9271a | |||
| e527e43e85 | |||
| 7cf60f84e1 | |||
| fbb024a9ce | |||
| d422c7d0d3 | |||
| 488bc544c9 | |||
| d341ef72aa | |||
| 347f49b2d4 | |||
| 1c113efc42 | |||
| 03539ca666 | |||
| 42808b836c | |||
| e8ee59fae1 | |||
| 4324706f32 | |||
| b6030b3cc3 | |||
| 557ff511e3 | |||
| 9e3922e0d1 | |||
| 2c3c47b4a9 | |||
| 9d5af9f8f9 | |||
| 07306891d7 | |||
| 5f81a8a25f | |||
| e6803d4d7c | |||
| 2501f6b5cc | |||
| 5a5927ba1e | |||
| 8d5792bf9e | |||
| b1ece9edad | |||
| 2cd2991cca | |||
| c1c9bc49a2 | |||
| 4acf6e616f | |||
| af90b1a0a3 | |||
| edb39f8f05 | |||
| 1009ce6636 | |||
| 2548ca4a74 | |||
| c22c960dc1 | |||
| b20bd4a496 | |||
| d02b40b5b8 | |||
| 728f21a62c | |||
| 0cc4e4c4b2 | |||
| 0e65f33690 | |||
| 4455e4ed8d | |||
| 2572c8af80 | |||
| 233c4496e2 | |||
| 7aa2212115 | |||
| 4f57df016b | |||
| 329318427f | |||
| 630f46ce47 | |||
| 1cc63c051c | |||
| 127d846fbe | |||
| 4b8b6feda6 | |||
| b6d03317ba | |||
| 8df4339bdb | |||
| bb8c89b775 | |||
| d63685f290 | |||
| 95b4a153bd | |||
| 4fe0f50941 | |||
| e488ef22fb | |||
| de1427c076 | |||
| 1015358b50 | |||
| a2072449d2 | |||
| 8c17d21dfd | |||
| 8ac3a3bc37 | |||
| 8c383235af | |||
| ecb27ebf0a | |||
| 3b204f15ac | |||
| 2143b15809 | |||
| f932009c01 | |||
| a10ae42454 | |||
| ba6eccc90a | |||
| 9791568cd4 | |||
| ce609fb518 | |||
| 5f0c656b30 | |||
| 113e92df8b | |||
| c81282ef9f | |||
| aec8cfdae2 | |||
| 9bf0e30222 | |||
| 13f1c3d50c | |||
| 9695e29a02 | |||
| 11e64942a0 | |||
| c177aedd21 |
+9
-1
@@ -1,3 +1,11 @@
|
|||||||
{
|
{
|
||||||
"extends": "./node_modules/gts/"
|
"extends": "./node_modules/gts/",
|
||||||
|
"rules": {
|
||||||
|
"prettier/prettier": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"endOfLine": "auto"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Executable
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
npm run test
|
||||||
@@ -3,6 +3,9 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
jobs:
|
jobs:
|
||||||
build-lint:
|
build-lint:
|
||||||
name: Build and lint
|
name: Build and lint
|
||||||
@@ -11,9 +14,9 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v2.1.4
|
uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: 14.15.4
|
node-version: 15.10.0
|
||||||
- name: Setup build cache
|
- name: Setup build cache
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
@@ -33,7 +36,7 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Run paths filter
|
- name: Run paths filter
|
||||||
uses: dorny/paths-filter@v2.7.0
|
uses: dorny/paths-filter@v2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
|
|||||||
@@ -18,4 +18,6 @@ jobs:
|
|||||||
-t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
|
-t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
|
||||||
-t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
|
-t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
|
||||||
- name: Release Docker image
|
- name: Release Docker image
|
||||||
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
|
run: |
|
||||||
|
docker push "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}"
|
||||||
|
docker push "ghcr.io/${GITHUB_REPOSITORY}:nightly"
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
name: Pull Request Linter
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
- edited
|
||||||
|
- reopened
|
||||||
|
- synchronize
|
||||||
|
jobs:
|
||||||
|
lint-pr:
|
||||||
|
name: Lint pull request title
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Lint pull request title
|
||||||
|
uses: jef/conventional-commits-pr-action@v1
|
||||||
|
with:
|
||||||
|
comment: false
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
name: Pull Request Lint
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types:
|
|
||||||
- opened
|
|
||||||
- edited
|
|
||||||
- reopened
|
|
||||||
- synchronize
|
|
||||||
jobs:
|
|
||||||
pull-request-lint:
|
|
||||||
name: Lint pull request
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Lint pull request
|
|
||||||
uses: amannn/action-semantic-pull-request@v3.1.0
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
@@ -11,12 +11,12 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Setup release please
|
- name: Setup release please
|
||||||
uses: google-github-actions/release-please-action@v2.15
|
uses: google-github-actions/release-please-action@v2
|
||||||
id: release
|
id: release
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
release-type: simple
|
release-type: node
|
||||||
changelog-path: docs/changelog.md
|
changelog-path: CHANGELOG.md
|
||||||
package-name: streetmerchant
|
package-name: streetmerchant
|
||||||
- name: Login into GitHub Container Registry
|
- name: Login into GitHub Container Registry
|
||||||
if: ${{ steps.release.outputs.release_created }}
|
if: ${{ steps.release.outputs.release_created }}
|
||||||
@@ -31,4 +31,6 @@ jobs:
|
|||||||
TAG_NAME: ${{ steps.release.outputs.tag_name }}
|
TAG_NAME: ${{ steps.release.outputs.tag_name }}
|
||||||
- name: Release Docker image
|
- name: Release Docker image
|
||||||
if: ${{ steps.release.outputs.release_created }}
|
if: ${{ steps.release.outputs.release_created }}
|
||||||
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
|
run: |
|
||||||
|
docker push "ghcr.io/${GITHUB_REPOSITORY}:${TAG_NAME}"
|
||||||
|
docker push "ghcr.io/${GITHUB_REPOSITORY}:latest"
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"problemMatcher": [
|
|
||||||
{
|
|
||||||
"owner": "xo",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "^\\s+(.*):(\\d+):(\\d+)$",
|
|
||||||
"file": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"regexp": "^\\s+✖\\s+(\\d+):(\\d+)\\s+(.*)\\s+(.*)$",
|
|
||||||
"line": 1,
|
|
||||||
"column": 2,
|
|
||||||
"message": 3,
|
|
||||||
"code": 4,
|
|
||||||
"loop": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -17,3 +17,5 @@ success-*.png
|
|||||||
desktop.ini
|
desktop.ini
|
||||||
|
|
||||||
twitch.json
|
twitch.json
|
||||||
|
terraform/terraform.tfstate
|
||||||
|
terraform/terraform.tfstate.backup
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
14.15.4
|
15.10.0
|
||||||
|
|||||||
@@ -1,5 +1,50 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [3.5.0](https://www.github.com/jef/streetmerchant/compare/v3.4.1...v3.5.0) (2021-03-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add restart time for leaking Chromium in Ubuntu ([#1880](https://www.github.com/jef/streetmerchant/issues/1880)) ([1009ce6](https://www.github.com/jef/streetmerchant/commit/1009ce6636c21c378121bd83b251a371a1b8568e))
|
||||||
|
* add terraform infra as code for AWS fargate ([#1987](https://www.github.com/jef/streetmerchant/issues/1987)) ([d341ef7](https://www.github.com/jef/streetmerchant/commit/d341ef72aa6b74e54c11aeb455516b2a69a8a664))
|
||||||
|
* clean up proxy logging with n/N in each lookup ([#1839](https://www.github.com/jef/streetmerchant/issues/1839)) ([8df4339](https://www.github.com/jef/streetmerchant/commit/8df4339bdb3d96cb448e3acb727fdc534688bfc0))
|
||||||
|
* **notification:** add simple SmartThings switch activation ([#1902](https://www.github.com/jef/streetmerchant/issues/1902)) ([c22c960](https://www.github.com/jef/streetmerchant/commit/c22c960dc179f5ed74ae41a25178e6d2feed0bf9))
|
||||||
|
* **notification:** add Streamlabs support ([#1872](https://www.github.com/jef/streetmerchant/issues/1872)) ([edb39f8](https://www.github.com/jef/streetmerchant/commit/edb39f8f05451c3cc1994c0beb2338bae04ab585))
|
||||||
|
* **nvidia:** updated store for europe ([#1732](https://www.github.com/jef/streetmerchant/issues/1732)) ([2143b15](https://www.github.com/jef/streetmerchant/commit/2143b158090dc065a29bdde4c6dc592a5a745c07))
|
||||||
|
* **sms:** add US Cellular ([#1874](https://www.github.com/jef/streetmerchant/issues/1874)) ([4455e4e](https://www.github.com/jef/streetmerchant/commit/4455e4ed8df84a37fa16fdc58d130c11a997f9b5))
|
||||||
|
* **store:** add globaldata ([#2004](https://www.github.com/jef/streetmerchant/issues/2004)) ([5effbae](https://www.github.com/jef/streetmerchant/commit/5effbae882bed9d287f8ccc84e9dd38a6ebdebb1))
|
||||||
|
* **store:** add ldlc (FR) ([#2037](https://www.github.com/jef/streetmerchant/issues/2037)) ([a7be09d](https://www.github.com/jef/streetmerchant/commit/a7be09d56eda441cb1625ebb642cccab63d71f31))
|
||||||
|
* **store:** add netonnet-no ([#1989](https://www.github.com/jef/streetmerchant/issues/1989)) ([e6803d4](https://www.github.com/jef/streetmerchant/commit/e6803d4d7c60424c043b540f0cb555bd29b9d7aa))
|
||||||
|
* **store:** add Norwegian stores ([#1985](https://www.github.com/jef/streetmerchant/issues/1985)) ([5a5927b](https://www.github.com/jef/streetmerchant/commit/5a5927ba1ef5d138f5741b672b1fe2466e5760c2))
|
||||||
|
* **store:** add novoatalho (PT) ([#2043](https://www.github.com/jef/streetmerchant/issues/2043)) ([a3c726b](https://www.github.com/jef/streetmerchant/commit/a3c726b45c5ab8f0a6c8a239e0de0a913c4e0c55))
|
||||||
|
* **store:** add PCDiga.com ([#1990](https://www.github.com/jef/streetmerchant/issues/1990)) ([2501f6b](https://www.github.com/jef/streetmerchant/commit/2501f6b5cc46aa05bfe94ca238b5866e4fd60f36))
|
||||||
|
* **store:** corsair-uk ([#1733](https://www.github.com/jef/streetmerchant/issues/1733)) ([c81282e](https://www.github.com/jef/streetmerchant/commit/c81282ef9fd95c39dc6d338f3d79de16906c89b6))
|
||||||
|
* use node 15, use package version ([#2066](https://www.github.com/jef/streetmerchant/issues/2066)) ([eee669b](https://www.github.com/jef/streetmerchant/commit/eee669b1b3e54ada1180877fe766aaded9e02936))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **alternate:** update URLs ([#1814](https://www.github.com/jef/streetmerchant/issues/1814)) ([d63685f](https://www.github.com/jef/streetmerchant/commit/d63685f2905eb7f207f13da7682ad6a81d9d7aca))
|
||||||
|
* **amazon-ca:** out of stock check was missing ([#1885](https://www.github.com/jef/streetmerchant/issues/1885)) ([0e65f33](https://www.github.com/jef/streetmerchant/commit/0e65f336902dec99aa10a4b4823f4d2411674cae))
|
||||||
|
* **amazon-ca:** update selector ([#1851](https://www.github.com/jef/streetmerchant/issues/1851)) ([3293184](https://www.github.com/jef/streetmerchant/commit/329318427fc3eb1081751289401269119a252905))
|
||||||
|
* **amazon-uk:** add label for ps5 ([8ee6815](https://www.github.com/jef/streetmerchant/commit/8ee6815c0fb6ea129d2de600d10e6732e90ce924)), closes [#2036](https://www.github.com/jef/streetmerchant/issues/2036)
|
||||||
|
* **discord:** ensure first group in list is notified ([#1788](https://www.github.com/jef/streetmerchant/issues/1788)) ([9791568](https://www.github.com/jef/streetmerchant/commit/9791568cd4205b00ce9c5d301937efc17089b769))
|
||||||
|
* **docs:** nvidia store changes ([#1797](https://www.github.com/jef/streetmerchant/issues/1797)) ([de1427c](https://www.github.com/jef/streetmerchant/commit/de1427c076e5051673635fb9ec7e9880f0e3c260))
|
||||||
|
* **galaxus:** update selector ([#1730](https://www.github.com/jef/streetmerchant/issues/1730)) ([1015358](https://www.github.com/jef/streetmerchant/commit/1015358b502a30a8cfc9fedfeab2dc09098d9615))
|
||||||
|
* **microcenter:** properly flag in stock items ([#1754](https://www.github.com/jef/streetmerchant/issues/1754)) ([ce609fb](https://www.github.com/jef/streetmerchant/commit/ce609fb518fa7811a77e3ab7d26ecacf86ac35e6))
|
||||||
|
* **nvidia:** update inStock text ([#1850](https://www.github.com/jef/streetmerchant/issues/1850)) ([4f57df0](https://www.github.com/jef/streetmerchant/commit/4f57df016ba2ab6fdd5e7ca7e98ea6d9fba463a7))
|
||||||
|
* remove package-lock.json ([e3d0980](https://www.github.com/jef/streetmerchant/commit/e3d09803ad3d53b5c4310b3e369a69c99515fd8c))
|
||||||
|
* **vuugo:** add out of stock check ([#1731](https://www.github.com/jef/streetmerchant/issues/1731)) ([9695e29](https://www.github.com/jef/streetmerchant/commit/9695e29a02ea320842954db9f2ea51612b983490))
|
||||||
|
* **web:** 404 Error / page not visible ([#1825](https://www.github.com/jef/streetmerchant/issues/1825)) ([95b4a15](https://www.github.com/jef/streetmerchant/commit/95b4a153bd8b708cfefd07e3f16e787bb069da48))
|
||||||
|
* **wipoid:** corrected 3070 / 3080 links ([#1879](https://www.github.com/jef/streetmerchant/issues/1879)) ([2572c8a](https://www.github.com/jef/streetmerchant/commit/2572c8af80685be514ff762f8203e7de7cab8634))
|
||||||
|
|
||||||
|
### [3.4.1](https://www.github.com/jef/streetmerchant/compare/v3.4.0...v3.4.1) (2021-01-17)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **proxy:** build proxyList correctly ([c177aed](https://www.github.com/jef/streetmerchant/commit/c177aedd210e14cb7d401295cb16ece1dfb1ebe7))
|
||||||
|
|
||||||
## [3.4.0](https://www.github.com/jef/streetmerchant/compare/v3.3.0...v3.4.0) (2021-01-17)
|
## [3.4.0](https://www.github.com/jef/streetmerchant/compare/v3.3.0...v3.4.0) (2021-01-17)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -1,4 +1,4 @@
|
|||||||
FROM node:14.15.4-alpine3.12 AS builder
|
FROM node:15.10.0-alpine3.12 AS builder
|
||||||
|
|
||||||
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
|
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ COPY src/ src/
|
|||||||
RUN npm run compile
|
RUN npm run compile
|
||||||
RUN npm prune --production
|
RUN npm prune --production
|
||||||
|
|
||||||
FROM node:14.15.4-alpine3.12
|
FROM node:15.10.0-alpine3.12
|
||||||
|
|
||||||
RUN apk add --no-cache chromium
|
RUN apk add --no-cache chromium
|
||||||
|
|
||||||
@@ -35,7 +35,6 @@ COPY --from=builder /build/node_modules/ node_modules/
|
|||||||
COPY --from=builder /build/build/ build/
|
COPY --from=builder /build/build/ build/
|
||||||
COPY web/ web/
|
COPY web/ web/
|
||||||
COPY package.json package.json
|
COPY package.json package.json
|
||||||
COPY version.txt version.txt
|
|
||||||
|
|
||||||
ENTRYPOINT ["npm", "run"]
|
ENTRYPOINT ["npm", "run"]
|
||||||
CMD ["start:production"]
|
CMD ["start:production"]
|
||||||
|
|||||||
@@ -1,28 +1,12 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://jef.codes/streetmerchant"
|
<a href="https://jef.codes/streetmerchant"><img src="https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-banner.png" /></a>
|
||||||
><img
|
|
||||||
src="https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-banner.png"
|
|
||||||
alt="streetmerchant"
|
|
||||||
/></a>
|
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<strong>The world's easiest, most powerful stock checker</strong>
|
<strong>The world's easiest, most powerful stock checker</strong>
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/jef/streetmerchant/actions?query=workflow%3ARelease"
|
<a href="https://github.com/jef/streetmerchant/actions/workflows/ci.yaml"><img src="https://img.shields.io/github/workflow/status/jef/streetmerchant/ci?color=24292e&label=ci&logo=github&logoColor=tewt&style=flat-square" /></a>
|
||||||
><img src="https://github.com/jef/streetmerchant/workflows/Release/badge.svg"
|
<a href="https://discord.gg/gbVY4vB9JF"><img src="https://img.shields.io/discord/773913070665859073.svg?color=24292e&label=%20&logo=discord&logoColor=ffffff&style=flat-square" /></a>
|
||||||
/></a>
|
|
||||||
<a href="https://discord.gg/gbVY4vB9JF"
|
|
||||||
><img
|
|
||||||
src="https://img.shields.io/discord/773913070665859073.svg?label=chat&logo=discord&logoColor=ffffff&color=7389D8"
|
|
||||||
alt="Tweet"
|
|
||||||
/></a>
|
|
||||||
<a
|
|
||||||
href="https://twitter.com/intent/tweet?text=Beat%20the%20masses%20with%20streetmerchant&url=https://github.com/jef/streetmerchant&hashtags=typescript,opensource,bot,shopping"
|
|
||||||
><img
|
|
||||||
src="https://img.shields.io/badge/twitter-share-green?logo=twitter&style=social"
|
|
||||||
alt="Tweet"
|
|
||||||
/></a>
|
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<em>To get started, visit <a href="https://jef.codes/streetmerchant">jef.codes/streetmerchant</a></em>
|
<em>To get started, visit <a href="https://jef.codes/streetmerchant">jef.codes/streetmerchant</a></em>
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
| `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`. Default: `http` |
|
| `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`. Default: `http` |
|
||||||
| `PROXY_ADDRESS` | IP Address or fqdn of proxy server |
|
| `PROXY_ADDRESS` | IP Address or fqdn of proxy server |
|
||||||
| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections. Default: `80` |
|
| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections. Default: `80` |
|
||||||
|
| `RESTART_TIME` | Restarts chrome after defined milliseconds. `0` for never, default: `0` |
|
||||||
| `SCREENSHOT` | Capture screenshot of page if a card is found. Default: `true` |
|
| `SCREENSHOT` | Capture screenshot of page if a card is found. Default: `true` |
|
||||||
| `WEB_PORT` | Starts a webserver to be able to control the bot while it is running. Setting this value starts this service. |
|
| `WEB_PORT` | Starts a webserver to be able to control the bot while it is running. Setting this value starts this service. |
|
||||||
|
|
||||||
|
|||||||
+35
-37
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
| Environment variable | Description |
|
| Environment variable | Description |
|
||||||
|:---:|---|
|
|:---:|---|
|
||||||
| `COUNTRY` | [Supported country](#supported-countries) you want to be scraped | Only used with `nvidia-api`, default: `usa` |
|
| `MAX_PRICE_SERIES_3060` | Maximum price allowed for a match, applies 3060 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
||||||
| `MAX_PRICE_SERIES_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
| `MAX_PRICE_SERIES_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
||||||
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
||||||
| `MAX_PRICE_SERIES_3080` | Maximum price allowed for a match, applies 3080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
| `MAX_PRICE_SERIES_3080` | Maximum price allowed for a match, applies 3080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
|
||||||
@@ -22,15 +22,13 @@
|
|||||||
| `MAX_PRICE_SERIES_XBOXSX` | Maximum price allowed for a match, applies PS5 digital edition |
|
| `MAX_PRICE_SERIES_XBOXSX` | Maximum price allowed for a match, applies PS5 digital edition |
|
||||||
| `MAX_PRICE_SERIES_TEST` | Maximum price allowed for a match, applies `test:series` |
|
| `MAX_PRICE_SERIES_TEST` | Maximum price allowed for a match, applies `test:series` |
|
||||||
| `MICROCENTER_LOCATION` | Specific MicroCenter location(s) to search. Comma separated, e.g.: `marietta,duluth`, default: `web` |
|
| `MICROCENTER_LOCATION` | Specific MicroCenter location(s) to search. Comma separated, e.g.: `marietta,duluth`, default: `web` |
|
||||||
| `NVIDIA_ADD_TO_CART_ATTEMPTS` | The maximum number of times the `nvidia-api` add to cart feature will be attempted before failing. Default: `10` |
|
|
||||||
| `NVIDIA_SESSION_TTL` | The time in milliseconds to keep the cart active while using `nvidia-api`. Default: `60000` |
|
|
||||||
| `SHOW_ONLY_BRANDS` | Filter to show specified brands. Comma separated, e.g.: `evga,zotac` |
|
| `SHOW_ONLY_BRANDS` | Filter to show specified brands. Comma separated, e.g.: `evga,zotac` |
|
||||||
| `SHOW_ONLY_MODELS` | Filter to show specified models. Comma separated, can include series. E.g.: `founders edition:3090,rog strix` |
|
| `SHOW_ONLY_MODELS` | Filter to show specified models. Comma separated, can include series. E.g.: `founders edition:3090,rog strix` |
|
||||||
| `SHOW_ONLY_SERIES` | Filter to show specified series. Comma separated, e.g.: `3080,ryzen5900` |
|
| `SHOW_ONLY_SERIES` | Filter to show specified series. Comma separated, e.g.: `3080,ryzen5900` |
|
||||||
| `STORES` | [Supported stores](#supported-stores) you want to be scraped. Default: `amazon,bestbuy`. Comma separated, can include `PAGE_SLEEP_MIN` and `PAGE_SLEEP_MAX` values. E.g.: `amazon:10000:30000,bestbuy,newegg:50000:80000`. |
|
| `STORES` | [Supported stores](#supported-stores) you want to be scraped. Default: `amazon,bestbuy`. Comma separated, can include `PAGE_SLEEP_MIN` and `PAGE_SLEEP_MAX` values. E.g.: `amazon:10000:30000,bestbuy,newegg:50000:80000`. |
|
||||||
|
|
||||||
???+ note
|
???+ note
|
||||||
For `MAX_PRICE_SERIES_*` variables: enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods). E.g.: `1234`. Merchandise found above this price will be skipped.
|
For `MAX_PRICE_SERIES_*` variables: Use whole numbers only (no currency symbol is required). Avoid using any commas or decimal points. Example: `1234`. Merchandise found above this price will be skipped.
|
||||||
|
|
||||||
## Supported stores
|
## Supported stores
|
||||||
|
|
||||||
@@ -84,18 +82,21 @@ Used with the `STORES` variable.
|
|||||||
| Coolblue | NL | `coolblue`|
|
| Coolblue | NL | `coolblue`|
|
||||||
| Coolmod | ES | `coolmod`|
|
| Coolmod | ES | `coolmod`|
|
||||||
| Corsair | US | `corsair`|
|
| Corsair | US | `corsair`|
|
||||||
|
| Corsair | UK | `corsair-uk`|
|
||||||
| CPL | AU | `cpl`|
|
| CPL | AU | `cpl`|
|
||||||
| Currys | UK | `currys`|
|
| Currys | UK | `currys`|
|
||||||
| Cyberport | DE | `cyberport` |
|
| Cyberport | DE | `cyberport` |
|
||||||
| DComp | AU | `dcomp`|
|
| DComp | AU | `dcomp`|
|
||||||
| Drako | IT | `drako` |
|
| Drako | IT | `drako` |
|
||||||
|
| DustinHome | NO | `dustinhome-no` |
|
||||||
| EBGames | CA | `ebgames`|
|
| EBGames | CA | `ebgames`|
|
||||||
| eBuyer | UK | `ebuyer`|
|
| eBuyer | UK | `ebuyer`|
|
||||||
| El Corte Inglés | ES | `elcorteingles`|
|
| El Corte Inglés | ES | `elcorteingles`|
|
||||||
|
| Elkjop | NO | `elkjop`|
|
||||||
| ePrice | IT | `eprice`|
|
| ePrice | IT | `eprice`|
|
||||||
|
| Equippr | DE | `equippr`|
|
||||||
| Euronics | IT | `euronics`|
|
| Euronics | IT | `euronics`|
|
||||||
| Euronics | DE | `euronics-de`|
|
| Euronics | DE | `euronics-de`|
|
||||||
| Equippr | DE | `equippr`|
|
|
||||||
| Evatech | AU | `evatech`|
|
| Evatech | AU | `evatech`|
|
||||||
| EVGA | US | `evga`|
|
| EVGA | US | `evga`|
|
||||||
| EVGA | EU | `evga-eu`|
|
| EVGA | EU | `evga-eu`|
|
||||||
@@ -107,13 +108,16 @@ Used with the `STORES` variable.
|
|||||||
| Gamestop | DE | `gamestop-de`|
|
| Gamestop | DE | `gamestop-de`|
|
||||||
| Gamestop | IE | `gamestop-ie`|
|
| Gamestop | IE | `gamestop-ie`|
|
||||||
| Gamestop | IT | `gamestop-it`|
|
| Gamestop | IT | `gamestop-it`|
|
||||||
|
| Globaldata | PT | `globaldata`|
|
||||||
|
| Hardware Planet | IT | | `hardware-planet` |
|
||||||
| HarrisTechnology | AU | `harristechnology`|
|
| HarrisTechnology | AU | `harristechnology`|
|
||||||
| Harvey Normans | IE | `harveynorman-ie` |
|
| Harvey Normans | IE | `harveynorman-ie` |
|
||||||
| Hardware Planet | IT | | `hardware-planet` |
|
|
||||||
| iGame Computer | AU | `igame-computer`|
|
| iGame Computer | AU | `igame-computer`|
|
||||||
| John Lewis | UK | `johnlewis`|
|
| John Lewis | UK | `johnlewis`|
|
||||||
| Kabum | BR | `kabum`|
|
| Kabum | BR | `kabum`|
|
||||||
|
| Komplett | NO | `komplett-no`|
|
||||||
| Landmark Computers | AU | `landmark-computers`|
|
| Landmark Computers | AU | `landmark-computers`|
|
||||||
|
| Ldlc | FR | `ldlc`|
|
||||||
| Mediamarkt | DE | `mediamarkt`|
|
| Mediamarkt | DE | `mediamarkt`|
|
||||||
| Medimax | DE | `medimax`|
|
| Medimax | DE | `medimax`|
|
||||||
| Megekko | NL | `megekko`|
|
| Megekko | NL | `megekko`|
|
||||||
@@ -122,13 +126,14 @@ Used with the `STORES` variable.
|
|||||||
| Mindfactory | DE | `mindfactory` |
|
| Mindfactory | DE | `mindfactory` |
|
||||||
| MSY | AU | `msy`|
|
| MSY | AU | `msy`|
|
||||||
| Mwave | AU | `mwave`|
|
| Mwave | AU | `mwave`|
|
||||||
|
| Netonnet | NO | `netonnet-no`|
|
||||||
| Newegg | US | `newegg`|
|
| Newegg | US | `newegg`|
|
||||||
| Newegg | CA | `newegg-ca`|
|
| Newegg | CA | `newegg-ca`|
|
||||||
| Newegg | SG | `newegg-sg`|
|
| Newegg | SG | `newegg-sg`|
|
||||||
| Notebooksbilliger | DE |`notebooksbilliger`|
|
| Notebooksbilliger | DE |`notebooksbilliger`|
|
||||||
| Novatech | UK | `novatech`|
|
| Novatech | UK | `novatech`|
|
||||||
| Nvidia | US | `nvidia`|
|
| Novo Atalho | PT | `novoatalho`|
|
||||||
| Nvidia API | | `nvidia-api`|
|
| Nvidia | EU/UK | [See below](#nvidia-store-reference) |
|
||||||
| Office Depot | US | `officedepot`|
|
| Office Depot | US | `officedepot`|
|
||||||
| Ollo | IT | `ollo`|
|
| Ollo | IT | `ollo`|
|
||||||
| Otto | DE | `otto`|
|
| Otto | DE | `otto`|
|
||||||
@@ -137,11 +142,14 @@ Used with the `STORES` variable.
|
|||||||
| PCByte | AU | `pcbyte`|
|
| PCByte | AU | `pcbyte`|
|
||||||
| PCCG | AU | `pccg`|
|
| PCCG | AU | `pccg`|
|
||||||
| PCComponentes | ES | `pccomponentes`|
|
| PCComponentes | ES | `pccomponentes`|
|
||||||
|
| PCDiga | PT | `pcdiga`|
|
||||||
| PCKing | DE | `pcking` |
|
| PCKing | DE | `pcking` |
|
||||||
| PlayStation | US | `playstation`|
|
| PlayStation | US | `playstation`|
|
||||||
| PNY | US | `pny`|
|
| PNY | US | `pny`|
|
||||||
|
| Power | NO | `power-no`|
|
||||||
| Proshop | DE | `proshop-de`|
|
| Proshop | DE | `proshop-de`|
|
||||||
| Proshop | DK | `proshop-dk`|
|
| Proshop | DK | `proshop-dk`|
|
||||||
|
| Proshop | NO | `proshop-no`|
|
||||||
| Rosman | AU | `rosman`|
|
| Rosman | AU | `rosman`|
|
||||||
| Rosman-Melb | AU | `rosman-melb`|
|
| Rosman-Melb | AU | `rosman-melb`|
|
||||||
| Saturn | DE | `saturn`|
|
| Saturn | DE | `saturn`|
|
||||||
@@ -155,6 +163,7 @@ Used with the `STORES` variable.
|
|||||||
| Storm Computers | AU | `storm-computer`|
|
| Storm Computers | AU | `storm-computer`|
|
||||||
| Target | US | `target`|
|
| Target | US | `target`|
|
||||||
| Tesco | IE | `tesco-ie`|
|
| Tesco | IE | `tesco-ie`|
|
||||||
|
| TopAchat | GR | `topachat`|
|
||||||
| Toys R Us | US | `toysrus` |
|
| Toys R Us | US | `toysrus` |
|
||||||
| Umart | AU | `umart`|
|
| Umart | AU | `umart`|
|
||||||
| Unieuro | IT | `unieuro`|
|
| Unieuro | IT | `unieuro`|
|
||||||
@@ -165,7 +174,6 @@ Used with the `STORES` variable.
|
|||||||
| Wells Technology | AU | `wellstechnology`|
|
| Wells Technology | AU | `wellstechnology`|
|
||||||
| Wipoid | ES | `wipoid`|
|
| Wipoid | ES | `wipoid`|
|
||||||
| Zotac | US | `zotac`|
|
| Zotac | US | `zotac`|
|
||||||
| TopAchat | GR | `topachat`|
|
|
||||||
|
|
||||||
### Micro Center stores
|
### Micro Center stores
|
||||||
|
|
||||||
@@ -192,7 +200,7 @@ Used with the `SHOW_ONLY_BRANDS` and `SHOW_ONLY_MODELS` variables.
|
|||||||
|:---:|---|
|
|:---:|---|
|
||||||
| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` |
|
| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` |
|
||||||
| `asus` | `crosshair viii`, `dual`, `dual oc`, `ekwb`, `strix`, `strix oc`, `strix white`, `tuf`, `tuf oc` |
|
| `asus` | `crosshair viii`, `dual`, `dual oc`, `ekwb`, `strix`, `strix oc`, `strix white`, `tuf`, `tuf oc` |
|
||||||
| `corsair` | `750 platinum`, `600 platinum` |
|
| `corsair` | `750 platinum`, `600 platinum`, `600 gold` |
|
||||||
| `colorful` | `igame advanced oc`, `igame vulcan oc` |
|
| `colorful` | `igame advanced oc`, `igame vulcan oc` |
|
||||||
| `evga` | `ftw3`, `ftw3 black`, `ftw3 ultra`, `ftw3 ultra hybrid`, `ftw3 ultra hydro copper`, `xc3`, `xc black`, `xc gaming`, `xc3 black`, `xc3 ultra`, `xc3 ultra hybrid` |
|
| `evga` | `ftw3`, `ftw3 black`, `ftw3 ultra`, `ftw3 ultra hybrid`, `ftw3 ultra hydro copper`, `xc3`, `xc black`, `xc gaming`, `xc3 black`, `xc3 ultra`, `xc3 ultra hybrid` |
|
||||||
| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
|
| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
|
||||||
@@ -208,7 +216,7 @@ Used with the `SHOW_ONLY_BRANDS` and `SHOW_ONLY_MODELS` variables.
|
|||||||
| `pny` | `dual fan`, `xlr8 epic x`, `xlr8 revel`, `xlr8 uprising` |
|
| `pny` | `dual fan`, `xlr8 epic x`, `xlr8 revel`, `xlr8 uprising` |
|
||||||
| `sony` | `ps5 console`, `ps5 digital` |
|
| `sony` | `ps5 console`, `ps5 digital` |
|
||||||
| `xfx` | `merc`, `amd reference` |
|
| `xfx` | `merc`, `amd reference` |
|
||||||
| `zotac` | `amp holo`, `amp extreme holo`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc`, `twin edge oc white` |
|
| `zotac` | `amp holo`, `amp extreme holo`, `amp white`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc`, `twin edge oc white` |
|
||||||
|
|
||||||
## Supported series
|
## Supported series
|
||||||
|
|
||||||
@@ -223,6 +231,7 @@ Used with the `SHOW_ONLY_SERIES` variable.
|
|||||||
| AMD RX 6800 | `rx6800` |
|
| AMD RX 6800 | `rx6800` |
|
||||||
| AMD RX 6800XT | `rx6800xt` |
|
| AMD RX 6800XT | `rx6800xt` |
|
||||||
| AMD RX 6900XT | `rx6900xt` |
|
| AMD RX 6900XT | `rx6900xt` |
|
||||||
|
| Nvidia RTX 3060 | `3060` |
|
||||||
| Nvidia RTX 3060 Ti | `3060ti` |
|
| Nvidia RTX 3060 Ti | `3060ti` |
|
||||||
| Nvidia RTX 3070 | `3070` |
|
| Nvidia RTX 3070 | `3070` |
|
||||||
| Nvidia RTX 3080 | `3080` |
|
| Nvidia RTX 3080 | `3080` |
|
||||||
@@ -234,32 +243,21 @@ Used with the `SHOW_ONLY_SERIES` variable.
|
|||||||
| Xbox Series S | `xboxss` |
|
| Xbox Series S | `xboxss` |
|
||||||
| Xbox Series X | `xboxsx` |
|
| Xbox Series X | `xboxsx` |
|
||||||
|
|
||||||
## Supported countries
|
## Nvidia Store Reference
|
||||||
|
|
||||||
Used with the `COUNTRY` variable.
|
???+ note
|
||||||
|
Use the Nvidia Store to check stock for Founders Edition cards only (3060 Ti/3070/3080/3090). For USA use `bestbuy` instead.
|
||||||
|
|
||||||
???+ attention
|
???+ info
|
||||||
Used _only_ with `nvidia` and `nvidia-api`.
|
Use the `STORE` variable for your chosen country. For example, to check for a FE card in Belgium you would use the `nvidia-fr` store.
|
||||||
|
|
||||||
| Country | 3080 FE | 3090 FE | Test Card | Notes |
|
|
||||||
|:---:|:---:|:---:|:---:|:---:|
|
|
||||||
| `austria` | `✔` | `✔` | `✔` | |
|
|
||||||
| `belgium` | `✔` | `✔` | `✔` | |
|
|
||||||
| `canada` | `✔` | `✔` | `✔` | |
|
|
||||||
| `czechia` | `✔` | `✔` | `✔` | |
|
|
||||||
| `denmark` | `✔` | | `✔` | Missing RTX 3090 |
|
|
||||||
| `finland` | `✔` | | `✔` | Missing RTX 3090 |
|
|
||||||
| `france` | `✔` | `✔` | `✔` | |
|
|
||||||
| `germany` | `✔` | `✔` | `✔` | |
|
|
||||||
| `great_britain` | `✔` | `✔` | `✔` | |
|
|
||||||
| `ireland` | `✔` | `✔` | `✔` | |
|
|
||||||
| `italy` | `✔` | `✔` | `✔` | |
|
|
||||||
| `luxembourg` | `✔` | `✔` | `✔` | |
|
|
||||||
| `netherlands` | `✔` | `✔` | `✔` | |
|
|
||||||
| `norway` | `✔` | `✔` | `✔` | |
|
|
||||||
| `poland` | `✔` | `✔` | `✔` | |
|
|
||||||
| `portugal` | `✔` | | | RTX 3080 only |
|
|
||||||
| `spain` | `✔` | `✔` | `✔` | |
|
|
||||||
| `sweden` | `✔` | `✔` | `✔` | |
|
|
||||||
| `usa` | `✔` | `✔` | `✔` | |
|
|
||||||
|
|
||||||
|
| Country | Store | Retailer
|
||||||
|
|:---:|:---:|:---:|
|
||||||
|
| Austria | `nvidia-de`| NBB |
|
||||||
|
| Belgium | `nvidia-fr` | LDLC |
|
||||||
|
| France | `nvidia-fr` | LDLC |
|
||||||
|
| Germany | `nvidia-de` | NBB |
|
||||||
|
| Ireland | `nvidia-gb` | Scan |
|
||||||
|
| Luxembourg | `nvidia-fr` | LDLC |
|
||||||
|
| Spain | `nvidia-es` | LDLC |
|
||||||
|
| United Kingdom | `nvidia-gb` | Scan |
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ You can test your notification configuration by running `npm run test:notificati
|
|||||||
| Environment variable | Description |
|
| Environment variable | Description |
|
||||||
|:---:|---|
|
|:---:|---|
|
||||||
| `DISCORD_NOTIFY_GROUP` | Discord group you would like to notify |
|
| `DISCORD_NOTIFY_GROUP` | Discord group you would like to notify |
|
||||||
|
| `DISCORD_NOTIFY_GROUP_3060` | Discord group to notify on 3060 stock |
|
||||||
| `DISCORD_NOTIFY_GROUP_3060TI` | Discord group to notify on 3060 Ti stock |
|
| `DISCORD_NOTIFY_GROUP_3060TI` | Discord group to notify on 3060 Ti stock |
|
||||||
| `DISCORD_NOTIFY_GROUP_3070` | Discord group to notify on 3070 stock |
|
| `DISCORD_NOTIFY_GROUP_3070` | Discord group to notify on 3070 stock |
|
||||||
| `DISCORD_NOTIFY_GROUP_3080` | Discord group to notify on 3080 stock |
|
| `DISCORD_NOTIFY_GROUP_3080` | Discord group to notify on 3080 stock |
|
||||||
@@ -73,6 +74,7 @@ Default provider is Gmail. If you use a different email provider, you must provi
|
|||||||
| Sprint | `sprint`|
|
| Sprint | `sprint`|
|
||||||
| Telus | `telus`|
|
| Telus | `telus`|
|
||||||
| T-Mobile | `tmobile`|
|
| T-Mobile | `tmobile`|
|
||||||
|
| USCC | `uscc`|
|
||||||
| Verizon | `verizon`|
|
| Verizon | `verizon`|
|
||||||
| Virgin | `virgin`|
|
| Virgin | `virgin`|
|
||||||
| Virgin (CA) | `virgin-ca`|
|
| Virgin (CA) | `virgin-ca`|
|
||||||
@@ -155,6 +157,15 @@ Generate token at [pushover.net/apps/build](https://pushover.net/apps/build).
|
|||||||
| `SLACK_CHANNEL` | Channel for posting |
|
| `SLACK_CHANNEL` | Channel for posting |
|
||||||
| `SLACK_TOKEN` | API token |
|
| `SLACK_TOKEN` | API token |
|
||||||
|
|
||||||
|
## SmartThings
|
||||||
|
|
||||||
|
Generate token at [account.smartthings.com/tokens](https://account.smartthings.com/tokens).
|
||||||
|
|
||||||
|
| Environment variable | Description |
|
||||||
|
|:---:|---|
|
||||||
|
| `SMARTTHINGS_TOKEN` | Access token |
|
||||||
|
| `SMARTTHINGS_SWITCH_LABEL` | Switch Label of switch to activate|
|
||||||
|
|
||||||
## Telegram
|
## Telegram
|
||||||
|
|
||||||
| Environment variable | Description |
|
| Environment variable | Description |
|
||||||
@@ -199,3 +210,16 @@ Instructions on how to set up tokens can be found at [d-fischer.github.io/twitch
|
|||||||
| `TWITCH_ACCESS_TOKEN` | Twitch access token |
|
| `TWITCH_ACCESS_TOKEN` | Twitch access token |
|
||||||
| `TWITCH_REFRESH_TOKEN` | Twitch refresh token |
|
| `TWITCH_REFRESH_TOKEN` | Twitch refresh token |
|
||||||
| `TWITCH_CHANNEL` | Twitch channel |
|
| `TWITCH_CHANNEL` | Twitch channel |
|
||||||
|
|
||||||
|
## StreamLabs
|
||||||
|
|
||||||
|
Instructions on how to set up tokens can be found at [dev.streamlabs.com](https://dev.streamlabs.com/docs/register-your-application).
|
||||||
|
You don't need to submit your application for review, just whitelist yourself!
|
||||||
|
|
||||||
|
| Environment variable | Description |
|
||||||
|
|:---:|---|
|
||||||
|
| `STREAMLABS_ACCESS_TOKEN` | StreamLabs access token |
|
||||||
|
| `STREAMLABS_TYPE` | StreamLabs alert type |
|
||||||
|
| `STREAMLABS_IMAGE`| Custom image to display. Leave it blank for default |
|
||||||
|
| `STREAMLABS_SOUND` | Custom image to play. Leave it blank for default |
|
||||||
|
| `STREAMLABS_DURATION` | StreamLabs alert duration (in milliseconds) |
|
||||||
|
|||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../../terraform/README.md
|
||||||
+10
-3
@@ -7,9 +7,9 @@ ASCII_BANNER=
|
|||||||
ASCII_COLOR=
|
ASCII_COLOR=
|
||||||
AUTO_ADD_TO_CART=
|
AUTO_ADD_TO_CART=
|
||||||
BROWSER_TRUSTED=
|
BROWSER_TRUSTED=
|
||||||
COUNTRY=
|
|
||||||
DESKTOP_NOTIFICATIONS=
|
DESKTOP_NOTIFICATIONS=
|
||||||
DISCORD_NOTIFY_GROUP=
|
DISCORD_NOTIFY_GROUP=
|
||||||
|
DISCORD_NOTIFY_GROUP_3060=
|
||||||
DISCORD_NOTIFY_GROUP_3060TI=
|
DISCORD_NOTIFY_GROUP_3060TI=
|
||||||
DISCORD_NOTIFY_GROUP_3070=
|
DISCORD_NOTIFY_GROUP_3070=
|
||||||
DISCORD_NOTIFY_GROUP_3080=
|
DISCORD_NOTIFY_GROUP_3080=
|
||||||
@@ -35,6 +35,7 @@ HEADLESS=
|
|||||||
IN_STOCK_WAIT_TIME=
|
IN_STOCK_WAIT_TIME=
|
||||||
LOG_LEVEL=
|
LOG_LEVEL=
|
||||||
LOW_BANDWIDTH=
|
LOW_BANDWIDTH=
|
||||||
|
MAX_PRICE_SERIES_3060=
|
||||||
MAX_PRICE_SERIES_3060TI=
|
MAX_PRICE_SERIES_3060TI=
|
||||||
MAX_PRICE_SERIES_3070=
|
MAX_PRICE_SERIES_3070=
|
||||||
MAX_PRICE_SERIES_3080=
|
MAX_PRICE_SERIES_3080=
|
||||||
@@ -60,8 +61,6 @@ MQTT_PASSWORD=
|
|||||||
MQTT_QOS=
|
MQTT_QOS=
|
||||||
MQTT_TOPIC=
|
MQTT_TOPIC=
|
||||||
MQTT_USERNAME=
|
MQTT_USERNAME=
|
||||||
NVIDIA_ADD_TO_CART_ATTEMPTS=
|
|
||||||
NVIDIA_SESSION_TTL=
|
|
||||||
OPEN_BROWSER=
|
OPEN_BROWSER=
|
||||||
PAGE_BACKOFF_MIN=
|
PAGE_BACKOFF_MIN=
|
||||||
PAGE_BACKOFF_MAX=
|
PAGE_BACKOFF_MAX=
|
||||||
@@ -91,12 +90,15 @@ PUSHOVER_RETRY=
|
|||||||
PUSHOVER_TOKEN=
|
PUSHOVER_TOKEN=
|
||||||
PUSHOVER_USER=
|
PUSHOVER_USER=
|
||||||
PUSHOVER_PRIORITY=
|
PUSHOVER_PRIORITY=
|
||||||
|
RESTART_TIME=
|
||||||
SCREENSHOT=
|
SCREENSHOT=
|
||||||
SHOW_ONLY_BRANDS=
|
SHOW_ONLY_BRANDS=
|
||||||
SHOW_ONLY_MODELS=
|
SHOW_ONLY_MODELS=
|
||||||
SHOW_ONLY_SERIES=
|
SHOW_ONLY_SERIES=
|
||||||
SLACK_CHANNEL=
|
SLACK_CHANNEL=
|
||||||
SLACK_TOKEN=
|
SLACK_TOKEN=
|
||||||
|
SMARTTHINGS_TOKEN=
|
||||||
|
SMARTTHINGS_SWITCH_LABEL=
|
||||||
SMTP_ADDRESS=
|
SMTP_ADDRESS=
|
||||||
SMTP_PORT=
|
SMTP_PORT=
|
||||||
STORES=
|
STORES=
|
||||||
@@ -116,4 +118,9 @@ TWITTER_ACCESS_TOKEN_SECRET=
|
|||||||
TWITTER_CONSUMER_KEY=
|
TWITTER_CONSUMER_KEY=
|
||||||
TWITTER_CONSUMER_SECRET=
|
TWITTER_CONSUMER_SECRET=
|
||||||
TWITTER_TWEET_TAGS=
|
TWITTER_TWEET_TAGS=
|
||||||
|
STREAMLABS_ACCESS_TOKEN=
|
||||||
|
STREAMLABS_TYPE=
|
||||||
|
STREAMLABS_IMAGE=
|
||||||
|
STREAMLABS_SOUND=
|
||||||
|
STREAMLABS_DURATION=
|
||||||
WEB_PORT=
|
WEB_PORT=
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ nav:
|
|||||||
- Filter: reference/filter.md
|
- Filter: reference/filter.md
|
||||||
- Notification: reference/notification.md
|
- Notification: reference/notification.md
|
||||||
- Proxy: reference/proxy.md
|
- Proxy: reference/proxy.md
|
||||||
|
- Terraform: reference/terraform.md
|
||||||
- Help:
|
- Help:
|
||||||
- General: help/general.md
|
- General: help/general.md
|
||||||
- Troubleshoot: help/troubleshoot.md
|
- Troubleshoot: help/troubleshoot.md
|
||||||
|
|||||||
Generated
+14673
-1207
File diff suppressed because it is too large
Load Diff
+24
-24
@@ -1,16 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "streetmerchant",
|
"name": "streetmerchant",
|
||||||
|
"version": "3.5.0",
|
||||||
"description": "The world's easiest, most powerful stock checker",
|
"description": "The world's easiest, most powerful stock checker",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"all": "npm run compile && npm run lint && npm run test",
|
|
||||||
"fix": "gts fix",
|
"fix": "gts fix",
|
||||||
"lint": "gts lint",
|
"lint": "gts lint",
|
||||||
"clean": "gts clean",
|
"clean": "gts clean",
|
||||||
"compile": "tsc",
|
"compile": "tsc",
|
||||||
"pretest": "npm run compile",
|
"pretest": "npm run compile",
|
||||||
"posttest": "npm run lint",
|
"posttest": "npm run lint",
|
||||||
"start": "npm run compile && node build/src/index.js",
|
"prestart": "npm run compile",
|
||||||
|
"start": "node build/src/index.js",
|
||||||
"start:dev": "nodemon --config nodemon.json",
|
"start:dev": "nodemon --config nodemon.json",
|
||||||
"start:production": "node build/src/index.js",
|
"start:production": "node build/src/index.js",
|
||||||
"test": "c8 mocha 'build/test/**/test-*.js' --exclude 'build/test/functional/**/test-*.js'",
|
"test": "c8 mocha 'build/test/**/test-*.js' --exclude 'build/test/functional/**/test-*.js'",
|
||||||
@@ -18,7 +19,7 @@
|
|||||||
"test:notification:production": "node build/test/functional/test-notification.js"
|
"test:notification:production": "node build/test/functional/test-notification.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.0.0 <15.0.0"
|
"node": ">=12.0.0"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -32,11 +33,10 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/jef/streetmerchant#readme",
|
"homepage": "https://github.com/jef/streetmerchant#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@bridgerakol/samsung-smart-api": "^2.8.1",
|
||||||
"@doridian/puppeteer-page-proxy": "^1.2.11",
|
"@doridian/puppeteer-page-proxy": "^1.2.11",
|
||||||
"@jef/pushbullet": "^2.4.3",
|
"@jef/pushbullet": "^2.4.3",
|
||||||
"@slack/web-api": "^6.0.0",
|
"@slack/web-api": "^6.0.0",
|
||||||
"@types/random-useragent": "^0.3.0",
|
|
||||||
"@types/redis": "^2.8.28",
|
|
||||||
"chalk": "^4.1.0",
|
"chalk": "^4.1.0",
|
||||||
"cheerio": "^1.0.0-rc.5",
|
"cheerio": "^1.0.0-rc.5",
|
||||||
"discord.js": "^12.5.1",
|
"discord.js": "^12.5.1",
|
||||||
@@ -47,42 +47,42 @@
|
|||||||
"node-hue-api": "^4.0.10",
|
"node-hue-api": "^4.0.10",
|
||||||
"node-notifier": "^9.0.0",
|
"node-notifier": "^9.0.0",
|
||||||
"node-pagerduty": "^1.3.6",
|
"node-pagerduty": "^1.3.6",
|
||||||
"nodemailer": "^6.4.17",
|
"nodemailer": "^6.5.0",
|
||||||
"open": "^7.3.1",
|
"open": "^7.4.2",
|
||||||
"play-sound": "^1.1.3",
|
"play-sound": "^1.1.3",
|
||||||
"puppeteer": "^5.5.0",
|
"puppeteer": "^8.0.0",
|
||||||
"puppeteer-extra": "^3.1.16",
|
"puppeteer-extra": "^3.1.17",
|
||||||
"puppeteer-extra-plugin-adblocker": "^2.11.10",
|
"puppeteer-extra-plugin-adblocker": "^2.11.10",
|
||||||
"puppeteer-extra-plugin-block-resources": "^2.2.8",
|
"puppeteer-extra-plugin-block-resources": "^2.2.8",
|
||||||
"puppeteer-extra-plugin-stealth": "^2.6.6",
|
"puppeteer-extra-plugin-stealth": "^2.7.5",
|
||||||
"pushover-notifications": "^1.2.2",
|
"pushover-notifications": "^1.2.2",
|
||||||
"redis": "^3.0.2",
|
"redis": "^3.0.2",
|
||||||
"top-user-agents": "^1.0.19",
|
"top-user-agents": "^1.0.21",
|
||||||
"twilio": "^3.55.0",
|
"twilio": "^3.57.0",
|
||||||
"twitch": "^4.4.0",
|
"twitch": "^4.4.12",
|
||||||
"twitch-auth": "^4.4.0",
|
"twitch-auth": "^4.4.12",
|
||||||
"twitch-chat-client": "^4.4.0",
|
"twitch-chat-client": "^4.4.12",
|
||||||
"twitter": "^1.7.1",
|
"twitter": "^1.7.1",
|
||||||
"winston": "^3.3.3"
|
"winston": "^3.3.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async": "^3.2.5",
|
"@types/async": "^3.2.5",
|
||||||
"@types/cheerio": "^0.22.23",
|
"@types/cheerio": "^0.22.24",
|
||||||
"@types/mocha": "^8.2.0",
|
"@types/mocha": "^8.2.1",
|
||||||
"@types/node": "^14.14.21",
|
"@types/node": "^14.14.31",
|
||||||
"@types/node-fetch": "^2.5.8",
|
"@types/node-fetch": "^2.5.8",
|
||||||
"@types/node-notifier": "^8.0.0",
|
"@types/node-notifier": "^8.0.0",
|
||||||
"@types/nodemailer": "^6.4.0",
|
"@types/nodemailer": "^6.4.0",
|
||||||
"@types/puppeteer": "^5.4.2",
|
"@types/redis": "^2.8.28",
|
||||||
"@types/sinon": "^9.0.10",
|
"@types/sinon": "^9.0.10",
|
||||||
"@types/twitter": "^1.7.0",
|
"@types/twitter": "^1.7.0",
|
||||||
"c8": "^7.4.0",
|
"c8": "^7.6.0",
|
||||||
"gts": "^3.1.0",
|
"gts": "^3.1.0",
|
||||||
"mocha": "^8.2.1",
|
"mocha": "^8.3.0",
|
||||||
"nodemon": "^2.0.7",
|
"nodemon": "^2.0.7",
|
||||||
"sinon": "^9.2.3",
|
"sinon": "^9.2.4",
|
||||||
"ts-node": "^9.1.1",
|
"ts-node": "^9.1.1",
|
||||||
"typescript": "^4.1.3",
|
"typescript": "^4.2.2",
|
||||||
"webpack": "^5.14.0"
|
"webpack": "^5.24.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-5
@@ -1,7 +1,4 @@
|
|||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import {readFileSync} from 'fs';
|
|
||||||
|
|
||||||
const version = readFileSync('version.txt', 'utf8');
|
|
||||||
|
|
||||||
export const banner = {
|
export const banner = {
|
||||||
asciiVersion: `
|
asciiVersion: `
|
||||||
@@ -14,12 +11,12 @@ export const banner = {
|
|||||||
░ ░▒ ░ ░ ░ ░▒ ░ ▒░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░ ░ ▒ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░
|
░ ░▒ ░ ░ ░ ░▒ ░ ▒░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░ ░ ▒ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░
|
||||||
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░
|
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░
|
||||||
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
|
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
|
||||||
${version}`,
|
${process.env.npm_package_version}`,
|
||||||
render(ascii: boolean, hexColor: string) {
|
render(ascii: boolean, hexColor: string) {
|
||||||
return chalk
|
return chalk
|
||||||
.hex(hexColor)
|
.hex(hexColor)
|
||||||
.bold(ascii ? this.asciiVersion : this.stringVersion);
|
.bold(ascii ? this.asciiVersion : this.stringVersion);
|
||||||
},
|
},
|
||||||
stringVersion: `STREETMERCHANT
|
stringVersion: `STREETMERCHANT
|
||||||
${version}`,
|
${process.env.npm_package_version}`,
|
||||||
};
|
};
|
||||||
|
|||||||
+22
-3
@@ -158,7 +158,7 @@ function envOrNumberMax(
|
|||||||
return number ?? 0;
|
return number ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadProxyList(filename: string): string[] {
|
function loadProxyList(filename: string): string[] | undefined {
|
||||||
try {
|
try {
|
||||||
return readFileSync(`${filename}.proxies`)
|
return readFileSync(`${filename}.proxies`)
|
||||||
.toString()
|
.toString()
|
||||||
@@ -166,7 +166,7 @@ function loadProxyList(filename: string): string[] {
|
|||||||
.split('\n')
|
.split('\n')
|
||||||
.map(x => x.trim());
|
.map(x => x.trim());
|
||||||
} catch {
|
} catch {
|
||||||
return [];
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,6 +208,7 @@ const notifications = {
|
|||||||
discord: {
|
discord: {
|
||||||
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
|
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
|
||||||
notifyGroupSeries: {
|
notifyGroupSeries: {
|
||||||
|
3060: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060),
|
||||||
'3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI),
|
'3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI),
|
||||||
3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070),
|
3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070),
|
||||||
3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080),
|
3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080),
|
||||||
@@ -278,6 +279,7 @@ const notifications = {
|
|||||||
['sprint', 'messaging.sprintpcs.com'],
|
['sprint', 'messaging.sprintpcs.com'],
|
||||||
['telus', 'msg.telus.com'],
|
['telus', 'msg.telus.com'],
|
||||||
['tmobile', 'tmomail.net'],
|
['tmobile', 'tmomail.net'],
|
||||||
|
['uscc', 'mms.uscc.net'],
|
||||||
['verizon', 'vtext.com'],
|
['verizon', 'vtext.com'],
|
||||||
['virgin', 'vmobl.com'],
|
['virgin', 'vmobl.com'],
|
||||||
['virgin-ca', 'vmobile.ca'],
|
['virgin-ca', 'vmobile.ca'],
|
||||||
@@ -302,6 +304,10 @@ const notifications = {
|
|||||||
channel: envOrString(process.env.SLACK_CHANNEL),
|
channel: envOrString(process.env.SLACK_CHANNEL),
|
||||||
token: envOrString(process.env.SLACK_TOKEN),
|
token: envOrString(process.env.SLACK_TOKEN),
|
||||||
},
|
},
|
||||||
|
smartthings: {
|
||||||
|
token: envOrString(process.env.SMARTTHINGS_TOKEN),
|
||||||
|
device: envOrString(process.env.SMARTTHINGS_SWITCH_LABEL),
|
||||||
|
},
|
||||||
soundPlayer: envOrString(process.env.SOUND_PLAYER),
|
soundPlayer: envOrString(process.env.SOUND_PLAYER),
|
||||||
telegram: {
|
telegram: {
|
||||||
accessToken: envOrString(process.env.TELEGRAM_ACCESS_TOKEN),
|
accessToken: envOrString(process.env.TELEGRAM_ACCESS_TOKEN),
|
||||||
@@ -327,6 +333,13 @@ const notifications = {
|
|||||||
consumerSecret: envOrString(process.env.TWITTER_CONSUMER_SECRET),
|
consumerSecret: envOrString(process.env.TWITTER_CONSUMER_SECRET),
|
||||||
tweetTags: envOrString(process.env.TWITTER_TWEET_TAGS),
|
tweetTags: envOrString(process.env.TWITTER_TWEET_TAGS),
|
||||||
},
|
},
|
||||||
|
streamlabs: {
|
||||||
|
accessToken: envOrString(process.env.STREAMLABS_ACCESS_TOKEN),
|
||||||
|
type: envOrString(process.env.STREAMLABS_TYPE),
|
||||||
|
imageHref: envOrString(process.env.STREAMLABS_IMAGE),
|
||||||
|
soundHref: envOrString(process.env.STREAMLABS_SOUND),
|
||||||
|
duration: envOrNumber(process.env.STREAMLABS_DURATION),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const nvidia = {
|
const nvidia = {
|
||||||
@@ -360,6 +373,7 @@ const store = {
|
|||||||
country: envOrString(process.env.COUNTRY, 'usa'),
|
country: envOrString(process.env.COUNTRY, 'usa'),
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
series: {
|
series: {
|
||||||
|
3060: envOrNumber(process.env.MAX_PRICE_SERIES_3060),
|
||||||
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
|
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
|
||||||
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
|
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
|
||||||
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
|
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
|
||||||
@@ -391,6 +405,7 @@ const store = {
|
|||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
|
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
|
||||||
|
'3060',
|
||||||
'3060ti',
|
'3060ti',
|
||||||
'3070',
|
'3070',
|
||||||
'3080',
|
'3080',
|
||||||
@@ -402,6 +417,7 @@ const store = {
|
|||||||
'ryzen5800',
|
'ryzen5800',
|
||||||
'ryzen5900',
|
'ryzen5900',
|
||||||
'ryzen5950',
|
'ryzen5950',
|
||||||
|
'sf',
|
||||||
'sonyps5c',
|
'sonyps5c',
|
||||||
'sonyps5de',
|
'sonyps5de',
|
||||||
'xboxss',
|
'xboxss',
|
||||||
@@ -412,7 +428,7 @@ const store = {
|
|||||||
|
|
||||||
let proxyList = loadProxyList(name);
|
let proxyList = loadProxyList(name);
|
||||||
|
|
||||||
if (proxyList.length === 0) {
|
if (!proxyList) {
|
||||||
proxyList = loadProxyList('global');
|
proxyList = loadProxyList('global');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -433,6 +449,8 @@ const store = {
|
|||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const restartTime = envOrNumber(process.env.RESTART_TIME, 0);
|
||||||
|
|
||||||
export const defaultStoreData = {
|
export const defaultStoreData = {
|
||||||
maxPageSleep: browser.maxSleep,
|
maxPageSleep: browser.maxSleep,
|
||||||
minPageSleep: browser.minSleep,
|
minPageSleep: browser.minSleep,
|
||||||
@@ -447,6 +465,7 @@ export const config = {
|
|||||||
page,
|
page,
|
||||||
proxy,
|
proxy,
|
||||||
store,
|
store,
|
||||||
|
restartTime,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function setConfig(newConfig: any) {
|
export function setConfig(newConfig: any) {
|
||||||
|
|||||||
+19
-7
@@ -1,18 +1,29 @@
|
|||||||
import * as Process from 'process';
|
import * as Process from 'process';
|
||||||
import {config} from './config'; // Needs to be loaded first
|
import {config} from './config'; // Needs to be loaded first
|
||||||
import {startAPIServer, stopAPIServer} from './web'; // eslint-disable-line sort-imports
|
import {startAPIServer, stopAPIServer} from './web';
|
||||||
import {Browser} from 'puppeteer';
|
import {Browser, launch} from 'puppeteer';
|
||||||
import {getSleepTime} from './util';
|
import {getSleepTime} from './util';
|
||||||
import {logger} from './logger';
|
import {logger} from './logger';
|
||||||
import puppeteer from 'puppeteer-extra';
|
|
||||||
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
|
|
||||||
import {storeList} from './store/model';
|
import {storeList} from './store/model';
|
||||||
import {tryLookupAndLoop} from './store';
|
import {tryLookupAndLoop} from './store';
|
||||||
|
|
||||||
puppeteer.use(stealthPlugin());
|
|
||||||
|
|
||||||
let browser: Browser | undefined;
|
let browser: Browser | undefined;
|
||||||
|
|
||||||
|
async function sleep(ms: number) {
|
||||||
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Schedules a restart of the bot
|
||||||
|
*/
|
||||||
|
async function restartMain() {
|
||||||
|
if (config.restartTime > 0) {
|
||||||
|
await sleep(config.restartTime);
|
||||||
|
await stop();
|
||||||
|
loopMain();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Starts the bot.
|
* Starts the bot.
|
||||||
*/
|
*/
|
||||||
@@ -48,7 +59,7 @@ async function main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await stop();
|
await stop();
|
||||||
browser = await puppeteer.launch({
|
browser = await launch({
|
||||||
args,
|
args,
|
||||||
defaultViewport: {
|
defaultViewport: {
|
||||||
height: config.page.height,
|
height: config.page.height,
|
||||||
@@ -92,6 +103,7 @@ async function stopAndExit() {
|
|||||||
*/
|
*/
|
||||||
async function loopMain() {
|
async function loopMain() {
|
||||||
try {
|
try {
|
||||||
|
restartMain();
|
||||||
await main();
|
await main();
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error(
|
logger.error(
|
||||||
|
|||||||
@@ -241,11 +241,25 @@ function buildSetupString(
|
|||||||
|
|
||||||
function buildProductString(link: Link, store: Store, color?: boolean): string {
|
function buildProductString(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
|
if (store.currentProxyIndex !== undefined && store.proxyList) {
|
||||||
|
const proxy = `${store.currentProxyIndex + 1}/${store.proxyList.length}`;
|
||||||
|
return (
|
||||||
|
chalk.gray(`[${proxy}]`) +
|
||||||
|
chalk.cyan(` [${store.name}]`) +
|
||||||
|
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
return (
|
return (
|
||||||
chalk.cyan(`[${store.name}]`) +
|
chalk.cyan(`[${store.name}]`) +
|
||||||
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
|
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (store.currentProxyIndex !== undefined && store.proxyList) {
|
||||||
|
const proxy = `${store.currentProxyIndex + 1}/${store.proxyList.length}`;
|
||||||
|
return `[${proxy}] [${store.name}] [${link.brand} (${link.series})] ${link.model}`;
|
||||||
|
} else {
|
||||||
return `[${store.name}] [${link.brand} (${link.series})] ${link.model}`;
|
return `[${store.name}] [${link.brand} (${link.series})] ${link.model}`;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export function sendDiscordMessage(link: Link, store: Store) {
|
|||||||
notifyText = notifyText.concat(notifyGroup);
|
notifyText = notifyText.concat(notifyGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.keys(notifyGroupSeries).indexOf(link.series) !== 0) {
|
if (Object.keys(notifyGroupSeries).indexOf(link.series) !== -1) {
|
||||||
notifyText = notifyText.concat(notifyGroupSeries[link.series]);
|
notifyText = notifyText.concat(notifyGroupSeries[link.series]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import {sendTweet} from './twitter';
|
|||||||
import {sendTwilioMessage} from './twilio';
|
import {sendTwilioMessage} from './twilio';
|
||||||
import {sendTwitchMessage} from './twitch';
|
import {sendTwitchMessage} from './twitch';
|
||||||
import {updateRedis} from './redis';
|
import {updateRedis} from './redis';
|
||||||
|
import {activateSmartthingsSwitch} from './smartthings';
|
||||||
|
import {sendStreamLabsAlert} from './streamlabs';
|
||||||
|
|
||||||
export function sendNotification(link: Link, store: Store) {
|
export function sendNotification(link: Link, store: Store) {
|
||||||
// Priority
|
// Priority
|
||||||
@@ -24,6 +26,7 @@ export function sendNotification(link: Link, store: Store) {
|
|||||||
sendEmail(link, store);
|
sendEmail(link, store);
|
||||||
sendSms(link, store);
|
sendSms(link, store);
|
||||||
// Non-priority
|
// Non-priority
|
||||||
|
activateSmartthingsSwitch();
|
||||||
adjustPhilipsHueLights();
|
adjustPhilipsHueLights();
|
||||||
sendMqttMessage(link, store);
|
sendMqttMessage(link, store);
|
||||||
sendPagerDutyNotification(link, store);
|
sendPagerDutyNotification(link, store);
|
||||||
@@ -35,4 +38,5 @@ export function sendNotification(link: Link, store: Store) {
|
|||||||
sendTwilioMessage(link, store);
|
sendTwilioMessage(link, store);
|
||||||
sendTwitchMessage(link, store);
|
sendTwitchMessage(link, store);
|
||||||
updateRedis(link, store);
|
updateRedis(link, store);
|
||||||
|
sendStreamLabsAlert(link, store);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
import {SmartThings} from '@bridgerakol/samsung-smart-api';
|
||||||
|
import {logger} from '../logger';
|
||||||
|
import {config} from '../config';
|
||||||
|
|
||||||
|
const {smartthings} = config.notifications;
|
||||||
|
|
||||||
|
export async function activateSmartthingsSwitch() {
|
||||||
|
if (!smartthings.token || !smartthings.device) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const st = new SmartThings(smartthings.token);
|
||||||
|
let match = false;
|
||||||
|
try {
|
||||||
|
await st.devices.getList().then(res => {
|
||||||
|
res.data.items.forEach(
|
||||||
|
async (item: {label: string; deviceId: string}) => {
|
||||||
|
if (smartthings.device === item.label) {
|
||||||
|
match = true;
|
||||||
|
const device_status = (await st.devices.getStatus(item.deviceId))
|
||||||
|
.data.components.main.switch.switch.value;
|
||||||
|
if (device_status !== 'on') {
|
||||||
|
logger.debug(`Turning on ${smartthings.device}`);
|
||||||
|
st.devices.commands(item.deviceId, 'on');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
} catch (TypeError) {
|
||||||
|
logger.warn(
|
||||||
|
'SmartThings : Problem getting data from hub, check SMARTTHINGS_TOKEN'
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!match) {
|
||||||
|
logger.warn(
|
||||||
|
`SmartThings : No switch called ${smartthings.device}, check SMARTTHINGS_SWITCH_LABEL`
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import {Link, Store} from '../store/model';
|
||||||
|
import {Print, logger} from '../logger';
|
||||||
|
import {config} from '../config';
|
||||||
|
import {URLSearchParams} from 'url';
|
||||||
|
import fetch from 'node-fetch';
|
||||||
|
|
||||||
|
const {streamlabs} = config.notifications;
|
||||||
|
let requestParams: URLSearchParams;
|
||||||
|
|
||||||
|
if (streamlabs.accessToken && streamlabs.type) {
|
||||||
|
requestParams = new URLSearchParams();
|
||||||
|
requestParams.append('access_token', streamlabs.accessToken);
|
||||||
|
requestParams.append('type', streamlabs.type);
|
||||||
|
requestParams.append('image_href', streamlabs.imageHref);
|
||||||
|
requestParams.append('sound_href', streamlabs.soundHref);
|
||||||
|
requestParams.append('duration', streamlabs.duration.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
export function sendStreamLabsAlert(link: Link, store: Store) {
|
||||||
|
if (requestParams) {
|
||||||
|
logger.debug('↗ sending StreamLabs alert');
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
const message = `${Print.inStock(link, store)}`;
|
||||||
|
requestParams.set('message', message);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch('https://streamlabs.com/api/v1.0/alerts', {
|
||||||
|
method: 'POST',
|
||||||
|
body: requestParams,
|
||||||
|
});
|
||||||
|
|
||||||
|
const json = await response.json();
|
||||||
|
if (!json.success) throw Error(JSON.stringify(json));
|
||||||
|
|
||||||
|
logger.info('✔ StreamLabs alert sent');
|
||||||
|
} catch (error: unknown) {
|
||||||
|
logger.error("✖ couldn't send StreamLabs alert", error);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
}
|
||||||
+41
-37
@@ -1,10 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
Browser,
|
Browser,
|
||||||
Page,
|
Page,
|
||||||
PageEventObj,
|
HTTPRequest,
|
||||||
Request,
|
HTTPResponse,
|
||||||
RespondOptions,
|
ResponseForRequest,
|
||||||
Response,
|
|
||||||
} from 'puppeteer';
|
} from 'puppeteer';
|
||||||
import {Link, Store, getStores} from './model';
|
import {Link, Store, getStores} from './model';
|
||||||
import {Print, logger} from '../logger';
|
import {Print, logger} from '../logger';
|
||||||
@@ -37,21 +36,24 @@ function nextProxy(store: Store) {
|
|||||||
|
|
||||||
if (store.currentProxyIndex === undefined) {
|
if (store.currentProxyIndex === undefined) {
|
||||||
store.currentProxyIndex = 0;
|
store.currentProxyIndex = 0;
|
||||||
|
} else {
|
||||||
|
store.currentProxyIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
store.currentProxyIndex++;
|
|
||||||
if (store.currentProxyIndex >= store.proxyList.length) {
|
if (store.currentProxyIndex >= store.proxyList.length) {
|
||||||
store.currentProxyIndex = 0;
|
store.currentProxyIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(
|
logger.debug(
|
||||||
`ℹ [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${store.proxyList.length}`
|
`ℹ [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${
|
||||||
|
store.proxyList.length
|
||||||
|
} (${store.proxyList[store.currentProxyIndex]})`
|
||||||
);
|
);
|
||||||
|
|
||||||
return store.proxyList[store.currentProxyIndex];
|
return store.proxyList[store.currentProxyIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleLowBandwidth(request: Request) {
|
async function handleLowBandwidth(request: HTTPRequest) {
|
||||||
if (!config.browser.lowBandwidth) {
|
if (!config.browser.lowBandwidth) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -70,7 +72,7 @@ async function handleLowBandwidth(request: Request) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleProxy(request: Request, proxy?: string) {
|
async function handleProxy(request: HTTPRequest, proxy?: string) {
|
||||||
if (!proxy) {
|
if (!proxy) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -89,7 +91,7 @@ async function handleProxy(request: Request, proxy?: string) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
|
async function handleAdBlock(request: HTTPRequest, adBlockRequestHandler: any) {
|
||||||
if (!adBlockRequestHandler) {
|
if (!adBlockRequestHandler) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -109,7 +111,7 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
|
|||||||
resolve(true);
|
resolve(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
const respondFunc = async (response: RespondOptions) => {
|
const respondFunc = async (response: ResponseForRequest) => {
|
||||||
try {
|
try {
|
||||||
await request.respond(response);
|
await request.respond(response);
|
||||||
} catch {
|
} catch {
|
||||||
@@ -196,7 +198,7 @@ async function lookup(browser: Browser, store: Store) {
|
|||||||
let adBlockRequestHandler: any;
|
let adBlockRequestHandler: any;
|
||||||
let pageProxy;
|
let pageProxy;
|
||||||
if (useAdBlock) {
|
if (useAdBlock) {
|
||||||
const onProxyFunc = (event: keyof PageEventObj, handler: any) => {
|
const onProxyFunc = (event: string, handler: any) => {
|
||||||
if (event !== 'request') {
|
if (event !== 'request') {
|
||||||
page.on(event, handler);
|
page.on(event, handler);
|
||||||
return;
|
return;
|
||||||
@@ -252,11 +254,22 @@ async function lookup(browser: Browser, store: Store) {
|
|||||||
try {
|
try {
|
||||||
statusCode = await lookupCard(browser, store, page, link);
|
statusCode = await lookupCard(browser, store, page, link);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
|
if (store.currentProxyIndex !== undefined && store.proxyList) {
|
||||||
|
const proxy = `${store.currentProxyIndex + 1}/${
|
||||||
|
store.proxyList.length
|
||||||
|
}`;
|
||||||
|
logger.error(
|
||||||
|
`✖ [${proxy}] [${store.name}] ${link.brand} ${link.series} ${
|
||||||
|
link.model
|
||||||
|
} - ${(error as Error).message}`
|
||||||
|
);
|
||||||
|
} else {
|
||||||
logger.error(
|
logger.error(
|
||||||
`✖ [${store.name}] ${link.brand} ${link.series} ${link.model} - ${
|
`✖ [${store.name}] ${link.brand} ${link.series} ${link.model} - ${
|
||||||
(error as Error).message
|
(error as Error).message
|
||||||
}`
|
}`
|
||||||
);
|
);
|
||||||
|
}
|
||||||
const client = await page.target().createCDPSession();
|
const client = await page.target().createCDPSession();
|
||||||
await client.send('Network.clearBrowserCookies');
|
await client.send('Network.clearBrowserCookies');
|
||||||
}
|
}
|
||||||
@@ -284,7 +297,7 @@ async function lookupCard(
|
|||||||
link: Link
|
link: Link
|
||||||
): Promise<number> {
|
): Promise<number> {
|
||||||
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
||||||
const response: Response | null = await page.goto(link.url, {
|
const response: HTTPResponse | null = await page.goto(link.url, {
|
||||||
waitUntil: givenWaitFor,
|
waitUntil: givenWaitFor,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -333,7 +346,7 @@ async function handleResponse(
|
|||||||
store: Store,
|
store: Store,
|
||||||
page: Page,
|
page: Page,
|
||||||
link: Link,
|
link: Link,
|
||||||
response?: Response | null,
|
response?: HTTPResponse | null,
|
||||||
recursionDepth = 0
|
recursionDepth = 0
|
||||||
) {
|
) {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
@@ -350,7 +363,7 @@ async function handleResponse(
|
|||||||
if (recursionDepth > 4) {
|
if (recursionDepth > 4) {
|
||||||
logger.warn(Print.recursionLimit(link, store, true));
|
logger.warn(Print.recursionLimit(link, store, true));
|
||||||
} else {
|
} else {
|
||||||
const response: Response | null = await page.waitForNavigation({
|
const response: HTTPResponse | null = await page.waitForNavigation({
|
||||||
waitUntil: 'networkidle0',
|
waitUntil: 'networkidle0',
|
||||||
});
|
});
|
||||||
recursionDepth++;
|
recursionDepth++;
|
||||||
@@ -436,14 +449,18 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fixme: currently causing issues
|
if (link.labels?.inStock) {
|
||||||
// Do API inventory validation in realtime (no cache) if available
|
const options = {
|
||||||
// if (
|
...baseOptions,
|
||||||
// store.realTimeInventoryLookup !== undefined &&
|
requireVisible: true,
|
||||||
// link.itemNumber !== undefined
|
type: 'outerHTML' as const,
|
||||||
// ) {
|
};
|
||||||
// return store.realTimeInventoryLookup(link.itemNumber);
|
|
||||||
// }
|
if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
|
||||||
|
logger.info(Print.outOfStock(link, store, true));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (store.labels.inStock) {
|
if (store.labels.inStock) {
|
||||||
const options = {
|
const options = {
|
||||||
@@ -458,19 +475,6 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (link.labels?.inStock) {
|
|
||||||
const options = {
|
|
||||||
...baseOptions,
|
|
||||||
requireVisible: true,
|
|
||||||
type: 'outerHTML' as const,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
|
|
||||||
logger.info(Print.outOfStock(link, store, true));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -508,7 +512,7 @@ async function runCaptchaDeterrent(browser: Browser, store: Store, page: Page) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
||||||
const response: Response | null = await page.goto(link.url, {
|
const response: HTTPResponse | null = await page.goto(link.url, {
|
||||||
waitUntil: givenWaitFor,
|
waitUntil: givenWaitFor,
|
||||||
});
|
});
|
||||||
statusCode = await handleResponse(browser, store, page, link, response);
|
statusCode = await handleResponse(browser, store, page, link, response);
|
||||||
|
|||||||
@@ -32,403 +32,403 @@ export const Alternate: Store = {
|
|||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.alternate.de/product/1662088',
|
url: 'https://www.alternate.de/html/product/1662088',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672868',
|
url: 'https://www.alternate.de/html/product/1672868',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672867',
|
url: 'https://www.alternate.de/html/product/1672867',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672251',
|
url: 'https://www.alternate.de/html/product/1672251',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672634',
|
url: 'https://www.alternate.de/html/product/1672634',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673517',
|
url: 'https://www.alternate.de/html/product/1673517',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673524',
|
url: 'https://www.alternate.de/html/product/1673524',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673512',
|
url: 'https://www.alternate.de/html/product/1673512',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673520',
|
url: 'https://www.alternate.de/html/product/1673520',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1674164',
|
url: 'https://www.alternate.de/html/product/1674164',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phantom gs',
|
model: 'phantom gs',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1688597',
|
url: 'https://www.alternate.de/html/product/1688597',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673442',
|
url: 'https://www.alternate.de/html/product/1673442',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1680168',
|
url: 'https://www.alternate.de/html/product/1680168',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1680168',
|
url: 'https://www.alternate.de/html/product/1680168',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672756',
|
url: 'https://www.alternate.de/html/product/1672756',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672753',
|
url: 'https://www.alternate.de/html/product/1672753',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1681134',
|
url: 'https://www.alternate.de/html/product/1681134',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673136',
|
url: 'https://www.alternate.de/html/product/1673136',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673134',
|
url: 'https://www.alternate.de/html/product/1673134',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673137',
|
url: 'https://www.alternate.de/html/product/1673137',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672343',
|
url: 'https://www.alternate.de/html/product/1672343',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672345',
|
url: 'https://www.alternate.de/html/product/1672345',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gamerock oc',
|
model: 'gamerock oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1688594',
|
url: 'https://www.alternate.de/html/product/1688594',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673431',
|
url: 'https://www.alternate.de/html/product/1673431',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp extreme holo',
|
model: 'amp extreme holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1677982',
|
url: 'https://www.alternate.de/html/product/1677982',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp holo',
|
model: 'amp holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1677985',
|
url: 'https://www.alternate.de/html/product/1677985',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1677989',
|
url: 'https://www.alternate.de/html/product/1677989',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672612',
|
url: 'https://www.alternate.de/html/product/1672612',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672870',
|
url: 'https://www.alternate.de/html/product/1672870',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672872',
|
url: 'https://www.alternate.de/html/product/1672872',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672259',
|
url: 'https://www.alternate.de/html/product/1672259',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672629',
|
url: 'https://www.alternate.de/html/product/1672629',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673530',
|
url: 'https://www.alternate.de/html/product/1673530',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673531',
|
url: 'https://www.alternate.de/html/product/1673531',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673521',
|
url: 'https://www.alternate.de/html/product/1673521',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673525',
|
url: 'https://www.alternate.de/html/product/1673525',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673529',
|
url: 'https://www.alternate.de/html/product/1673529',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673440',
|
url: 'https://www.alternate.de/html/product/1673440',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1680670',
|
url: 'https://www.alternate.de/html/product/1680670',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1687793',
|
url: 'https://www.alternate.de/html/product/1687793',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672744',
|
url: 'https://www.alternate.de/html/product/1672744',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672749',
|
url: 'https://www.alternate.de/html/product/1672749',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'turbo',
|
model: 'turbo',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1687703',
|
url: 'https://www.alternate.de/html/product/1687703',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'gaming x3',
|
model: 'gaming x3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673131',
|
url: 'https://www.alternate.de/html/product/1673131',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673135',
|
url: 'https://www.alternate.de/html/product/1673135',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673129',
|
url: 'https://www.alternate.de/html/product/1673129',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672341',
|
url: 'https://www.alternate.de/html/product/1672341',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672346',
|
url: 'https://www.alternate.de/html/product/1672346',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673434',
|
url: 'https://www.alternate.de/html/product/1673434',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672611',
|
url: 'https://www.alternate.de/html/product/1672611',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.alternate.de/product/1685588',
|
url: 'https://www.alternate.de/html/product/1685588',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.alternate.de/product/1685585',
|
url: 'https://www.alternate.de/html/product/1685585',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.alternate.de/product/1685590',
|
url: 'https://www.alternate.de/html/product/1685590',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.alternate.de/product/1685584',
|
url: 'https://www.alternate.de/html/product/1685584',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.alternate.de/product/1651220',
|
url: 'https://www.alternate.de/html/product/1651220',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.alternate.de/product/1651221',
|
url: 'https://www.alternate.de/html/product/1651221',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'xfx',
|
brand: 'xfx',
|
||||||
model: 'merc',
|
model: 'merc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1698792',
|
url: 'https://www.alternate.de/html/product/1698792',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro oc se',
|
model: 'nitro oc se',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1696478',
|
url: 'https://www.alternate.de/html/product/1696478',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro oc',
|
model: 'nitro oc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1696482',
|
url: 'https://www.alternate.de/html/product/1696482',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix lc',
|
model: 'strix lc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1695392',
|
url: 'https://www.alternate.de/html/product/1695392',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1697044',
|
url: 'https://www.alternate.de/html/product/1697044',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.alternate.de/product/1702773',
|
url: 'https://www.alternate.de/html/product/1702773',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.alternate.de/product/1700508',
|
url: 'https://www.alternate.de/html/product/1700508',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'xfx',
|
brand: 'xfx',
|
||||||
model: 'merc',
|
model: 'merc',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.alternate.de/product/1704614',
|
url: 'https://www.alternate.de/html/product/1704614',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.alternate.de/product/1675115',
|
url: 'https://www.alternate.de/html/product/1675115',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.alternate.de/product/1675117',
|
url: 'https://www.alternate.de/html/product/1675117',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.alternate.de/product/1676874',
|
url: 'https://www.alternate.de/html/product/1651220',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
name: 'alternate',
|
name: 'alternate',
|
||||||
|
|||||||
@@ -12,7 +12,11 @@ export const AmazonCa: Store = {
|
|||||||
text: ['add to cart'],
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#priceblock_ourprice',
|
container: '.a-color-price',
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.a-color-price',
|
||||||
|
text: ['currently unavailable.'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
|
|||||||
@@ -708,6 +708,12 @@ export const Amazon: Store = {
|
|||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1',
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#productTitle',
|
||||||
|
text: ['playstation 5 console'],
|
||||||
|
},
|
||||||
|
},
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.com/dp/B08FC5L3RG',
|
url: 'https://www.amazon.com/dp/B08FC5L3RG',
|
||||||
|
|||||||
@@ -40,6 +40,11 @@ export const Aria: Store = {
|
|||||||
titleSelector: 'strong > a[href]',
|
titleSelector: 'strong > a[href]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -20,6 +20,27 @@ export const BestBuyCa: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/google-nest-hello-wi-fi-video-doorbell-black-white/12222651',
|
'https://www.bestbuy.ca/en-ca/product/google-nest-hello-wi-fi-video-doorbell-black-white/12222651',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ventus-3x-12gb-gddr6-video-card/15324508',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3060-twin-edge-oc-12gb-gddr6-video-card/15309503',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3060-twin-edge-12gb-gddr6-video-card/15309504',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
|
|||||||
@@ -306,6 +306,20 @@ export const BestBuy: Store = {
|
|||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://api.bestbuy.com/click/-/6442485/pdp',
|
url: 'https://api.bestbuy.com/click/-/6442485/pdp',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6452940/cart',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://api.bestbuy.com/click/-/6452940/pdp',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6454328/cart',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://api.bestbuy.com/click/-/6454328/pdp',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
|
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ export const Box: Store = {
|
|||||||
titleSelector: '.p-list-section > h3 > a[href]',
|
titleSelector: '.p-list-section > h3 > a[href]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.box.co.uk/rtx-3060-graphics-cards',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards',
|
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards',
|
||||||
|
|||||||
@@ -482,6 +482,69 @@ export const CanadaComputers: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185168&language=en',
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185168&language=en',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=188914&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189034&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189035&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189411&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189542&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189460&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189615&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189625&language=en',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189626&language=en',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
|
|||||||
@@ -63,6 +63,11 @@ export const Ccl: Store = {
|
|||||||
titleSelector: '.productList_Detail a[title]',
|
titleSelector: '.productList_Detail a[title]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Graphics-Cards/',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const CorsairUK: Store = {
|
||||||
|
currency: '£',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#addToCartForm',
|
||||||
|
text: ['add to cart'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '#addToCartForm',
|
||||||
|
text: ['notify me when in stock'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.corsair.com/uk/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020181-UK',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
model: '750 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url:
|
||||||
|
'https://www.corsair.com/uk/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020186-UK',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
model: '600 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url:
|
||||||
|
'https://www.corsair.com/uk/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020182-UK',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
model: '600 gold',
|
||||||
|
series: 'sf',
|
||||||
|
url:
|
||||||
|
'https://www.corsair.com/uk/en/Categories/Products/Power-Supply-Units/SF-Series%E2%84%A2-80-PLUS-Gold-Power-Supplies/p/CP-9020105-UK',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'corsair-uk',
|
||||||
|
};
|
||||||
@@ -90,6 +90,11 @@ export const Currys: Store = {
|
|||||||
urlSelector: 'a[href]',
|
urlSelector: 'a[href]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.currys.co.uk/gbuk/rtx-3060/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00314002/xx-criteria.html',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -0,0 +1,76 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const DustinHomeNO: Store = {
|
||||||
|
currency: 'kr.',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'div.c-product-main-info > div.c-product-buy-wrapper > div.u-pt-16.u-relative.d-flex > div > span',
|
||||||
|
text: ['Kan sendes omgående'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'div.c-product-main-info > div.c-product-buy-wrapper > div.u-pt-16.u-relative.d-flex > div > span',
|
||||||
|
text: [
|
||||||
|
'Vi venter produktet til lager, men har foreløpig ingen bekreftet leveringsdato. Vi sender produktet så snart det er på lager.',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011216501/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011216707/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011197759/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011197760/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011197756/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011196134/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011196133/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011212484/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011199977/',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'dustinhome-no',
|
||||||
|
};
|
||||||
@@ -109,6 +109,16 @@ export const Ebuyer: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti',
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti?page=2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -0,0 +1,82 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Elkjop: Store = {
|
||||||
|
currency: 'kr.',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'#product-detail-wrapper > div.col.any-5-12.M-2-5.information > div.buy-button-container.align-left.any-1-1.table-btn > div > div > div.product-price-button-wrap > div > div > span > span',
|
||||||
|
text: ['Legg i handlevogn'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'#product-detail-wrapper > div.col.any-5-12.M-2-5.information > div.buy-button-container.align-left.any-1-1.table-btn > div > div > div.product-price-button-wrap > div > div > span > span',
|
||||||
|
text: ['Ikke tilgjengelig'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/218425/evga-geforce-rtx-3080-xc3-black',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/215370/pny-rtx-3090-24gb-xlr8-gaming-epic-x-rgb-3-fan-2-7slot',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.dustinhome.no/product/5011197759/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/218419/evga-geforce-rtx-3080-xc3',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 black',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/218425/evga-geforce-rtx-3080-xc3-black',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/220655/evga-geforce-rtx-3080-ftw3',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gaming pro oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/222470/geforce-rtx-3080-gamingpro-oc',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phoenix gs',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/222467/geforce-rtx-3080-phoenix-gs',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/224771/evga-geforce-rtx-3090-xc3-ultra-24gb',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'elkjop',
|
||||||
|
};
|
||||||
@@ -8,7 +8,7 @@ export const Galaxus: Store = {
|
|||||||
text: ['In den Warenkorb'],
|
text: ['In den Warenkorb'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.productDetail .Z1d7',
|
container: '.productDetail .Z1c8',
|
||||||
euroFormat: true,
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
|
|||||||
@@ -0,0 +1,581 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Globaldata: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'body > main > div.main-container > div.container.mb-5 > div.row.align-items-lg-start.z-above-pattern > ck-product-cta-box > div > div.d-flex.mt-4 > div.w-100 > ck-addto-cart-wrapper > form > div > div.w-100.pl-3 > button > span',
|
||||||
|
text: ['Adicionar ao carrinho'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'body > main > div.main-container > div.container.mb-5 > div.row.align-items-lg-start.z-above-pattern > ck-product-cta-box > div > div.d-flex.mt-4 > div.w-100 > button',
|
||||||
|
text: ['Notifique-me quando estiver em stock'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/drive-externa-dvdr-asus-sdrw-08d2s-u-lite-8x-branco-usb-20-90-dq0436-ua221kz',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3070-gaming-oc-8gb-gd6-gv-n3070gam-oc-8g',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3080-ek-10gd6x-90yv0f60-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3080-rog-strix-oc-10gd6x-90yv0fa1-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3080-rog-strix-oc-white-10gd6x-90yv0fa5-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3080-rog-strix-white-10gd6x-90yv0fa6-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3080-tuf-gaming-10gd6x-90yv0fb0-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3080-tuf-gaming-oc-10gd6x-90yv0fb1-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-aorus-master-10gb-gd6x-gvn3080aorusm',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-aorus-master-oc-10gb-gd6x-gvn3080am-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-aorus-xtreme-10gb-gd6x-gvn3080ax-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-eagle-10gb-gd6x-gv-n3080eagle-10gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-eagle-oc-10gb-gd6x-gvn3080eagleoc10gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-gaming-oc-10gb-gd6x-gvn3080gamingoc10g',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3080-vision-oc-10gb-gd6x-gvn3080visoc-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3080-gaming-x-trio-10g-4719072762544',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3080-suprim-x-10g-4719072762537',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3080-ventus-3x-10g-oc-4719072762520',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp extreme holo',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3080-amp-extreme-holo-10gb-gd6x-zt-a30800b-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3080-amp-holo-10gb-gd6x-zt-a30800f-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3080-trinity-10gb-gd6x-zt-a30800d-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3080-trinity-oc-10gb-gd6x-zt-a30800j-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-dual-8gb-gd6-90yv0fq1-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-dual-oc-8gb-gd6-90yv0fq0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-ek-8gb-gd6-90yv0fu0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-rog-strix-8gb-gd6-90yv0fr0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-rog-strix-oc-8gb-gd6-90yv0fr1-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc white',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-rog-strix-oc-white-8gb-gd6-90yv0fr5-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-rog-strix-white-8gb-gd6-90yv0fr6-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-tuf-gaming-8gb-gd6-90yv0fq7-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3070-tuf-gaming-oc-8gb-gd6-90yv0fq6-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3070-aorus-master-8gb-gd6-gvn3070am-00-11',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3070-eagle-8gb-gd6-gvn3070e-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3070-eagle-oc-8gb-gd6-gvn3070eo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3070-gaming-oc-8gb-gd6-gv-n3070gam-oc-8g',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3070-vision-oc-8gb-gd6-gvn3070vo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3070-gaming-x-trio-8g-912-v390-006',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3070-suprim-x-8g-4719072763046',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3070-ventus-2x-oc-8g-912-v390-008',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3070-ventus-3x-oc-8g-912-v390-007',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3070-amp-holo-8gb-gd6-zt-a30700f-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3070-twin-edge-8gb-gd6-zt-a30700e-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3070-twin-edge-oc-8gb-gd6-zt-a30700h-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc white',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3070-twin-edge-white-oc-8gb-gd6-zt-a30700j-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-ti-aorus-master-8gb-gd6-gvn306tam-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-ti-eagle-8gb-gd6-gvn306te-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-ti-eagle-oc-8gb-gd6-gvn306teo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-ti-gaming-oc-8gb-gd6-gvn306tgo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-ti-gaming-oc-pro-8gb-gd6-gvn306tgop-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ti-ventus-3x-oc-8g-4719072763152',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ti-gaming-x-trio-8g-912-v390-053',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-rog-strix-8gb-gd6-90yv0g00-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-dual-8gb-gd6-90yv0g13-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-dual-oc-8gb-gd6-90yv0g12-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-tuf-gaming-8gb-gd6-90yv0g11-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-tuf-gaming-oc-8gb-gd6-90yv0g10-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-rog-strix-oc-8gb-gd6-90yv0g02-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3060-ti-twin-edge-8gb-gd6-zt-a30610e-10m',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3060-ti-twin-edge-oc-8gb-gd6-zt-a30610h-10m',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ti-ventus-2x-ocv1-8g-912-v397-003',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-ti-vision-oc-8gb-gd6-gv-n306tvisoc-8gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-rog-strix-12gb-gd6-90yv0gc4-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-rog-strix-oc-12gb-gd6-90yv0gc2-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-tuf-gaming-12gb-gd6-90yv0gc1-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-tuf-gaming-oc-12gb-gd6-90yv0gc0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual mini oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-asus-geforce-rtx-3060-ti-dual-mini-oc-8gb-gd6-90yv0ft0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ti-gaming-x-8g-4719072781767',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3060-twin-edge-12gb-gd6-zt-a30600e-10m',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3060-amp-edition-white-12gb-gd6-zt-a30600f-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-zotac-geforce-rtx-3060-twin-edge-oc-12gb-gd6-zt-a30600h-10m',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-gaming-x-trio-12g-912-v390-081',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-gaming-x-12g-912-v397-037',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ventus-2x-12g-oc-912-v397-039',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-gigabyte-geforce-rtx-3060-gaming-oc-12gb-gd6-gvn3060go-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ventus-3x-12g-oc-912-v397-038',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/grafica-msi-geforce-rtx-3060-ventus-2x-12g-4719072803407',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5600x',
|
||||||
|
series: 'ryzen5600',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/processador-amd-ryzen-5-5600x-6-core-37ghz-46ghz-35mb-am4-100-100000065box',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/processador-amd-ryzen-7-5800x-8-core-38ghz-47ghz-36mb-am4-100-100000063wof',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5900x',
|
||||||
|
series: 'ryzen5900',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/processador-amd-ryzen-9-5900x-12-core-37ghz-48ghz-70mb-am4-100-100000061wof',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5950x',
|
||||||
|
series: 'ryzen5950',
|
||||||
|
url:
|
||||||
|
'https://www.globaldata.pt/processador-amd-ryzen-9-5950x-16-core-34ghz-49ghz-72mb-am4-100-100000059wof',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'globaldata',
|
||||||
|
waitUntil: 'domcontentloaded',
|
||||||
|
};
|
||||||
@@ -1,192 +0,0 @@
|
|||||||
import {NvidiaRegionInfo, regionInfos} from '../nvidia-api';
|
|
||||||
import {usingPage, usingResponse} from '../../../util';
|
|
||||||
import {Browser} from 'puppeteer';
|
|
||||||
import {config} from '../../../config';
|
|
||||||
import {logger} from '../../../logger';
|
|
||||||
import open from 'open';
|
|
||||||
|
|
||||||
interface NvidiaSessionTokenJSON {
|
|
||||||
session_token: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface NvidiaAddToCardJSON {
|
|
||||||
location: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class NvidiaCart {
|
|
||||||
protected readonly browser: Browser;
|
|
||||||
protected isKeepAlive = false;
|
|
||||||
protected sessionToken: string | null = null;
|
|
||||||
|
|
||||||
public constructor(browser: Browser) {
|
|
||||||
this.browser = browser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public keepAlive() {
|
|
||||||
if (this.isKeepAlive) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const callback = async () => {
|
|
||||||
if (!this.isKeepAlive) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await this.refreshSessionToken();
|
|
||||||
|
|
||||||
setTimeout(callback, config.nvidia.sessionTtl);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.isKeepAlive = true;
|
|
||||||
|
|
||||||
void callback();
|
|
||||||
}
|
|
||||||
|
|
||||||
public get fallbackCartUrl(): string {
|
|
||||||
return `https://www.nvidia.com/${this.regionInfo.siteLocale}/geforce/`;
|
|
||||||
}
|
|
||||||
|
|
||||||
public get regionInfo(): NvidiaRegionInfo {
|
|
||||||
const country = config.store.country.toLowerCase();
|
|
||||||
const regionInfo = regionInfos.get(country);
|
|
||||||
if (!regionInfo) {
|
|
||||||
throw new Error(`Unknown country ${country}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
return regionInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public get sessionUrl(): string {
|
|
||||||
return `https://store.nvidia.com/store/nvidia/SessionToken?format=json&locale=${this.regionInfo.drLocale}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async addToCard(productId: number, name: string): Promise<string> {
|
|
||||||
let cartUrl: string | undefined;
|
|
||||||
logger.info(`🚀🚀🚀 [nvidia] ${name}, starting auto add to cart 🚀🚀🚀`);
|
|
||||||
try {
|
|
||||||
logger.info(`🚀🚀🚀 [nvidia] ${name}, adding to cart 🚀🚀🚀`);
|
|
||||||
let lastError: Error | string | undefined;
|
|
||||||
|
|
||||||
/* eslint-disable no-await-in-loop */
|
|
||||||
for (let i = 0; i < config.nvidia.addToCardAttempts; i++) {
|
|
||||||
try {
|
|
||||||
cartUrl = await this.addToCartAndGetLocationRedirect(productId);
|
|
||||||
|
|
||||||
break;
|
|
||||||
} catch (error: unknown) {
|
|
||||||
logger.error(
|
|
||||||
`✖ [nvidia] ${name} could not automatically add to cart, attempt ${
|
|
||||||
i + 1
|
|
||||||
} of ${config.nvidia.addToCardAttempts}`,
|
|
||||||
error
|
|
||||||
);
|
|
||||||
logger.debug(error);
|
|
||||||
|
|
||||||
lastError = error as Error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* eslint-enable no-await-in-loop */
|
|
||||||
|
|
||||||
if (!cartUrl) {
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-throw-literal
|
|
||||||
throw lastError;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info(`🚀🚀🚀 [nvidia] ${name}, opening checkout page 🚀🚀🚀`);
|
|
||||||
logger.info(cartUrl);
|
|
||||||
|
|
||||||
await open(cartUrl);
|
|
||||||
} catch (error: unknown) {
|
|
||||||
logger.error(
|
|
||||||
`✖ [nvidia] ${name} could not automatically add to cart, opening page`,
|
|
||||||
error
|
|
||||||
);
|
|
||||||
|
|
||||||
cartUrl = this.fallbackCartUrl;
|
|
||||||
|
|
||||||
await open(cartUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
return cartUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async getSessionToken(): Promise<string> {
|
|
||||||
if (!this.sessionToken) {
|
|
||||||
await this.refreshSessionToken();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.sessionToken) {
|
|
||||||
throw new Error('Failed to create the session_token.');
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.sessionToken;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async refreshSessionToken(): Promise<void> {
|
|
||||||
logger.debug('ℹ [nvidia] refreshing session token');
|
|
||||||
try {
|
|
||||||
const result = await usingResponse(
|
|
||||||
this.browser,
|
|
||||||
this.sessionUrl,
|
|
||||||
async response => {
|
|
||||||
return response?.json() as NvidiaSessionTokenJSON | undefined;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
if (
|
|
||||||
typeof result !== 'object' ||
|
|
||||||
result === null ||
|
|
||||||
!('session_token' in result)
|
|
||||||
) {
|
|
||||||
throw new Error('malformed response');
|
|
||||||
}
|
|
||||||
|
|
||||||
this.sessionToken = result.session_token;
|
|
||||||
logger.debug(`ℹ [nvidia] session_token=${result.session_token}`);
|
|
||||||
} catch (error: unknown) {
|
|
||||||
const message: string =
|
|
||||||
typeof error === 'object'
|
|
||||||
? (error as Error).message
|
|
||||||
: (error as string);
|
|
||||||
logger.error(`✖ [nvidia] ${message}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected async addToCartAndGetLocationRedirect(
|
|
||||||
productId: number
|
|
||||||
): Promise<string> {
|
|
||||||
const url = 'https://api-prod.nvidia.com/direct-sales-shop/DR/add-to-cart';
|
|
||||||
const sessionToken = await this.getSessionToken();
|
|
||||||
|
|
||||||
logger.info(`ℹ [nvidia] session_token=${sessionToken}`);
|
|
||||||
|
|
||||||
const locationData = await usingPage(this.browser, async page => {
|
|
||||||
page.removeAllListeners('request');
|
|
||||||
|
|
||||||
await page.setRequestInterception(true);
|
|
||||||
|
|
||||||
page.on('request', interceptedRequest => {
|
|
||||||
void interceptedRequest.continue({
|
|
||||||
headers: {
|
|
||||||
...interceptedRequest.headers(),
|
|
||||||
'content-type': 'application/json',
|
|
||||||
nvidia_shop_id: sessionToken,
|
|
||||||
},
|
|
||||||
method: 'POST',
|
|
||||||
postData: JSON.stringify({
|
|
||||||
products: [{productId, quantity: 1}],
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const response = await page.goto(url, {waitUntil: 'networkidle0'});
|
|
||||||
|
|
||||||
if (response === null) {
|
|
||||||
throw new Error('NvidiaAddToCartUnavailable');
|
|
||||||
}
|
|
||||||
|
|
||||||
return response.json() as Promise<NvidiaAddToCardJSON>;
|
|
||||||
});
|
|
||||||
|
|
||||||
return locationData.location;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
import {NvidiaRegionInfo, regionInfos} from '../nvidia-api';
|
|
||||||
import {Browser} from 'puppeteer';
|
|
||||||
import {Link} from '../store';
|
|
||||||
import {NvidiaCart} from './nvidia-cart';
|
|
||||||
import {config} from '../../../config';
|
|
||||||
import {timestampUrlParameter} from '../../timestamp-url-parameter';
|
|
||||||
|
|
||||||
function getRegionInfo(): NvidiaRegionInfo {
|
|
||||||
let country = config.store.country.toLowerCase();
|
|
||||||
if (!regionInfos.has(country)) {
|
|
||||||
country = 'usa';
|
|
||||||
}
|
|
||||||
|
|
||||||
const regionInfo = regionInfos.get(country);
|
|
||||||
if (!regionInfo) {
|
|
||||||
throw new Error(
|
|
||||||
`LogicException could not retrieve region info for ${country}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return regionInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
function nvidiaStockUrl(
|
|
||||||
id: number,
|
|
||||||
drLocale: string,
|
|
||||||
currency: string
|
|
||||||
): string {
|
|
||||||
return (
|
|
||||||
`https://api-prod.nvidia.com/direct-sales-shop/DR/products/${drLocale}/${currency}/${id}?` +
|
|
||||||
timestampUrlParameter().slice(1)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
let cart: NvidiaCart;
|
|
||||||
|
|
||||||
export function generateSetupAction() {
|
|
||||||
return async (browser: Browser) => {
|
|
||||||
cart = new NvidiaCart(browser);
|
|
||||||
|
|
||||||
if (config.browser.open) {
|
|
||||||
cart.keepAlive();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function generateOpenCartAction(id: number, cardName: string) {
|
|
||||||
return async () => {
|
|
||||||
const url = await cart.addToCard(id, cardName);
|
|
||||||
|
|
||||||
return url;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function generateLinks(): Link[] {
|
|
||||||
const {
|
|
||||||
drLocale,
|
|
||||||
fe3080Id,
|
|
||||||
fe3090Id,
|
|
||||||
fe2060SuperId,
|
|
||||||
currency,
|
|
||||||
} = getRegionInfo();
|
|
||||||
|
|
||||||
const links: Link[] = [];
|
|
||||||
|
|
||||||
if (fe2060SuperId) {
|
|
||||||
links.push({
|
|
||||||
brand: 'test:brand',
|
|
||||||
model: 'test:model',
|
|
||||||
openCartAction: generateOpenCartAction(fe2060SuperId, 'TEST CARD debug'),
|
|
||||||
series: 'test:series',
|
|
||||||
url: nvidiaStockUrl(fe2060SuperId, drLocale, currency),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fe3080Id) {
|
|
||||||
links.push({
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
openCartAction: generateOpenCartAction(
|
|
||||||
fe3080Id,
|
|
||||||
'nvidia founders edition 3080'
|
|
||||||
),
|
|
||||||
series: '3080',
|
|
||||||
url: nvidiaStockUrl(fe3080Id, drLocale, currency),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fe3090Id) {
|
|
||||||
links.push({
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
openCartAction: generateOpenCartAction(
|
|
||||||
fe3090Id,
|
|
||||||
'nvidia founders edition 3090'
|
|
||||||
),
|
|
||||||
series: '3090',
|
|
||||||
url: nvidiaStockUrl(fe3090Id, drLocale, currency),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return links;
|
|
||||||
}
|
|
||||||
+39
-18
@@ -1,5 +1,6 @@
|
|||||||
import {config, defaultStoreData} from '../../config';
|
import {config, defaultStoreData} from '../../config';
|
||||||
import {AComPC} from './acompc';
|
import {AComPC} from './acompc';
|
||||||
|
import {Ldlc} from './ldlc';
|
||||||
import {Adorama} from './adorama';
|
import {Adorama} from './adorama';
|
||||||
import {Akinformatica} from './akinformatica';
|
import {Akinformatica} from './akinformatica';
|
||||||
import {Allneeds} from './allneeds';
|
import {Allneeds} from './allneeds';
|
||||||
@@ -45,14 +46,17 @@ import {Computeruniverse} from './computeruniverse';
|
|||||||
import {Coolblue} from './coolblue';
|
import {Coolblue} from './coolblue';
|
||||||
import {Coolmod} from './coolmod';
|
import {Coolmod} from './coolmod';
|
||||||
import {Corsair} from './corsair';
|
import {Corsair} from './corsair';
|
||||||
|
import {CorsairUK} from './corsair-uk';
|
||||||
import {Cpl} from './cpl';
|
import {Cpl} from './cpl';
|
||||||
import {Currys} from './currys';
|
import {Currys} from './currys';
|
||||||
import {Cyberport} from './cyberport';
|
import {Cyberport} from './cyberport';
|
||||||
import {Dcomp} from './dcomp';
|
import {Dcomp} from './dcomp';
|
||||||
import {Drako} from './drako';
|
import {Drako} from './drako';
|
||||||
|
import {DustinHomeNO} from './dustinhome-no';
|
||||||
import {EbGames} from './ebgames';
|
import {EbGames} from './ebgames';
|
||||||
import {Ebuyer} from './ebuyer';
|
import {Ebuyer} from './ebuyer';
|
||||||
import {Elcorteingles} from './elcorteingles';
|
import {Elcorteingles} from './elcorteingles';
|
||||||
|
import {Elkjop} from './elkjop';
|
||||||
import {Eprice} from './eprice';
|
import {Eprice} from './eprice';
|
||||||
import {Equippr} from './equippr';
|
import {Equippr} from './equippr';
|
||||||
import {Euronics} from './euronics';
|
import {Euronics} from './euronics';
|
||||||
@@ -68,12 +72,14 @@ import {Gamestop} from './gamestop';
|
|||||||
import {GamestopDE} from './gamestop-de';
|
import {GamestopDE} from './gamestop-de';
|
||||||
import {GamestopIE} from './gamestop-ie';
|
import {GamestopIE} from './gamestop-ie';
|
||||||
import {GamestopIT} from './gamestop-it';
|
import {GamestopIT} from './gamestop-it';
|
||||||
|
import {Globaldata} from './globaldata';
|
||||||
import {HardwarePlanet} from './hardware-planet';
|
import {HardwarePlanet} from './hardware-planet';
|
||||||
import {HarrisTechnology} from './harristechnology';
|
import {HarrisTechnology} from './harristechnology';
|
||||||
import {HarveyNormanIE} from './harveynorman-ie';
|
import {HarveyNormanIE} from './harveynorman-ie';
|
||||||
import {Igamecomputer} from './igame';
|
import {Igamecomputer} from './igame';
|
||||||
import {JohnLewis} from './johnlewis';
|
import {JohnLewis} from './johnlewis';
|
||||||
import {Kabum} from './kabum';
|
import {Kabum} from './kabum';
|
||||||
|
import {KomplettNO} from './komplett-no';
|
||||||
import {LandmarkComputers} from './lmc';
|
import {LandmarkComputers} from './lmc';
|
||||||
import {Mediamarkt} from './mediamarkt';
|
import {Mediamarkt} from './mediamarkt';
|
||||||
import {Medimax} from './medimax';
|
import {Medimax} from './medimax';
|
||||||
@@ -83,26 +89,33 @@ import {MicroCenter} from './microcenter';
|
|||||||
import {Mindfactory} from './mindfactory';
|
import {Mindfactory} from './mindfactory';
|
||||||
import {Msy} from './msy';
|
import {Msy} from './msy';
|
||||||
import {Mwave} from './mwave';
|
import {Mwave} from './mwave';
|
||||||
|
import {NetonnetNO} from './netonnet-no';
|
||||||
import {Newegg} from './newegg';
|
import {Newegg} from './newegg';
|
||||||
import {NeweggCa} from './newegg-ca';
|
import {NeweggCa} from './newegg-ca';
|
||||||
import {NeweggSg} from './newegg-sg';
|
import {NeweggSg} from './newegg-sg';
|
||||||
import {Notebooksbilliger} from './notebooksbilliger';
|
import {Notebooksbilliger} from './notebooksbilliger';
|
||||||
import {Novatech} from './novatech';
|
import {Novatech} from './novatech';
|
||||||
import {Nvidia} from './nvidia';
|
import {NovoAtalho} from './novoatalho';
|
||||||
import {NvidiaApi} from './nvidia-api';
|
import {NvidiaDE} from './nvidia-de';
|
||||||
|
import {NvidiaES} from './nvidia-es';
|
||||||
|
import {NvidiaFR} from './nvidia-fr';
|
||||||
|
import {NvidiaGB} from './nvidia-gb';
|
||||||
import {OfficeDepot} from './officedepot';
|
import {OfficeDepot} from './officedepot';
|
||||||
import {Ollo} from './ollo';
|
import {Ollo} from './ollo';
|
||||||
import {Otto} from './otto';
|
import {Otto} from './otto';
|
||||||
import {Overclockers} from './overclockers';
|
import {Overclockers} from './overclockers';
|
||||||
import {PBTech} from './pbtech';
|
import {PBTech} from './pbtech';
|
||||||
import {PCByte} from './pcbyte';
|
import {PCByte} from './pcbyte';
|
||||||
import {PCComponentes} from './pccomponentes';
|
|
||||||
import {PCKing} from './pcking';
|
|
||||||
import {Pccg} from './pccg';
|
import {Pccg} from './pccg';
|
||||||
|
import {PCComponentes} from './pccomponentes';
|
||||||
|
import {PCDiga} from './pcdiga';
|
||||||
|
import {PCKing} from './pcking';
|
||||||
import {PlayStation} from './playstation';
|
import {PlayStation} from './playstation';
|
||||||
import {Pny} from './pny';
|
import {Pny} from './pny';
|
||||||
|
import {PowerNO} from './power-no';
|
||||||
import {ProshopDE} from './proshop-de';
|
import {ProshopDE} from './proshop-de';
|
||||||
import {ProshopDK} from './proshop-dk';
|
import {ProshopDK} from './proshop-dk';
|
||||||
|
import {ProshopNO} from './proshop-no';
|
||||||
import {Rosman} from './rosman';
|
import {Rosman} from './rosman';
|
||||||
import {RosmanMelb} from './rosman-melb';
|
import {RosmanMelb} from './rosman-melb';
|
||||||
import {Saturn} from './saturn';
|
import {Saturn} from './saturn';
|
||||||
@@ -135,8 +148,8 @@ import {logger} from '../../logger';
|
|||||||
export const storeList = new Map([
|
export const storeList = new Map([
|
||||||
[AComPC.name, AComPC],
|
[AComPC.name, AComPC],
|
||||||
[Adorama.name, Adorama],
|
[Adorama.name, Adorama],
|
||||||
[Allneeds.name, Allneeds],
|
|
||||||
[Akinformatica.name, Akinformatica],
|
[Akinformatica.name, Akinformatica],
|
||||||
|
[Allneeds.name, Allneeds],
|
||||||
[Alternate.name, Alternate],
|
[Alternate.name, Alternate],
|
||||||
[AlternateNL.name, AlternateNL],
|
[AlternateNL.name, AlternateNL],
|
||||||
[Amazon.name, Amazon],
|
[Amazon.name, Amazon],
|
||||||
@@ -145,10 +158,10 @@ export const storeList = new Map([
|
|||||||
[AmazonDeWarehouse.name, AmazonDeWarehouse],
|
[AmazonDeWarehouse.name, AmazonDeWarehouse],
|
||||||
[AmazonEs.name, AmazonEs],
|
[AmazonEs.name, AmazonEs],
|
||||||
[AmazonFr.name, AmazonFr],
|
[AmazonFr.name, AmazonFr],
|
||||||
[AmazonNl.name, AmazonNl],
|
|
||||||
[AmazonUk.name, AmazonUk],
|
|
||||||
[AmazonSg.name, AmazonSg],
|
|
||||||
[AmazonIt.name, AmazonIt],
|
[AmazonIt.name, AmazonIt],
|
||||||
|
[AmazonNl.name, AmazonNl],
|
||||||
|
[AmazonSg.name, AmazonSg],
|
||||||
|
[AmazonUk.name, AmazonUk],
|
||||||
[Amd.name, Amd],
|
[Amd.name, Amd],
|
||||||
[AmdCa.name, AmdCa],
|
[AmdCa.name, AmdCa],
|
||||||
[AmdDe.name, AmdDe],
|
[AmdDe.name, AmdDe],
|
||||||
@@ -169,8 +182,8 @@ export const storeList = new Map([
|
|||||||
[Box.name, Box],
|
[Box.name, Box],
|
||||||
[Bpctech.name, Bpctech],
|
[Bpctech.name, Bpctech],
|
||||||
[BpmPower.name, BpmPower],
|
[BpmPower.name, BpmPower],
|
||||||
[Caseking.name, Caseking],
|
|
||||||
[CanadaComputers.name, CanadaComputers],
|
[CanadaComputers.name, CanadaComputers],
|
||||||
|
[Caseking.name, Caseking],
|
||||||
[Ccl.name, Ccl],
|
[Ccl.name, Ccl],
|
||||||
[Centrecom.name, Centrecom],
|
[Centrecom.name, Centrecom],
|
||||||
[Comet.name, Comet],
|
[Comet.name, Comet],
|
||||||
@@ -179,14 +192,17 @@ export const storeList = new Map([
|
|||||||
[Coolblue.name, Coolblue],
|
[Coolblue.name, Coolblue],
|
||||||
[Coolmod.name, Coolmod],
|
[Coolmod.name, Coolmod],
|
||||||
[Corsair.name, Corsair],
|
[Corsair.name, Corsair],
|
||||||
|
[CorsairUK.name, CorsairUK],
|
||||||
[Cpl.name, Cpl],
|
[Cpl.name, Cpl],
|
||||||
[Currys.name, Currys],
|
[Currys.name, Currys],
|
||||||
[Cyberport.name, Cyberport],
|
[Cyberport.name, Cyberport],
|
||||||
[Dcomp.name, Dcomp],
|
[Dcomp.name, Dcomp],
|
||||||
[Drako.name, Drako],
|
[Drako.name, Drako],
|
||||||
|
[DustinHomeNO.name, DustinHomeNO],
|
||||||
[EbGames.name, EbGames],
|
[EbGames.name, EbGames],
|
||||||
[Ebuyer.name, Ebuyer],
|
[Ebuyer.name, Ebuyer],
|
||||||
[Elcorteingles.name, Elcorteingles],
|
[Elcorteingles.name, Elcorteingles],
|
||||||
|
[Elkjop.name, Elkjop],
|
||||||
[Eprice.name, Eprice],
|
[Eprice.name, Eprice],
|
||||||
[Equippr.name, Equippr],
|
[Equippr.name, Equippr],
|
||||||
[Euronics.name, Euronics],
|
[Euronics.name, Euronics],
|
||||||
@@ -202,28 +218,35 @@ export const storeList = new Map([
|
|||||||
[GamestopDE.name, GamestopDE],
|
[GamestopDE.name, GamestopDE],
|
||||||
[GamestopIE.name, GamestopIE],
|
[GamestopIE.name, GamestopIE],
|
||||||
[GamestopIT.name, GamestopIT],
|
[GamestopIT.name, GamestopIT],
|
||||||
|
[Globaldata.name, Globaldata],
|
||||||
[HardwarePlanet.name, HardwarePlanet],
|
[HardwarePlanet.name, HardwarePlanet],
|
||||||
[HarrisTechnology.name, HarrisTechnology],
|
[HarrisTechnology.name, HarrisTechnology],
|
||||||
[HarveyNormanIE.name, HarveyNormanIE],
|
[HarveyNormanIE.name, HarveyNormanIE],
|
||||||
[Igamecomputer.name, Igamecomputer],
|
[Igamecomputer.name, Igamecomputer],
|
||||||
[JohnLewis.name, JohnLewis],
|
[JohnLewis.name, JohnLewis],
|
||||||
[Kabum.name, Kabum],
|
[Kabum.name, Kabum],
|
||||||
|
[KomplettNO.name, KomplettNO],
|
||||||
[LandmarkComputers.name, LandmarkComputers],
|
[LandmarkComputers.name, LandmarkComputers],
|
||||||
[Mediamarkt.name, Mediamarkt],
|
[Mediamarkt.name, Mediamarkt],
|
||||||
[Medimax.name, Medimax],
|
[Medimax.name, Medimax],
|
||||||
[Megekko.name, Megekko],
|
[Megekko.name, Megekko],
|
||||||
|
[Ldlc.name, Ldlc],
|
||||||
[MemoryExpress.name, MemoryExpress],
|
[MemoryExpress.name, MemoryExpress],
|
||||||
[MicroCenter.name, MicroCenter],
|
[MicroCenter.name, MicroCenter],
|
||||||
[Mindfactory.name, Mindfactory],
|
[Mindfactory.name, Mindfactory],
|
||||||
[Msy.name, Msy],
|
[Msy.name, Msy],
|
||||||
[Mwave.name, Mwave],
|
[Mwave.name, Mwave],
|
||||||
|
[NetonnetNO.name, NetonnetNO],
|
||||||
[Newegg.name, Newegg],
|
[Newegg.name, Newegg],
|
||||||
[NeweggCa.name, NeweggCa],
|
[NeweggCa.name, NeweggCa],
|
||||||
[NeweggSg.name, NeweggSg],
|
[NeweggSg.name, NeweggSg],
|
||||||
[Notebooksbilliger.name, Notebooksbilliger],
|
[Notebooksbilliger.name, Notebooksbilliger],
|
||||||
[Novatech.name, Novatech],
|
[Novatech.name, Novatech],
|
||||||
[Nvidia.name, Nvidia],
|
[NovoAtalho.name, NovoAtalho],
|
||||||
[NvidiaApi.name, NvidiaApi],
|
[NvidiaDE.name, NvidiaDE],
|
||||||
|
[NvidiaES.name, NvidiaES],
|
||||||
|
[NvidiaFR.name, NvidiaFR],
|
||||||
|
[NvidiaGB.name, NvidiaGB],
|
||||||
[OfficeDepot.name, OfficeDepot],
|
[OfficeDepot.name, OfficeDepot],
|
||||||
[Ollo.name, Ollo],
|
[Ollo.name, Ollo],
|
||||||
[Otto.name, Otto],
|
[Otto.name, Otto],
|
||||||
@@ -231,12 +254,15 @@ export const storeList = new Map([
|
|||||||
[PBTech.name, PBTech],
|
[PBTech.name, PBTech],
|
||||||
[PCByte.name, PCByte],
|
[PCByte.name, PCByte],
|
||||||
[Pccg.name, Pccg],
|
[Pccg.name, Pccg],
|
||||||
[PCKing.name, PCKing],
|
|
||||||
[PCComponentes.name, PCComponentes],
|
[PCComponentes.name, PCComponentes],
|
||||||
|
[PCDiga.name, PCDiga],
|
||||||
|
[PCKing.name, PCKing],
|
||||||
[PlayStation.name, PlayStation],
|
[PlayStation.name, PlayStation],
|
||||||
[Pny.name, Pny],
|
[Pny.name, Pny],
|
||||||
|
[PowerNO.name, PowerNO],
|
||||||
[ProshopDE.name, ProshopDE],
|
[ProshopDE.name, ProshopDE],
|
||||||
[ProshopDK.name, ProshopDK],
|
[ProshopDK.name, ProshopDK],
|
||||||
|
[ProshopNO.name, ProshopNO],
|
||||||
[Rosman.name, Rosman],
|
[Rosman.name, Rosman],
|
||||||
[RosmanMelb.name, RosmanMelb],
|
[RosmanMelb.name, RosmanMelb],
|
||||||
[Saturn.name, Saturn],
|
[Saturn.name, Saturn],
|
||||||
@@ -244,8 +270,8 @@ export const storeList = new Map([
|
|||||||
[Scan.name, Scan],
|
[Scan.name, Scan],
|
||||||
[Scorptec.name, Scorptec],
|
[Scorptec.name, Scorptec],
|
||||||
[ShopTo.name, ShopTo],
|
[ShopTo.name, ShopTo],
|
||||||
[SmythsToysIE.name, SmythsToysIE],
|
|
||||||
[SmythsToys.name, SmythsToys],
|
[SmythsToys.name, SmythsToys],
|
||||||
|
[SmythsToysIE.name, SmythsToysIE],
|
||||||
[Spielegrotte.name, Spielegrotte],
|
[Spielegrotte.name, Spielegrotte],
|
||||||
[StormComputers.name, StormComputers],
|
[StormComputers.name, StormComputers],
|
||||||
[Target.name, Target],
|
[Target.name, Target],
|
||||||
@@ -324,11 +350,6 @@ function printConfig() {
|
|||||||
|
|
||||||
function warnIfStoreDeprecated(store: Store) {
|
function warnIfStoreDeprecated(store: Store) {
|
||||||
switch (store.name) {
|
switch (store.name) {
|
||||||
case 'nvidia':
|
|
||||||
case 'nvidia-api':
|
|
||||||
if (config.store.country === 'usa')
|
|
||||||
logger.warn(`${store.name} is deprecated in favor of bestbuy`);
|
|
||||||
break;
|
|
||||||
case 'evga':
|
case 'evga':
|
||||||
logger.warn(
|
logger.warn(
|
||||||
`${store.name} is deprecated since they only support queuing`
|
`${store.name} is deprecated since they only support queuing`
|
||||||
|
|||||||
@@ -0,0 +1,261 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const KomplettNO: Store = {
|
||||||
|
currency: 'kr.',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'#MainContent > div.no-bs-center.maincontent-container.container.main-body.ignore-gutter-xs.product-page-boxes > div.responsive-content-wrapper > div.product-page > section > div > section > div.product-main-info__body > div.product-main-info__buy-and-more > div.buy-button-section > div > div > div.product-main-info-buy-button > div.buy-button > button',
|
||||||
|
text: ['LEGG I HANDLEVOGN'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'#MainContent > div.no-bs-center.maincontent-container.container.main-body.ignore-gutter-xs.product-page-boxes > div.responsive-content-wrapper > div.product-page > section > div > section > div.product-main-info__body > div.product-main-info__buy-and-more > div.buy-button-section > div > div > div.subscribe-product-container > div > div > button',
|
||||||
|
text: ['MOTTA VARSEL'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.komplett.no/product/1168415/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168380/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1173669',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168379/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168439/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168358/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168436/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1176247/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168419',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1171562',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168418',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1175718',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168415',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168416',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phantom gs',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1171801',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phantom gs',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1171798',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phoenix gs',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168422',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phoenix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168129',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168398',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1170425',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gaming pro',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.komplett.no/product/1168128',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168378/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1173670',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168381/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1174234',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc white',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1176245',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168359',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168438',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168490',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168437',
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168414',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1173940',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168417',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168412',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168413',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'turbo',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1171270',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1171795',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1171802',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gaming pro',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.komplett.no/product/1168127',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.komplett.no/product/1174234',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'komplett-no',
|
||||||
|
};
|
||||||
@@ -0,0 +1,250 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Ldlc: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.stock',
|
||||||
|
text: ['stock'],
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.price .price',
|
||||||
|
euroFormat: true,
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.stock',
|
||||||
|
text: ['rupture'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00317660.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369303.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369299.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369299.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369299.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369072.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00376208.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368690.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gaming pro',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369094.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phoenix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369150.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 black',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369298.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00386334.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'kfa2',
|
||||||
|
model: 'sg',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00396037.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00375625.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368844.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368506.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00390466.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368789.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00398370.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00391682.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00376207.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368691.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phoenix gs',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369158.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369268.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill frostbite',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00391624.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra hybrid',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00398046.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'kfa2',
|
||||||
|
model: 'sg',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368931.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gaming pro',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00375448.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00375431.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00369265.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gainward',
|
||||||
|
model: 'phantom gs',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00390727.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra hybrid',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00398045.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x4',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368692.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00368579.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00375644.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00385535.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00386332.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.ldlc.com/fr-be/fiche/PB00398373.html',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'ldlc',
|
||||||
|
};
|
||||||
@@ -42,6 +42,18 @@ export const Mediamarkt: Store = {
|
|||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.mediamarkt.de/de/product/-2641856.html',
|
url: 'https://www.mediamarkt.de/de/product/-2641856.html',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.mediamarkt.de/de/product/-2718593.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2 oc',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.mediamarkt.de/de/product/-2718594.html',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
|
|||||||
@@ -21,6 +21,54 @@ export const MemoryExpress: Store = {
|
|||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.memoryexpress.com/Products/MX79473',
|
url: 'https://www.memoryexpress.com/Products/MX79473',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116063',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116071',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116072',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116154',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116013',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116016',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116017',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00116164',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
|
|||||||
@@ -168,6 +168,66 @@ for (const microCenterLocation of microCenterLocations) {
|
|||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: `https://www.microcenter.com/product/631744/gigabyte-geforce-rtx-3060ti-ti-eagle-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
url: `https://www.microcenter.com/product/631744/gigabyte-geforce-rtx-3060ti-ti-eagle-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633747/asus-nvidia-geforce-rtx-3060-tuf-gaming-overclocked-triple-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633838/msi-nvidia-geforce-rtx-3060-gaming-x-overclocked-dual-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633839/msi-nvidia-geforce-rtx-3060-ventus-3x-overclocked-triple-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633840/msi-nvidia-geforce-rtx-3060-ventus-2x-overclocked-dual-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/634291/gigabyte-nvidia-geforce-rtx-3060-vision-overclocked-triple-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633746/asus-nvidia-geforce-rtx-3060-rog-strix-overclocked-triple-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633837/msi-nvidia-geforce-rtx-3060-gaming-x-trio-overclocked-triple-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/634290/gigabyte-nvidia-geforce-rtx-3060-gaming-overclocked-triple-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/633835/zotac-nvidia-geforce-rtx-3060-twin-edge-overclocked-dual-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3060',
|
||||||
|
url: `https://www.microcenter.com/product/634181/evga-nvidia-geforce-rtx-3060-xc-gaming-dual-fan-12gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
@@ -218,7 +278,7 @@ export const MicroCenter: Store = {
|
|||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#cart-options',
|
container: '#pnlInventory',
|
||||||
text: ['in stock'],
|
text: ['in stock'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
|
|||||||
@@ -0,0 +1,158 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const NetonnetNO: Store = {
|
||||||
|
currency: 'kr.',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#productPurchaseBoxContainer > div > button',
|
||||||
|
text: ['Legg i handlevogn'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '#productPurchaseBoxContainer > div > button',
|
||||||
|
text: ['Overvåk produktet'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/kfa2-geforce-rtx-3090-hall-of-fame/1016867.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3060ti-tuf-gaming-8gb/1015570.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3060ti-tuf-gaming-oc-8gb/1015565.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3060-ti-rog-strix-gaming-oc-8gb/1016449.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3060ti-dual-oc-8gb/1015673.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/msi-geforce-rtx-3060-ti-gaming-x-trio/1015906.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060-ti-eagle-8g/1015575.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060-ti-eagle-oc-8g/1015576.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060-ti-aorus-master/1015582.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060-ti-gaming-oc-8gb/1015578.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming pro oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060ti-gaming-pro-oc/1016888.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'kfa2',
|
||||||
|
model: 'sg',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060ti-gaming-pro-oc/1016888.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3080-rog-strix-gaming-oc-white-10gb/1015992.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3080-rog-strix-gaming-oc-10gb/1016281.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3080-tuf-gaming-10g/1014354.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3080-tuf-gaming-oc-10gb/1015670.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3080-rog-strix-gaming-10g/1014394.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3080-gaming-oc-10g/1014380.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3080-eagle-oc-10g/1014382.11111/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3080-aorus-xtream-10gb/1015517.11111/',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'netonnet-no',
|
||||||
|
};
|
||||||
@@ -35,6 +35,126 @@ export const NeweggCa: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.newegg.ca/p/N82E16824475043?Item=N82E16824475043&cm_sp=Homepage_MKPL-_-P3_24-475-043-_-12302020',
|
'https://www.newegg.ca/p/N82E16824475043?Item=N82E16824475043&cm_sp=Homepage_MKPL-_-P3_24-475-043-_-12302020',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-399',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-gv-n3060eagle-12gd/p/N82E16814932399',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-402',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-gv-n3060gaming-oc-12gd/p/N82E16814932402',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-630',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-rtx-3060-gaming-x-12g/p/N82E16814137630',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-493',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-dual-rtx3060-12g/p/N82E16814126493',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-491',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-tuf-rtx3060-o12g-gaming/p/N82E16814126491',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-492',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-rog-strix-rtx3060-o12g-gaming/p/N82E16814126492',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
itemNumber: '14-500-509',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/zotac-geforce-rtx-3060-zt-a30600e-10m/p/N82E16814500509',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
itemNumber: '14-487-538',
|
||||||
|
model: 'xc black',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/evga-geforce-rtx-3060-12g-p5-3655-kr/p/N82E16814487538',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
itemNumber: '14-500-508',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/zotac-geforce-rtx-3060-zt-a30600h-10m/p/N82E16814500508',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
itemNumber: '14-487-539',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/evga-geforce-rtx-3060-12g-p5-3657-kr/p/N82E16814487539',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-400',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-gv-n3060aorus-e-12gd/p/N82E16814932400',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-638',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-rtx-3060-ventus-2x-12g/p/N82E16814137638',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-632',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-rtx-3060-ventus-2x-12g-oc/p/N82E16814137632',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-631',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-rtx-3060-ventus-3x-12g-oc/p/N82E16814137631',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-629',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-rtx-3060-gaming-x-trio-12g/p/N82E16814137629',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '14-126-453',
|
itemNumber: '14-126-453',
|
||||||
@@ -617,6 +737,90 @@ export const NeweggCa: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.newegg.ca/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507',
|
'https://www.newegg.ca/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-dual-rtx3060ti-8g/p/N82E16814126480',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3070-rtx-3070-suprim-8g/p/N82E16814137623',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3080-gv-n3080aorusx-w-10gd/p/N82E16814932372',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3080-gv-n3080aorusx-wb-10gd/p/N82E16814932371',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3080-rog-strix-rtx3080-o10g-white/p/N82E16814126483',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3090-rtx3090-24g-ek/p/N82E16814126485',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3090-gv-n3090aorusx-w-24gd/p/N82E16814932387',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3090-gv-n3090aorusx-wb-24gd/p/N82E16814932386',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3090-gv-n3090aorus-x-24gd/p/N82E16814932340',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3090-gv-n3090vision-oc-24gd/p/N82E16814932365',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3090-rog-strix-rtx3090-o24g-white/p/N82E16814126482',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3090-gv-n3090eagle-24gd/p/N82E16814932366',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
itemNumber: '19-113-663',
|
itemNumber: '19-113-663',
|
||||||
|
|||||||
@@ -1040,6 +1040,177 @@ export const NeweggSg: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474',
|
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126480',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3060-ti-dual-rtx3060ti-8g/p/N82E16814126480',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137620',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/msi-geforce-rtx-3070-rtx-3070-suprim-x-8g/p/N82E16814137620',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137623',
|
||||||
|
model: 'suprim',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/msi-geforce-rtx-3070-rtx-3070-suprim-8g/p/N82E16814137623',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932345',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3080-gv-n3080aorus-x-10gd/p/N82E16814932345',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932372',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3080-gv-n3080aorusx-w-10gd/p/N82E16814932372',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932371',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3080-gv-n3080aorusx-wb-10gd/p/N82E16814932371',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126483',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3080-rog-strix-rtx3080-o10g-white/p/N82E16814126483',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137609',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/msi-geforce-rtx-3080-rtx3080-suprim-x-10g/p/N82E16814137609',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932367',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3080-gv-n3080eagle-10gd/p/N82E16814932367',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126485',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3090-rtx3090-24g-ek/p/N82E16814126485',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932341',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3090-gv-n3090aorus-m-24gd/p/N82E16814932341',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932387',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3090-gv-n3090aorusx-w-24gd/p/N82E16814932387',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126454',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3090-tuf-rtx3090-o24g-gaming/p/N82E16814126454',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932386',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3090-gv-n3090aorusx-wb-24gd/p/N82E16814932386',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932340',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3090-gv-n3090aorus-x-24gd/p/N82E16814932340',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932365',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3090-gv-n3090vision-oc-24gd/p/N82E16814932365',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126482',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/asus-geforce-rtx-3090-rog-strix-rtx3090-o24g-white/p/N82E16814126482',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137610',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/msi-geforce-rtx-3090-rtx3090-suprim-x-24g/p/N82E16814137610',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932366',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/global/sg-en/gigabyte-geforce-rtx-3090-gv-n3090eagle-24gd/p/N82E16814932366',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'powercolor',
|
brand: 'powercolor',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
|
|||||||
@@ -892,6 +892,168 @@ export const Newegg: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.newegg.com/corsair-sf750-cp-9020186-na-750w/p/N82E16817139080',
|
'https://www.newegg.com/corsair-sf750-cp-9020186-na-750w/p/N82E16817139080',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932401',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060vision-oc-12gd/p/N82E16814932401',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932399',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060eagle-12gd/p/N82E16814932399',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932399',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060eagle-12gd/p/N82E16814932399',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932400',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060aorus-e-12gd/p/N82E16814932400',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932403',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060eagle-oc-12gd/p/N82E16814932403',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487538',
|
||||||
|
model: 'xc black',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/evga-geforce-rtx-3060-12g-p5-3655-kr/p/N82E16814487538',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487539',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/evga-geforce-rtx-3060-12g-p5-3657-kr/p/N82E16814487539',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137629',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-gaming-x-trio-12g/p/N82E16814137629',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137630',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-gaming-x-12g/p/N82E16814137630',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137631',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-ventus-3x-12g-oc/p/N82E16814137631',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137632',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-ventus-2x-12g-oc/p/N82E16814137632',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137638',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-ventus-2x-12g/p/N82E16814137638',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126491',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-tuf-rtx3060-o12g-gaming/p/N82E16814126491',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126492',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-rog-strix-rtx3060-o12g-gaming/p/N82E16814126492',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126493',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-dual-rtx3060-12g/p/N82E16814126493',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500508',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/zotac-geforce-rtx-3060-zt-a30600h-10m/p/N82E16814500508',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500509',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/zotac-geforce-rtx-3060-zt-a30600e-10m/p/N82E16814500509',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500509',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/zotac-geforce-rtx-3060-zt-a30600e-10m/p/N82E16814500509',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'corsair',
|
brand: 'corsair',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
@@ -1036,6 +1198,177 @@ export const Newegg: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.newegg.com/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474',
|
'https://www.newegg.com/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126480',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-ti-dual-rtx3060ti-8g/p/N82E16814126480',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137620',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-suprim-x-8g/p/N82E16814137620',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137623',
|
||||||
|
model: 'suprim',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-suprim-8g/p/N82E16814137623',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932345',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080aorus-x-10gd/p/N82E16814932345',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932372',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080aorusx-w-10gd/p/N82E16814932372',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932371',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080aorusx-wb-10gd/p/N82E16814932371',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126483',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3080-rog-strix-rtx3080-o10g-white/p/N82E16814126483',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137609',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3080-rtx3080-suprim-x-10g/p/N82E16814137609',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932367',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080eagle-10gd/p/N82E16814932367',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126485',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3090-rtx3090-24g-ek/p/N82E16814126485',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932341',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorus-m-24gd/p/N82E16814932341',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932387',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorusx-w-24gd/p/N82E16814932387',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126454',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3090-tuf-rtx3090-o24g-gaming/p/N82E16814126454',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932386',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorusx-wb-24gd/p/N82E16814932386',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932340',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorus-x-24gd/p/N82E16814932340',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932365',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090vision-oc-24gd/p/N82E16814932365',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126482',
|
||||||
|
model: 'strix white',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3090-rog-strix-rtx3090-o24g-white/p/N82E16814126482',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137610',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3090-rtx3090-suprim-x-24g/p/N82E16814137610',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932366',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090eagle-24gd/p/N82E16814932366',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'powercolor',
|
brand: 'powercolor',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
|
|||||||
@@ -45,6 +45,76 @@ export const Notebooksbilliger: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.notebooksbilliger.de/gainward+geforce+rtx+2070+super+phoenix+v1+grafikkarte+656238',
|
'https://www.notebooksbilliger.de/gainward+geforce+rtx+2070+super+phoenix+v1+grafikkarte+656238',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/asus+rog+strix+geforce+rtx+3060+oc+12g+grafikkarte+702541',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/gigabyte+geforce+rtx+3060+gaming+oc+12gb+gddr6+grafikkarte+700421',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/gigabyte+geforce+rtx+3060+eagle+oc+12gb+gddr6+grafikkarte+700422',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2 oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/inno3d+geforce+rtx+3060+12gb+twin+x2+oc+701384',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/inno3d+geforce+rtx+3060+12gb+ichill+x3+red+701383?',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/palit+geforce+rtx+3060+12gb+dual+702252',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/palit+geforce+rtx+3060+12gb+dual+oc+gddr6+702251',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 gaming',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/pny+geforce+rtx+3060+12gb+xlr8+gaming+revel+epic+x+rgb+single+701885',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp white',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/zotac+geforce+rtx+3060+amp+white+12gb+gddr6+grafikkarte+701867',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.notebooksbilliger.de/zotac+gaming+geforce+rtx+3060+twin+edge+oc+12gb+grafikkarte+700378',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
|
|||||||
@@ -67,6 +67,11 @@ export const Novatech: Store = {
|
|||||||
urlSelector: 'a[href]',
|
urlSelector: 'a[href]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3060/?i=200',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -0,0 +1,215 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const NovoAtalho: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'div.line > div.pull-left > div.stockpadding > span.stock > b > a',
|
||||||
|
text: ['DISPONÍVEL', 'POUCAS UNIDADES'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'div.line > div.pull-left > div.stockpadding > span.stock > b > a',
|
||||||
|
text: ['INDISPONÍVEL'],
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container:
|
||||||
|
'div.line > div.pull-right > div.text-right > span.product-price',
|
||||||
|
euroFormat: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/27318/Cabo-HDMI-p-MiniHDMI-Gembird-1-8Mtr/CC-HDMI4C-6.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/44484/Placa-Grafica-Asus-GeForce-RTX-3090-ROG-STRIX-24GB/90YV0F90-M0NM00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/44485/Placa-Grafica-Asus-GeForce-RTX-3090-ROG-STRIX-OC-24GB/90YV0F93-M0NM00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/44319/Placa-Grafica-Asus-GeForce-RTX-3090-TUF-GAMING-OC-24GB/90YV0FD1-M0NM00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45582/Placa-Grafica-EVGA-GeForce-RTX-3090-FTW3-ULTRA-GAMING-24GB/24G-P5-3987-KR.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/44316/Placa-Grafica-MSI-GeForce-RTX-3090-GAMING-X-TRIO-24GB/912-V388-011.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45819/Placa-Grafica-MSI-GeForce-RTX-3090-SUPRIM-X-24GB/912-V388-010.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45331/Placa-Grafica-Asus-GeForce-RTX-3070-DUAL-OC-8GB/90YV0FQ0-M0NA00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45750/Placa-Grafica-Asus-GeForce-RTX-3070-TUF-GAMING-OC-8GB/90YV0FQ6-M0NA00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45862/Placa-Grafica-Gigabyte-GeForce-RTX-3070-Gaming-OC-8GB/GV-N3070GAM-OC-8G.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45334/Placa-Grafica-MSI-GeForce-RTX-3070-GAMING-X-TRIO-8GB/912-V390-006.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/47052/Placa-Grafica-MSI-GeForce-RTX-3060-VENTUS-3X-OC-12G/912-V397-038.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46883/Placa-Grafica-MSI-GeForce-RTX-3060-GAMING-X-TRIO-OC-12GB/912-V390-081.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/47050/Placa-Grafica-MSI-GeForce-RTX-3060-GAMING-X-12G/912-V397-037.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46920/Placa-Grafica-Gigabyte-GeForce-RTX-3060-Gaming-OC-12GB/GVN3060GO-00-10.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46702/Placa-Grafica-Asus-GeForce-RTX-3060-TUF-GAMING-OC-12GB/90YV0GC0-M0NA00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46783/Placa-Grafica-Asus-GeForce-RTX-3060-Ti-TUF-GAMING-OC-8GB/90YV0G10-M0NA00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46701/Placa-Grafica-Asus-GeForce-RTX-3060-ROG-STRIX-OC-12GB/90YV0GC2-M0NA00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46281/Placa-Grafica-Asus-Radeon-RX-6800-ROG-STRIX-OC-16GB/90YV0FM0-M0NA00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46785/Placa-Grafica-Asus-Radeon-RX-6800-XT-ROG-STRIX-OC-LC-16GB/90YV0FL0-M0NM00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46784/Placa-Grafica-Asus-Radeon-RX-6800-XT-TUF-GAMING-OC-16GB/90YV0FL1-M0NM00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46280/Placa-Grafica-MSI-Radeon-RX-6800-GAMING-X-TRIO-16GB/V396-002R.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46279/Placa-Grafica-MSI-Radeon-RX-6800-XT-GAMING-X-TRIO-16GB/912-V395-001.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: 'rx6900xt',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46700/Placa-Grafica-Asus-Radeon-RX-6900-XT-TUF-GAMING-OC-16GB/90YV0GE0-M0NM00.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: 'rx6900xt',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/46649/Placa-Grafica-MSI-Radeon-RX-6900-XT-GAMING-X-TRIO-16GB/912-V395-007.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5600x',
|
||||||
|
series: 'ryzen5600',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45058/Processador-AMD-Ryzen-5-5600X-3-7Ghz-6-Core-SktAM4/100-100000065BOX.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url:
|
||||||
|
'https://www.novoatalho.pt/pt-PT/produto/45059/Processador-AMD-Ryzen-7-5800X-3-8Ghz-OctaCore-SktAM4/100-100000063WOF.html',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'novoatalho',
|
||||||
|
waitUntil: 'domcontentloaded',
|
||||||
|
};
|
||||||
@@ -1,250 +0,0 @@
|
|||||||
import {generateLinks, generateSetupAction} from './helpers/nvidia';
|
|
||||||
import {Store} from './store';
|
|
||||||
|
|
||||||
// Region/country set by config file, silently ignores null / missing values and defaults to usa
|
|
||||||
|
|
||||||
export interface NvidiaRegionInfo {
|
|
||||||
currency: string;
|
|
||||||
drLocale: string;
|
|
||||||
fe3080Id: number | null;
|
|
||||||
fe3090Id: number | null;
|
|
||||||
fe2060SuperId: number | null;
|
|
||||||
siteLocale: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const regionInfos = new Map<string, NvidiaRegionInfo>([
|
|
||||||
[
|
|
||||||
'austria',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'de_de',
|
|
||||||
fe2060SuperId: 5394902900,
|
|
||||||
fe3080Id: 5440853700,
|
|
||||||
fe3090Id: 5444941400,
|
|
||||||
siteLocale: 'de-at',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'belgium',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'fr_fr',
|
|
||||||
fe2060SuperId: 5394902700,
|
|
||||||
fe3080Id: 5438795700,
|
|
||||||
fe3090Id: 5438795600,
|
|
||||||
siteLocale: 'fr-be',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'canada',
|
|
||||||
{
|
|
||||||
currency: 'CAD',
|
|
||||||
drLocale: 'en_us',
|
|
||||||
fe2060SuperId: 5379432500,
|
|
||||||
fe3080Id: 5438481700,
|
|
||||||
fe3090Id: 5438481600,
|
|
||||||
siteLocale: 'en-us',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'czechia',
|
|
||||||
{
|
|
||||||
currency: 'CZK',
|
|
||||||
drLocale: 'en_gb',
|
|
||||||
fe2060SuperId: 5394902800,
|
|
||||||
fe3080Id: 5438793800,
|
|
||||||
fe3090Id: 5438793600,
|
|
||||||
siteLocale: 'cs-cz',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'denmark',
|
|
||||||
{
|
|
||||||
currency: 'DKK',
|
|
||||||
drLocale: 'en_gb',
|
|
||||||
fe2060SuperId: 5394903100,
|
|
||||||
fe3080Id: 5438793300,
|
|
||||||
fe3090Id: null,
|
|
||||||
siteLocale: 'da-dk',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'finland',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'en_gb',
|
|
||||||
fe2060SuperId: 5394903100,
|
|
||||||
fe3080Id: 5438793300,
|
|
||||||
fe3090Id: null,
|
|
||||||
siteLocale: 'fi-fi',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'france',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'fr_fr',
|
|
||||||
fe2060SuperId: 5394903200,
|
|
||||||
fe3080Id: 5438795200,
|
|
||||||
fe3090Id: 5438761500,
|
|
||||||
siteLocale: 'fr-fr',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'germany',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'de_de',
|
|
||||||
fe2060SuperId: 5394902900,
|
|
||||||
fe3080Id: 5438792300,
|
|
||||||
fe3090Id: 5438761400,
|
|
||||||
siteLocale: 'de-de',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'great_britain',
|
|
||||||
{
|
|
||||||
currency: 'GBP',
|
|
||||||
drLocale: 'en_gb',
|
|
||||||
fe2060SuperId: 5394903300,
|
|
||||||
fe3080Id: 5438792800,
|
|
||||||
fe3090Id: 5438792700,
|
|
||||||
siteLocale: 'en-gb',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'ireland',
|
|
||||||
{
|
|
||||||
currency: 'GBP',
|
|
||||||
drLocale: 'en_gb',
|
|
||||||
fe2060SuperId: 5394903300,
|
|
||||||
fe3080Id: 5438792800,
|
|
||||||
fe3090Id: 5438792700,
|
|
||||||
siteLocale: 'en-gb',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'italy',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'it_it',
|
|
||||||
fe2060SuperId: 5394903400,
|
|
||||||
fe3080Id: 5438796200,
|
|
||||||
fe3090Id: 5438796100,
|
|
||||||
siteLocale: 'it-it',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'luxembourg',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'fr_fr',
|
|
||||||
fe2060SuperId: 5394902700,
|
|
||||||
fe3080Id: 5438795700,
|
|
||||||
fe3090Id: 5438795600,
|
|
||||||
siteLocale: 'fr-be',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'netherlands',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'nl_nl',
|
|
||||||
fe2060SuperId: 5394903500,
|
|
||||||
fe3080Id: 5438796700,
|
|
||||||
fe3090Id: 5438796600,
|
|
||||||
siteLocale: 'nl-nl',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'norway',
|
|
||||||
{
|
|
||||||
currency: 'NOK',
|
|
||||||
drLocale: 'no_no',
|
|
||||||
fe2060SuperId: 5394903600,
|
|
||||||
fe3080Id: 5438797200,
|
|
||||||
fe3090Id: 5438797100,
|
|
||||||
siteLocale: 'nb-no',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'poland',
|
|
||||||
{
|
|
||||||
currency: 'PLN',
|
|
||||||
drLocale: 'pl_pl',
|
|
||||||
fe2060SuperId: 5394903700,
|
|
||||||
fe3080Id: 5438797700,
|
|
||||||
fe3090Id: 5438797600,
|
|
||||||
siteLocale: 'pl-pl',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'portugal',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'en_gb',
|
|
||||||
fe2060SuperId: null,
|
|
||||||
fe3080Id: 5438794300,
|
|
||||||
fe3090Id: null,
|
|
||||||
siteLocale: 'en-gb',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'russia',
|
|
||||||
{
|
|
||||||
currency: 'RUB',
|
|
||||||
drLocale: 'ru_ru',
|
|
||||||
fe2060SuperId: null,
|
|
||||||
fe3080Id: null,
|
|
||||||
fe3090Id: null,
|
|
||||||
siteLocale: 'ru-ru',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'spain',
|
|
||||||
{
|
|
||||||
currency: 'EUR',
|
|
||||||
drLocale: 'es_es',
|
|
||||||
fe2060SuperId: 5394903000,
|
|
||||||
fe3080Id: 5438794800,
|
|
||||||
fe3090Id: 5438794700,
|
|
||||||
siteLocale: 'es-es',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'sweden',
|
|
||||||
{
|
|
||||||
currency: 'SEK',
|
|
||||||
drLocale: 'sv_se',
|
|
||||||
fe2060SuperId: 5394903900,
|
|
||||||
fe3080Id: 5438798100,
|
|
||||||
fe3090Id: 5438761600,
|
|
||||||
siteLocale: 'sv-se',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
// https://github.com/jef/streetmerchant/issues/407 This fe2080SuperID is for the Shield TV which is out of stock in the US
|
|
||||||
[
|
|
||||||
'usa',
|
|
||||||
{
|
|
||||||
currency: 'USD',
|
|
||||||
drLocale: 'en_us',
|
|
||||||
fe2060SuperId: 5355772500,
|
|
||||||
fe3080Id: 5438481700,
|
|
||||||
fe3090Id: 5438481600,
|
|
||||||
siteLocale: 'en-us',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
]);
|
|
||||||
|
|
||||||
export const NvidiaApi: Store = {
|
|
||||||
currency: '',
|
|
||||||
labels: {
|
|
||||||
inStock: {
|
|
||||||
container: 'body',
|
|
||||||
text: ['product_inventory_in_stock'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
links: generateLinks(),
|
|
||||||
name: 'nvidia-api',
|
|
||||||
setupAction: generateSetupAction(),
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const NvidiaDE: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['In den Einkaufswagen', 'JETZT KAUFEN'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['DERZEIT NICHT VERFÜGBAR'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/de-de/geforce/graphics-cards/rtx-2060-super/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'nvidia-de',
|
||||||
|
};
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const NvidiaES: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['Añadir al carrito', 'COMPRAR AHORA'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['AGOTADO'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/es-es/geforce/graphics-cards/rtx-2060-super/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'nvidia-es',
|
||||||
|
};
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const NvidiaFR: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['ajouter au panier', 'acheter maintenant'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['RUPTURE DE STOCK'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/fr-fr/geforce/graphics-cards/rtx-2060-super/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'nvidia-fr',
|
||||||
|
};
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const NvidiaGB: Store = {
|
||||||
|
currency: '£',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['add to cart', 'buy now'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.buy',
|
||||||
|
text: ['out of stock'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/en-gb/geforce/graphics-cards/rtx-2060-super/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'nvidia-gb',
|
||||||
|
};
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
import {Store} from './store';
|
|
||||||
|
|
||||||
export const Nvidia: Store = {
|
|
||||||
currency: '$',
|
|
||||||
labels: {
|
|
||||||
captcha: {
|
|
||||||
container: 'body',
|
|
||||||
text: ['are you a human?'],
|
|
||||||
},
|
|
||||||
inStock: [
|
|
||||||
{
|
|
||||||
container: '.main-container',
|
|
||||||
text: ['add to cart'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
container: '.inner',
|
|
||||||
text: ['add to cart'],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
links: [
|
|
||||||
{
|
|
||||||
brand: 'test:brand',
|
|
||||||
model: 'test:model',
|
|
||||||
series: 'test:series',
|
|
||||||
url: 'https://www.nvidia.com/en-us/shop/geforce/gpu/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'test:brand',
|
|
||||||
model: 'test:model',
|
|
||||||
series: 'test:series',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2060-super/',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
series: '3080',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/shop/geforce/gpu/?page=1&limit=9&locale=en-us&category=GPU&gpu=RTX%203080',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
series: '3080',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3080',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
series: '3090',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/shop/geforce/gpu/?page=1&limit=9&locale=en-us&category=GPU&gpu=RTX%203090',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
series: '3090',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3090',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
series: '3070',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/shop/geforce/gpu/?page=1&limit=9&locale=en-us&category=GPU&gpu=RTX%203070',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
brand: 'nvidia',
|
|
||||||
model: 'founders edition',
|
|
||||||
series: '3070',
|
|
||||||
url:
|
|
||||||
'https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3070',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
name: 'nvidia',
|
|
||||||
};
|
|
||||||
@@ -77,6 +77,11 @@ export const Overclockers: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.overclockers.co.uk/pc-components/graphics-cards/amd/radeon-rx-6900-xt-series',
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/amd/radeon-rx-6900-xt-series',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3060',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -24,6 +24,104 @@ export const PCComponentes: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.pccomponentes.com/gigabyte-geforce-gtx-1660-super-oc-6gb-gddr6',
|
'https://www.pccomponentes.com/gigabyte-geforce-gtx-1660-super-oc-6gb-gddr6',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/zotac-gaming-geforce-rtx-3090-trinity-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3090-gaming-oc-24g-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/evga-geforce-rtx-3090-xc3-ultra-gaming-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/asus-tuf-geforce-rtx-3090-gaming-oc-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'turbo',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3090-turbo-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/msi-geforce-rtx-3090-gaming-x-trio-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-aorus-geforce-rtx-3090-xtreme-24gb-gddrx6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-aorus-geforce-rtx-3090-master-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/asus-rog-strix-geforce-rtx-3090-gaming-oc-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra hybrid',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/evga-geforce-rtx-3090-ftw3-ultra-hybrid-gaming-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/evga-geforce-rtx-3090-ftw3-ultra-gaming-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-wb-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3090-eagle-oc-24g-24gb-gddr6x',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/msi-geforce-rtx-3090-ventus-3x-oc-24gb-gddr6x',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
@@ -313,6 +411,118 @@ export const PCComponentes: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.pccomponentes.com/asus-rog-strix-gaming-geforce-rtx-3070-8gb-gddr6',
|
'https://www.pccomponentes.com/asus-rog-strix-gaming-geforce-rtx-3070-8gb-gddr6',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/msi-rtx-3060-ti-ventus-2x-oc-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3060-ti-eagle-oc-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/evga-geforce-rtx-3060-ti-ftw3-ultra-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/asus-geforce-rtx-3060ti-dual-o8g-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3060-ti-gaming-oc-pro-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/msi-geforce-rtx-3060-ti-gaming-x-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/zotac-geforce-rtx-3060ti-d6-twin-edge-oc-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/asus-rog-strix-geforce-rtx-3060ti-o8g-gaming-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/asus-tuf-geforce-rtx-3060ti-o8g-gaming-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/msi-rtx-3060-ti-gaming-x-trio-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/zotac-geforce-rtx-3060-ti-d6-twin-edge-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/evga-geforce-rtx-3060-ti-xc-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-aorus-geforce-rtx-3060-ti-master-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/pny-geforce-rtx-3060ti-xlr8-gaming-revel-epic-x-rgb-edition-8gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: 'rx6900xt',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/gigabyte-radeon-rx-6900-xt-gaming-oc-16gb-gddr6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: 'rx6900xt',
|
||||||
|
url:
|
||||||
|
'https://www.pccomponentes.com/asus-tuf-amd-radeon-rx-6900xt-oc-16gb-gddr6',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
name: 'pccomponentes',
|
name: 'pccomponentes',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,569 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const PCDiga: Store = {
|
||||||
|
currency: '€',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#product-addtocart-button > span',
|
||||||
|
text: ['Adicionar ao carrinho'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: 'div[id="skrey_estimate_date_product_page_wrapper"]',
|
||||||
|
text: ['Sem stock'],
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.price-container.price-final_price > .price-wrapper > span',
|
||||||
|
euroFormat: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-ekwb-geforce-rtx-3080-10gb-gddr6x-90yv0f60-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-ekwb-geforce-rtx-3080-10gb-gddr6x-90yv0f60-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-msi-geforce-rtx-3080-ventus-3x-10g-oc-912-v389-001',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-msi-geforce-rtx-3080-gaming-x-trio-10g-912-v389-005',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-zotac-gaming-geforce-rtx-3080-10gb-gddr6x-trinity-zt-a30800d-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-90yv0fa0-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x-90yv0fb0-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3080-aorus-xtreme-10gb-gddr6x-gv-n3080aorus-x-10gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-msi-geforce-rtx-3080-suprim-x-10g-912-v389-006',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3080-aorus-master-10gb-gddr6x-gvn3080am-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-rtx-3080-aorus-gaming-box-10gb-gv-n3080ixeb-10gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-pny-geforce-rtx-3080-10gb-gddr6x-xlr8-gaming-epic-x-rgb-triple-fan-vcg308010tfxppb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-pny-geforce-rtx-3080-10gb-gddr6x-xlr8-gaming-epic-x-rgb-triple-fan-vcg308010tfxmpb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-zotac-gaming-geforce-rtx-3080-10gb-gddr6x-trinity-oc-zt-a30800j-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-zotac-gaming-geforce-rtx-3080-10gb-gddr6x-amp-holo-zt-a30800f-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3080-vision-10gb-gddr6x-oc-edition-gv-n3080vision-oc-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-oc-edition-90yv0fa1-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x-oc-edition-90yv0fb1-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3080-eagle-10gb-gddr6x-oc-edition-gvn3080eo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3080-gaming-10gb-gddr6x-oc-edition-gvn3080go-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc white',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-oc-white-edition-90yv0fa5-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3090-aorus-gaming-box-24gb-gv-n3090ixeb-24gd-1-0',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3090-aorus-master-24gb-gv-n3090aorus-m-24gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-zotac-gaming-geforce-rtx-3090-24gb-gddr6x-trinity-zt-a30900d-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-rog-strix-geforce-rtx-3090-24gb-gddr6x-90yv0f90-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-tuf-gaming-geforce-rtx-3090-24gb-gddr6x-90yv0fd0-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-msi-geforce-rtx-3090-ventus-3x-24g-oc-912-v388-002',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-msi-geforce-rtx-3090-gaming-x-trio-24g-912-v388-011',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-msi-geforce-rtx-3090-suprim-x-24g-912-v388-010',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3090-vision-oc-24gb-gvn3090vo-00-g',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3090-aorus-xtreme-24gb-gvn3090ax-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-ekwb-geforce-rtx-3090-24gb-gddr6x-90yv0f80-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-pny-geforce-rtx-3090-24gb-gddr6x-xlr8-gaming-epic-x-rgb-triple-fan-vcg309024tfxppb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-pny-geforce-rtx-3090-24gb-gddr6x-xlr8-gaming-epic-x-rgb-triple-fan-vcg309024tfxmpb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-rog-strix-geforce-rtx-3090-24gb-gddr6x-oc-edition-90yv0f93-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-tuf-gaming-geforce-rtx-3090-24gb-gddr6x-oc-edition-90yv0fd1-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3090-eagle-24gb-gddr6x-oc-edition-gvn3090eo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-gigabyte-geforce-rtx-3090-gaming-24gb-gddr6x-oc-edition-gvn3090go-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity oc',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-zotac-gaming-geforce-rtx-3090-24gb-gddr6x-trinity-oc-zt-a30900j-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc white',
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/placa-grafica-asus-rog-strix-gaming-geforce-rtx-3090-24gb-gddr6x-oc-white-edition-90yv0f96-m0nm00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3070-eagle-8gb-gddr6-gv-n3070eagle-8gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3070-gaming-oc-8g-gv-n3070gaming-oc-8gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-zotac-gaming-geforce-rtx-3070-8gb-gddr6-twin-edge-oc-zt-a30700h-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-zotac-gaming-geforce-rtx-3070-8gb-gddr6-twin-edge-zt-a30700e-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3070-ventus-2x-8g-oc-912-v390-008',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-pny-geforce-rtx-3070-8gb-gddr6-xlr8-gaming-epic-x-rgb-triple-fan-vcg30708tfxppb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'dual fan',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-pny-geforce-rtx-3070-8gb-gddr6-dual-fan-vcg30708dfmpb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3070-aorus-master-8gb-gddr6-gv-n3070aorus-m-8gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3070-vision-oc-8gb-gddr6-gv-n3070vision-oc-8gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3070-eagle-8gb-gddr6-oc-edition-gv-n3070eagle-oc-8gd',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-dual-geforce-rtx-3070-8gb-gddr6-oc-editon-90yv0fq0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-dual-geforce-rtx-3070-8gb-gddr6-90yv0fq1-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-rog-strix-geforce-rtx-3070-8gb-gddr6-oc-editon-90yv0fr1-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-rog-strix-geforce-rtx-3070-8gb-gddr6-90yv0fr0-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-tuf-gaming-geforce-rtx-3070-8gb-gddr6-oc-edition-90yv0fq6-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-zotac-gaming-geforce-rtx-3070-8gb-gddr6-amp-holo-zt-a30700f-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-zotac-gaming-geforce-rtx-3070-8gb-gddr6-twin-edge-oc-white-edition-zt-a30700j-10p',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3070-suprim-x-8g-912-v390-005',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-dual-geforce-rtx-3060-ti-8gb-gddr6-90yv0g13-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-dual-geforce-rtx-3060-ti-8gb-gddr6-oc-90yv0g12-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-rog-strix-geforce-rtx-3060-ti-8gb-gddr6-90yv0g00-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-rog-strix-geforce-rtx-3060-ti-8gb-gddr6-oc-90yv0g02-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-tuf-gaming-rtx-3060-ti-8gb-gddr6-90yv0g11-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-asus-tuf-gaming-rtx-3060-ti-8gb-gddr6-oc-90yv0g10-m0na00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3060-ti-aorus-master-8gb-gddr6-gvn306tam-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3060-ti-eagle-8gb-gddr6-gvn306teo-00-g',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3060-ti-eagle-oc-8gb-gddr6-gvn306teo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3060-ti-gaming-oc-8gb-gddr6-gvn306tgo-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-gigabyte-geforce-rtx-3060-ti-gaming-oc-pro-8gb-gddr6-gvn306tgop-00-10',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3060-ti-gaming-x-8gb-gddr6-912-v397-042',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3060-ti-gaming-x-trio-8gb-gddr6-912-v390-053',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3060-ti-ventus-2x-8gb-gddr6-oc-912-v390-009',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3060-ti-ventus-2x-ocv1-8gb-gddr6-oc-912-v397-003',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-msi-geforce-rtx-3060-ti-ventus-3x-8gb-gddr6-oc-912-v397-001',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'dual fan',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-pny-geforce-rtx-3060-ti-8gb-gddr6-uprising-dual-fan-vcg3060t8dfmpb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-pny-geforce-rtx-3060-ti-8gb-gddr6-xlr8-revel-epic-x-dual-fan-vcg3060t8dfxppb',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-zotac-gaming-geforce-rtx-3060-ti-8gb-gddr6-twin-edge-oc-zt-a30610h-10m',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.pcdiga.com/componentes/placas-graficas/placas-graficas-nvidia/placa-grafica-zotac-gaming-geforce-rtx-3060-ti-8gb-gddr6-twin-edge-zt-a30610e-10m',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'pcdiga',
|
||||||
|
waitUntil: 'domcontentloaded',
|
||||||
|
};
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const PowerNO: Store = {
|
||||||
|
currency: 'kr.',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'#product-intro > div.container.old-product-page.ng-star-inserted > div > div > div.col-md-7 > div > div.product-control > div.buy-area.ng-star-inserted > div.buy-area__webshop > button',
|
||||||
|
text: ['Legg til handlekurv'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'#product-intro > div.container.old-product-page.ng-star-inserted > div > div > div.col-md-7 > div > div.product-control > div.buy-area.ng-star-inserted > div > button',
|
||||||
|
text: ['Ikke på lager'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1128968/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1118420/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1118419/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1145753/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1115923/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1117755/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1141929/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1141928/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1121308/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1121307/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1118416/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1118415/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 epic x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.power.no/data-og-tilbehoer/p-1128968/',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'power-no',
|
||||||
|
};
|
||||||
@@ -0,0 +1,612 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const ProshopNO: Store = {
|
||||||
|
currency: 'kr.',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.site-stock',
|
||||||
|
text: ['1-3 dager til levering', 'Fjernlager'],
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.site-stock',
|
||||||
|
text: ['Bestilt'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.proshop.no/2694767',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2910054',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2910052',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2911560',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2886986',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2911556',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2886982',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2887734',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2887735',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2887737',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2886988',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2887738',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2887736',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2908274',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2886984',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2 oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2908273',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2886990',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual mini',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2914081',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2886980',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual mini oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2914082',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.proshop.no/2914133',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876871',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2908888',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876873',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876875',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2885269',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876845',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876856',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2878390',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2878383',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2878392',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2878386',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876853',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876851',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876854',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2 oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2883917',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2876843',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2878385',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2911575',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2883916',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x4',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2883919',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2911574',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2911577',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2883918',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2911956',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2912456',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2914382',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2914381',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.proshop.no/2912910',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876877',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2885270',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876878',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876879',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming trio',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876876',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876859',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876763',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876861',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2911579',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876838',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878401',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876835',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876857',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2887568',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878395',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876836',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x4',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878971',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2 oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878968',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2911578',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878969',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2876837',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878393',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce wb',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.proshop.no/2878394',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876881',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'suprim x',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2885271',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876883',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876882',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876869',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming trio',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876880',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'gaming x3',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878977',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878978',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x4',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878979',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876867',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876840',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876764',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2911582',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ekwb',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2887569',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876839',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme waterforce',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878404',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878413',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill frostbite',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2887323',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878405',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2911581',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2876841',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'turbo',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878410',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2878406',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'palit',
|
||||||
|
model: 'gamerock oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.proshop.no/2911898',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url: 'https://www.proshop.no/2884171',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5900x',
|
||||||
|
series: 'ryzen5900',
|
||||||
|
url: 'https://www.proshop.no/2884173',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5950x',
|
||||||
|
series: 'ryzen5950',
|
||||||
|
url: 'https://www.proshop.no/2884175',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
name: 'proshop-no',
|
||||||
|
};
|
||||||
@@ -42,6 +42,18 @@ export const Saturn: Store = {
|
|||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.saturn.de/de/product/-2641856.html',
|
url: 'https://www.saturn.de/de/product/-2641856.html',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'ichill x3',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.saturn.de/de/product/-2718593.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'inno3d',
|
||||||
|
model: 'twin x2 oc',
|
||||||
|
series: '3060',
|
||||||
|
url: 'https://www.saturn.de/de/product/-2718594.html',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
|
|||||||
@@ -97,6 +97,12 @@ export const Scan: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.scan.co.uk/shop/computer-hardware/gpu-amd/amd-radeon-rx-6900-xt-pcie-40-graphics-cards',
|
'https://www.scan.co.uk/shop/computer-hardware/gpu-amd/amd-radeon-rx-6900-xt-pcie-40-graphics-cards',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
//3060 is in gaming section not computer-hardware
|
||||||
|
'https://www.scan.co.uk/shop/gaming/gpu-nvidia/nvidia-geforce-rtx-3060-graphics-cards',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import {Browser, LoadEvent} from 'puppeteer';
|
import {Browser, PuppeteerLifeCycleEvent} from 'puppeteer';
|
||||||
|
|
||||||
export type Element = {
|
export type Element = {
|
||||||
container?: string;
|
container?: string;
|
||||||
@@ -39,6 +39,7 @@ export type Brand =
|
|||||||
export type Series =
|
export type Series =
|
||||||
| 'test:series'
|
| 'test:series'
|
||||||
| 'captcha-deterrent'
|
| 'captcha-deterrent'
|
||||||
|
| '3060'
|
||||||
| '3060ti'
|
| '3060ti'
|
||||||
| '3070'
|
| '3070'
|
||||||
| '3080'
|
| '3080'
|
||||||
@@ -65,10 +66,12 @@ export type Model =
|
|||||||
| '5900x'
|
| '5900x'
|
||||||
| '5950x'
|
| '5950x'
|
||||||
| '600 platinum'
|
| '600 platinum'
|
||||||
|
| '600 gold'
|
||||||
| '750 platinum'
|
| '750 platinum'
|
||||||
| 'amd reference'
|
| 'amd reference'
|
||||||
| 'amp extreme holo'
|
| 'amp extreme holo'
|
||||||
| 'amp holo'
|
| 'amp holo'
|
||||||
|
| 'amp white'
|
||||||
| 'aorus master'
|
| 'aorus master'
|
||||||
| 'aorus master type-c'
|
| 'aorus master type-c'
|
||||||
| 'aorus xtreme'
|
| 'aorus xtreme'
|
||||||
@@ -101,6 +104,7 @@ export type Model =
|
|||||||
| 'gaming pro'
|
| 'gaming pro'
|
||||||
| 'gaming trio'
|
| 'gaming trio'
|
||||||
| 'gaming x trio'
|
| 'gaming x trio'
|
||||||
|
| 'gaming x'
|
||||||
| 'gaming x3'
|
| 'gaming x3'
|
||||||
| 'ghost oc'
|
| 'ghost oc'
|
||||||
| 'suprim x'
|
| 'suprim x'
|
||||||
@@ -228,7 +232,7 @@ export type Store = {
|
|||||||
* 0 -> 399 inclusive.
|
* 0 -> 399 inclusive.
|
||||||
*/
|
*/
|
||||||
successStatusCodes?: StatusCodeRangeArray;
|
successStatusCodes?: StatusCodeRangeArray;
|
||||||
waitUntil?: LoadEvent;
|
waitUntil?: PuppeteerLifeCycleEvent;
|
||||||
minPageSleep?: number;
|
minPageSleep?: number;
|
||||||
maxPageSleep?: number;
|
maxPageSleep?: number;
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ export const Vuugo: Store = {
|
|||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div.price:nth-child(12)',
|
container: 'div.price:nth-child(12)',
|
||||||
},
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.description .red',
|
||||||
|
text: ['Back Order'],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,6 +24,20 @@ export const Wipoid: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.wipoid.com/pny-geforce-rtx-1650-dual-fan-4gb-gddr6.html',
|
'https://www.wipoid.com/pny-geforce-rtx-1650-dual-fan-4gb-gddr6.html',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/asus-rog-strix-geforce-rtx-3060-12gb-gddr6.html',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/asus-rog-strix-geforce-rtx-3060-oc-edition-12gb-gddr6.html',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
@@ -155,7 +169,7 @@ export const Wipoid: Store = {
|
|||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.wipoid.com/gigabyte-aorus-geforce-rtx-3070-master-8gb-gddr6.html',
|
'https://www.wipoid.com/gigabyte-geforce-rtx-3070-vision-oc-8gb-gddr6.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -238,7 +252,7 @@ export const Wipoid: Store = {
|
|||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.wipoid.com/gigabyte-geforce-rtx-3070-vision-oc-8gb-gddr6.html',
|
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-eagle-oc-10gb-gddr6x.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
|
|||||||
@@ -21,6 +21,22 @@ export const Zotac: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://store.zotac.com/zotac-gaming-geforce-rtx-2060-twin-fan-zt-t20600f-10m',
|
'https://store.zotac.com/zotac-gaming-geforce-rtx-2060-twin-fan-zt-t20600f-10m',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
//removing /us/ results in a 404 error
|
||||||
|
'https://www.zotacstore.com/us/zotac-gaming-geforce-rtx-3060-twin-edge-zt-a30600e-10m',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060',
|
||||||
|
url:
|
||||||
|
//removing /us/ results in a 404 error
|
||||||
|
'https://www.zotacstore.com/us/zotac-gaming-geforce-rtx-3060-twin-edge-oc-zt-a30600h-10m',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
|
|||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
declare module 'top-user-agents';
|
||||||
+6
-2
@@ -1,4 +1,4 @@
|
|||||||
import {Browser, Page, Response} from 'puppeteer';
|
import {Browser, Page, HTTPResponse} from 'puppeteer';
|
||||||
import {StatusCodeRangeArray, Store} from './store/model';
|
import {StatusCodeRangeArray, Store} from './store/model';
|
||||||
import {config} from './config';
|
import {config} from './config';
|
||||||
import {disableBlockerInPage} from './adblocker';
|
import {disableBlockerInPage} from './adblocker';
|
||||||
@@ -45,7 +45,11 @@ export function isStatusCodeInRange(
|
|||||||
export async function usingResponse<T>(
|
export async function usingResponse<T>(
|
||||||
browser: Browser,
|
browser: Browser,
|
||||||
url: string,
|
url: string,
|
||||||
cb: (response: Response | null, page: Page, browser: Browser) => Promise<T>
|
cb: (
|
||||||
|
response: HTTPResponse | null,
|
||||||
|
page: Page,
|
||||||
|
browser: Browser
|
||||||
|
) => Promise<T>
|
||||||
): Promise<T> {
|
): Promise<T> {
|
||||||
return usingPage(browser, async (page, browser) => {
|
return usingPage(browser, async (page, browser) => {
|
||||||
const response = await page.goto(url, {waitUntil: 'domcontentloaded'});
|
const response = await page.goto(url, {waitUntil: 'domcontentloaded'});
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# Terraform for AWS Fargate
|
||||||
|
|
||||||
|
Here is a configurable terraform to get you up and running with the streetmerchant docker image in AWS ECS Fargate.
|
||||||
|
|
||||||
|
Running on cloud infrastructure (your mileage may vary), you'll need to integrate with one of the chat notifications rather than having your local browser navigate to a URL for you.
|
||||||
|
|
||||||
|
The author's findings were that it worked ok; running the container from within EU-West-2 region was sufficient to get a timely alert for PS5 stock on Aamzon and follow the link to a successful checkout.
|
||||||
|
|
||||||
|
Dependencies:
|
||||||
|
|
||||||
|
- Terraform 14
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
There's an example tfvars file to start you off; rename this with your own preferences. Anything you can set in the `dotenv` file you'll need to set in terraform.tfvars to get the env vars into your fargate container.
|
||||||
|
|
||||||
|
Authenticate yourself with your own AWS account as with any aws commandline tool.
|
||||||
|
|
||||||
|
If you wish, add a specific section to your aws credentials file and set that profile name in `terraform.tfvars`.
|
||||||
|
|
||||||
|
Then you can:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd ./terraform
|
||||||
|
terraform init
|
||||||
|
|
||||||
|
terraform plan
|
||||||
|
terraform apply
|
||||||
|
```
|
||||||
|
|
||||||
|
## What's included
|
||||||
|
|
||||||
|
- container running streetmerchant with your chosen config
|
||||||
|
- cloud metrics and a dashboard tracking 'out of stock' and 'error' responses from your configured stores
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"widgets": [
|
||||||
|
{
|
||||||
|
"type": "metric",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 18,
|
||||||
|
"height": 12,
|
||||||
|
"properties": {
|
||||||
|
"metrics": ${out_of_stock},
|
||||||
|
"view": "timeSeries",
|
||||||
|
"stacked": false,
|
||||||
|
"region": "${region}",
|
||||||
|
"start": "-PT1H",
|
||||||
|
"end": "P0D",
|
||||||
|
"stat": "Sum",
|
||||||
|
"period": 300,
|
||||||
|
"title": "out of stock"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "metric",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 18,
|
||||||
|
"height": 12,
|
||||||
|
"properties": {
|
||||||
|
"metrics": ${error},
|
||||||
|
"view": "timeSeries",
|
||||||
|
"stacked": false,
|
||||||
|
"region": "${region}",
|
||||||
|
"start": "-PT1H",
|
||||||
|
"end": "P0D",
|
||||||
|
"stat": "Sum",
|
||||||
|
"period": 300,
|
||||||
|
"title": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
aws = {
|
||||||
|
source = "hashicorp/aws"
|
||||||
|
version = "~> 3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "aws" {
|
||||||
|
region = var.region
|
||||||
|
shared_credentials_file = var.credential_file
|
||||||
|
profile = var.credential_profile
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
resource "aws_ecs_cluster" "main" {
|
||||||
|
name = "${var.app_name}-ecs-cluster"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_ecs_service" "main" {
|
||||||
|
name = "${var.app_name}-ecs-service"
|
||||||
|
cluster = aws_ecs_cluster.main.id
|
||||||
|
task_definition = aws_ecs_task_definition.main.id
|
||||||
|
desired_count = 1
|
||||||
|
network_configuration {
|
||||||
|
subnets = [
|
||||||
|
aws_subnet.aws-subnet.id
|
||||||
|
]
|
||||||
|
assign_public_ip = true
|
||||||
|
}
|
||||||
|
launch_type = "FARGATE"
|
||||||
|
}
|
||||||
|
|
||||||
|
data "aws_iam_role" "ecs_task_execution_role" {
|
||||||
|
name = "ecsTaskExecutionRole"
|
||||||
|
}
|
||||||
|
|
||||||
|
locals {
|
||||||
|
container_env = [for k, v in var.streetmerchant_env : { name: k, value: v}]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_ecs_task_definition" "main" {
|
||||||
|
container_definitions = templatefile("taskdef.json.template", {
|
||||||
|
"name": var.app_name
|
||||||
|
"awslogs-group": aws_cloudwatch_log_group.main.name
|
||||||
|
"region": var.region
|
||||||
|
"cpu": var.cpu
|
||||||
|
"memory": parseint(var.memory,10)
|
||||||
|
"environment": jsonencode(local.container_env)
|
||||||
|
})
|
||||||
|
family = var.app_name
|
||||||
|
requires_compatibilities = ["FARGATE"]
|
||||||
|
network_mode = "awsvpc"
|
||||||
|
cpu = var.cpu
|
||||||
|
memory = var.memory
|
||||||
|
execution_role_arn = data.aws_iam_role.ecs_task_execution_role.arn
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
resource "aws_cloudwatch_log_group" "main" {
|
||||||
|
name = var.app_name
|
||||||
|
retention_in_days = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
locals {
|
||||||
|
stores = split(",",var.streetmerchant_env["STORES"])
|
||||||
|
metrics = {
|
||||||
|
out_of_stock = [for store in local.stores : ["${var.app_name}-out-of-stock", store]]
|
||||||
|
error = [for store in local.stores : ["${var.app_name}-error", store]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_cloudwatch_log_metric_filter" "out_of_stock" {
|
||||||
|
for_each = toset(local.stores)
|
||||||
|
|
||||||
|
log_group_name = aws_cloudwatch_log_group.main.name
|
||||||
|
name = "${each.key}-out-of-stock"
|
||||||
|
|
||||||
|
pattern = "${each.key} \"OUT OF STOCK\""
|
||||||
|
metric_transformation {
|
||||||
|
name = each.key
|
||||||
|
namespace = "${var.app_name}-out-of-stock"
|
||||||
|
value = 1
|
||||||
|
default_value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_cloudwatch_log_metric_filter" "error" {
|
||||||
|
for_each = toset(local.stores)
|
||||||
|
|
||||||
|
log_group_name = aws_cloudwatch_log_group.main.name
|
||||||
|
name = "${each.key}-error"
|
||||||
|
|
||||||
|
pattern = "${each.key} \"ERROR\""
|
||||||
|
metric_transformation {
|
||||||
|
name = each.key
|
||||||
|
namespace = "${var.app_name}-error"
|
||||||
|
value = 1
|
||||||
|
default_value = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_cloudwatch_dashboard" "main" {
|
||||||
|
dashboard_name = "${var.app_name}-dashboard"
|
||||||
|
dashboard_body = templatefile("dashboard.json.template", {
|
||||||
|
out_of_stock = jsonencode(local.metrics.out_of_stock)
|
||||||
|
error = jsonencode(local.metrics.error)
|
||||||
|
region = var.region
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
resource "aws_vpc" "main" {
|
||||||
|
enable_dns_support = true
|
||||||
|
cidr_block = "10.0.0.0/16"
|
||||||
|
tags = {
|
||||||
|
app = "ps5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_internet_gateway" "main" {
|
||||||
|
vpc_id = aws_vpc.main.id
|
||||||
|
tags = {
|
||||||
|
app = "ps5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "aws-subnet" {
|
||||||
|
vpc_id = aws_vpc.main.id
|
||||||
|
cidr_block = aws_vpc.main.cidr_block
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
tags = {
|
||||||
|
app = "ps5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table" "main" {
|
||||||
|
vpc_id = aws_vpc.main.id
|
||||||
|
route {
|
||||||
|
cidr_block = "0.0.0.0/0"
|
||||||
|
gateway_id = aws_internet_gateway.main.id
|
||||||
|
}
|
||||||
|
tags = {
|
||||||
|
app = "ps5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_main_route_table_association" "main" {
|
||||||
|
route_table_id = aws_route_table.main.id
|
||||||
|
vpc_id = aws_vpc.main.id
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "${name}-task",
|
||||||
|
"image": "ghcr.io/jef/streetmerchant:latest",
|
||||||
|
"cpu": ${cpu},
|
||||||
|
"memory": ${memory},
|
||||||
|
"essential": true,
|
||||||
|
"environment": ${environment},
|
||||||
|
"logConfiguration": {
|
||||||
|
"logDriver": "awslogs",
|
||||||
|
"options": {
|
||||||
|
"awslogs-group": "${awslogs-group}",
|
||||||
|
"awslogs-region": "${region}",
|
||||||
|
"awslogs-stream-prefix": "ecs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
credential_profile = "ps5"
|
||||||
|
|
||||||
|
streetmerchant_env = {
|
||||||
|
"STORES" = "amazon-uk,game,argos,box,currys,johnlewis,shopto,smythstoys,very,amazon-it,amazon-nl"
|
||||||
|
"SHOW_ONLY_SERIES" = "sonyps5c,sonyps5de"
|
||||||
|
"SLACK_TOKEN" = "your slack api token"
|
||||||
|
"SLACK_CHANNEL" = "your slack channel name"
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
variable "credential_file" {
|
||||||
|
type = string
|
||||||
|
description = "your aws credentials file"
|
||||||
|
default = "~/.aws/credentials"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "credential_profile" {
|
||||||
|
type = string
|
||||||
|
description = "the section in ~/.aws/credentials with your desired aws_access_key_id and aws_secret_access_key values"
|
||||||
|
default = "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "region" {
|
||||||
|
type = string
|
||||||
|
description = "aws region"
|
||||||
|
default = "eu-west-2"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "app_name" {
|
||||||
|
type = string
|
||||||
|
default = "streetmerchant"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "memory" {
|
||||||
|
type = string
|
||||||
|
default = "2048"
|
||||||
|
description = "ecs task memory"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "cpu" {
|
||||||
|
type = number
|
||||||
|
default = 1024
|
||||||
|
description = "ecs task cpu"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "streetmerchant_env" {
|
||||||
|
type = map
|
||||||
|
description = "name/value pairs for .env values"
|
||||||
|
default = {}
|
||||||
|
}
|
||||||
@@ -1 +0,0 @@
|
|||||||
3.4.0
|
|
||||||
Reference in New Issue
Block a user