mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 12:17:37 +00:00
Compare commits
106 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bc2272e59a | |||
| 888b5225b8 | |||
| 0c59d1e232 | |||
| 15ec12b0a3 | |||
| f7b32e8ac5 | |||
| 9bf33eceda | |||
| 14cbd5a05b | |||
| ec0d9f50cb | |||
| 4616f60766 | |||
| 36e38068d8 | |||
| ca5553cb20 | |||
| 34a8fd475a | |||
| 0569629dc8 | |||
| 09f0236086 | |||
| e67d97fe93 | |||
| 75ee95b221 | |||
| 3c727f1c9a | |||
| 80e166c15d | |||
| 3b4fe78e95 | |||
| ac8785d1e9 | |||
| 06f3aafae6 | |||
| f2ae423fa8 | |||
| cbad0846af | |||
| a3a94c19d9 | |||
| 6fd023e81e | |||
| e836acf1e9 | |||
| 5bbdfa2abc | |||
| 1ed0593767 | |||
| cbc43304bf | |||
| feddac76d3 | |||
| 0e8774b1d0 | |||
| 0e5edee683 | |||
| 0b11238370 | |||
| 6de8c4a5ee | |||
| cf70f1ff4f | |||
| a0a961aa5b | |||
| 7d29ef80ba | |||
| e198e44613 | |||
| f7b753334f | |||
| 21e74cfe76 | |||
| ea456116da | |||
| a0a0ca8755 | |||
| c26bd8f06a | |||
| c5799fddc7 | |||
| af96c5f2e8 | |||
| 2fc018bbb2 | |||
| a72a35c755 | |||
| 202698f917 | |||
| d7f242780e | |||
| b2f5c1a3ed | |||
| 29478bff2d | |||
| beb50696fb | |||
| 490d44e1fd | |||
| 65df944973 | |||
| ce43654847 | |||
| e9a39c4092 | |||
| 4bccc6b407 | |||
| 37d62ebcd5 | |||
| af080f376d | |||
| 19eece18dc | |||
| 1774afc1c3 | |||
| 79a3f33150 | |||
| 796c2a52ac | |||
| 0b60d3cf9a | |||
| fb696bf85a | |||
| 0b8e0d498c | |||
| 8ecba2db96 | |||
| eb176d1735 | |||
| bea26450bf | |||
| 8c82705dd3 | |||
| feae978de9 | |||
| 5e6159b994 | |||
| 30a51a38be | |||
| de7036c7cc | |||
| a79ce6f406 | |||
| 0b4966e452 | |||
| be48520469 | |||
| d2efb91de4 | |||
| a519a79ee7 | |||
| 7db79345a0 | |||
| b28bf73157 | |||
| 11b6316371 | |||
| 10ce2db9ae | |||
| 364c6c25df | |||
| a8d9c033b6 | |||
| 7a441b4b65 | |||
| 09238da69c | |||
| 4d8700e856 | |||
| 1ee9d38b32 | |||
| db18157a49 | |||
| 3286d624a1 | |||
| f663579f3d | |||
| 20e8746748 | |||
| d0839beffe | |||
| 07b6b340f9 | |||
| a99eecb461 | |||
| f7f0b08e30 | |||
| efddd01aa9 | |||
| 0857b8a46e | |||
| 67605a6e28 | |||
| 80826ba0bd | |||
| 06214eb4a8 | |||
| a62bd2e587 | |||
| 4df57f578e | |||
| b4f34510d5 | |||
| 429effb544 |
@@ -17,9 +17,11 @@ HEADLESS=""
|
|||||||
IN_STOCK_WAIT_TIME=""
|
IN_STOCK_WAIT_TIME=""
|
||||||
LOG_LEVEL=""
|
LOG_LEVEL=""
|
||||||
LOW_BANDWIDTH=""
|
LOW_BANDWIDTH=""
|
||||||
|
MAX_PRICE_SERIES_3060TI=""
|
||||||
MAX_PRICE_SERIES_3070=""
|
MAX_PRICE_SERIES_3070=""
|
||||||
MAX_PRICE_SERIES_3080=""
|
MAX_PRICE_SERIES_3080=""
|
||||||
MAX_PRICE_SERIES_3090=""
|
MAX_PRICE_SERIES_3090=""
|
||||||
|
MAX_PRICE_SERIES_CORSAIR_SF=""
|
||||||
MAX_PRICE_SERIES_RX6800=""
|
MAX_PRICE_SERIES_RX6800=""
|
||||||
MAX_PRICE_SERIES_RX6800XT=""
|
MAX_PRICE_SERIES_RX6800XT=""
|
||||||
MAX_PRICE_SERIES_RX6900XT=""
|
MAX_PRICE_SERIES_RX6900XT=""
|
||||||
@@ -27,6 +29,9 @@ MAX_PRICE_SERIES_RYZEN5600=""
|
|||||||
MAX_PRICE_SERIES_RYZEN5800=""
|
MAX_PRICE_SERIES_RYZEN5800=""
|
||||||
MAX_PRICE_SERIES_RYZEN5900=""
|
MAX_PRICE_SERIES_RYZEN5900=""
|
||||||
MAX_PRICE_SERIES_RYZEN5950=""
|
MAX_PRICE_SERIES_RYZEN5950=""
|
||||||
|
MAX_PRICE_SERIES_SONYPS5C=""
|
||||||
|
MAX_PRICE_SERIES_SONYPS5DE=""
|
||||||
|
MAX_PRICE_SERIES_TEST=""
|
||||||
MICROCENTER_LOCATION=""
|
MICROCENTER_LOCATION=""
|
||||||
MQTT_BROKER_ADDRESS=""
|
MQTT_BROKER_ADDRESS=""
|
||||||
MQTT_BROKER_PORT=""
|
MQTT_BROKER_PORT=""
|
||||||
@@ -58,6 +63,7 @@ PHONE_CARRIER=""
|
|||||||
PHONE_NUMBER=""
|
PHONE_NUMBER=""
|
||||||
PLAY_SOUND=""
|
PLAY_SOUND=""
|
||||||
PROXY_ADDRESS=""
|
PROXY_ADDRESS=""
|
||||||
|
PROXY_PROTOCOL=""
|
||||||
PROXY_PORT=""
|
PROXY_PORT=""
|
||||||
PUSHBULLET=""
|
PUSHBULLET=""
|
||||||
PUSHOVER_TOKEN=""
|
PUSHOVER_TOKEN=""
|
||||||
|
|||||||
@@ -7,12 +7,35 @@ assignees: jef
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Description
|
<!--- Feel free to join our discord server (https://discord.gg/gbVY4vB9JF) for general support --->
|
||||||
|
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
|
||||||
|
|
||||||
<!-- Describe the bug here. -->
|
## Expected Behavior
|
||||||
<!-- Please be as detailed as possible. -->
|
|
||||||
<!-- Include OS, screenshots and console outputs. -->
|
|
||||||
|
|
||||||
### Possible solution
|
<!--- Tell us what should happen -->
|
||||||
|
|
||||||
<!-- Describe the possible solution here. -->
|
## Current Behavior
|
||||||
|
|
||||||
|
<!--- Tell us what happens instead of the expected behavior -->
|
||||||
|
|
||||||
|
## Steps to Reproduce
|
||||||
|
|
||||||
|
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
||||||
|
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
4.
|
||||||
|
|
||||||
|
## Environment
|
||||||
|
|
||||||
|
**OS:**
|
||||||
|
**.env file:**
|
||||||
|
|
||||||
|
```dotenv
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Logs
|
||||||
|
|
||||||
|
<!--- Provide a brief log -->
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ assignees: jef
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Description
|
## Description
|
||||||
|
|
||||||
<!-- Describe the feature here. -->
|
<!-- Describe the feature here -->
|
||||||
|
|
||||||
### Possible solution
|
## Possible solution
|
||||||
|
|
||||||
<!-- Describe the possible solution here. -->
|
<!-- Describe the possible solution here -->
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ assignees: jef
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Description
|
## Description
|
||||||
|
|
||||||
<!-- Describe the feature here. -->
|
<!-- Describe the question here -->
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: GoogleCloudPlatform/release-please-action@v2.6.0
|
- uses: GoogleCloudPlatform/release-please-action@v2.10
|
||||||
id: release
|
id: release
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -27,12 +27,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: dorny/paths-filter@v2.5.3
|
- uses: dorny/paths-filter@v2.6.0
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
docker:
|
build:
|
||||||
- 'Dockerfile'
|
- 'Dockerfile'
|
||||||
|
- 'package*.json'
|
||||||
- name: Build image
|
- name: Build image
|
||||||
if: steps.filter.outputs.docker == 'true'
|
if: steps.filter.outputs.build == 'true'
|
||||||
run: docker build .
|
run: docker build .
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ jobs:
|
|||||||
main:
|
main:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: amannn/action-semantic-pull-request@v2.1.0
|
- uses: amannn/action-semantic-pull-request@v2.1.1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
name: 'Close stale issues'
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v3
|
||||||
|
with:
|
||||||
|
close-issue-message: ${{ env.CLOSE_MESSAGE }}
|
||||||
|
close-pr-message: ${{ env.CLOSE_MESSAGE }}
|
||||||
|
days-before-stale: 30
|
||||||
|
days-before-close: 5
|
||||||
|
exempt-issue-labels: ${{ env.EXEMPT_LABEL }}
|
||||||
|
exempt-pr-labels: ${{ env.EXEMPT_LABEL }}
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
stale-issue-label: ${{ env.STALE_LABEL }}
|
||||||
|
stale-pr-label: ${{ env.STALE_LABEL }}
|
||||||
|
stale-issue-message: ${{ env.STALE_MESSAGE }}
|
||||||
|
stale-pr-message: ${{ env.STALE_MESSAGE }}
|
||||||
|
env:
|
||||||
|
CLOSE_MESSAGE: 'This issue has been closed because it is stale. Reopen if necessary.'
|
||||||
|
EXEMPT_LABEL: 'status: needs discussion'
|
||||||
|
STALE_LABEL: 'status: stale'
|
||||||
|
STALE_MESSAGE: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days'
|
||||||
@@ -1,5 +1,55 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [3.2.0](https://www.github.com/jef/streetmerchant/compare/v3.1.0...v3.2.0) (2020-12-06)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **bestbuy:** add 3060 series ([#1074](https://www.github.com/jef/streetmerchant/issues/1074)) ([e9a39c4](https://www.github.com/jef/streetmerchant/commit/e9a39c40925736a2126f6138c369710989904d1d))
|
||||||
|
* **bestbuy-ca:** add 3060ti cards ([29478bf](https://www.github.com/jef/streetmerchant/commit/29478bff2d27d780cc6142526f3970b4a87290bc))
|
||||||
|
* **notification:** add price to links ([#1209](https://www.github.com/jef/streetmerchant/issues/1209)) ([15ec12b](https://www.github.com/jef/streetmerchant/commit/15ec12b0a3a95716243bfd06f6d41959bff7c36e)), closes [#1188](https://www.github.com/jef/streetmerchant/issues/1188) [#673](https://www.github.com/jef/streetmerchant/issues/673) [#1187](https://www.github.com/jef/streetmerchant/issues/1187)
|
||||||
|
* **proxy:** socks5 support ([#933](https://www.github.com/jef/streetmerchant/issues/933)) ([364c6c2](https://www.github.com/jef/streetmerchant/commit/364c6c25dfe9dcbeb29cb20cb46e9e8dcc2fe86b))
|
||||||
|
* **store:** add 3060ti to newegg-ca, canadacomputer, memoryexpress ([#1172](https://www.github.com/jef/streetmerchant/issues/1172)) ([09f0236](https://www.github.com/jef/streetmerchant/commit/09f0236086c59b25ebe611041bf063d536e3cc3d))
|
||||||
|
* **store:** add amazon-de-warehouse ([#1102](https://www.github.com/jef/streetmerchant/issues/1102)) ([6de8c4a](https://www.github.com/jef/streetmerchant/commit/6de8c4a5eec8d66fb47d87e309866ba18f3e28c7))
|
||||||
|
* **store:** add antonline store ([#1042](https://www.github.com/jef/streetmerchant/issues/1042)) ([19eece1](https://www.github.com/jef/streetmerchant/commit/19eece18dccd4489e1e441b92061fc3b5743e4cd))
|
||||||
|
* **store:** add argos with ps5 ([b2f5c1a](https://www.github.com/jef/streetmerchant/commit/b2f5c1a3ed93cfd56e575ec634d235565a17b6bc))
|
||||||
|
* **store:** add awd(uk), add 3060ti link builders ([#1114](https://www.github.com/jef/streetmerchant/issues/1114)) ([36e3806](https://www.github.com/jef/streetmerchant/commit/36e38068d8cd284c741d4906d5ba5fe8cff85d24))
|
||||||
|
* **store:** add custom labels for links ([#1183](https://www.github.com/jef/streetmerchant/issues/1183)) ([f7b32e8](https://www.github.com/jef/streetmerchant/commit/f7b32e8ac56c29207c6b30b9168c34c021a5e227)), closes [#1132](https://www.github.com/jef/streetmerchant/issues/1132) [#1163](https://www.github.com/jef/streetmerchant/issues/1163)
|
||||||
|
* **store:** add el corte ingles ([#1107](https://www.github.com/jef/streetmerchant/issues/1107)) ([75ee95b](https://www.github.com/jef/streetmerchant/commit/75ee95b2217fb4bf667869011a009210ff8c22e7))
|
||||||
|
* **store:** add ePrice store ([#1016](https://www.github.com/jef/streetmerchant/issues/1016)) ([30a51a3](https://www.github.com/jef/streetmerchant/commit/30a51a38bee1c399276466e5db457bbe702edd5c))
|
||||||
|
* **store:** add Euronics DE ([#1045](https://www.github.com/jef/streetmerchant/issues/1045)) ([1774afc](https://www.github.com/jef/streetmerchant/commit/1774afc1c3010bd0b183907baa4f3486dc9e8c23))
|
||||||
|
* **store:** add expert ([#1105](https://www.github.com/jef/streetmerchant/issues/1105)) ([202698f](https://www.github.com/jef/streetmerchant/commit/202698f9179b081bd4214979f054e5ff7c805621))
|
||||||
|
* **store:** add Gamestop DE ([#1046](https://www.github.com/jef/streetmerchant/issues/1046)) ([79a3f33](https://www.github.com/jef/streetmerchant/commit/79a3f33150188c7ff0228a38f276ae1fe88b9714))
|
||||||
|
* **store:** add Medimax ([#1057](https://www.github.com/jef/streetmerchant/issues/1057)) ([7d29ef8](https://www.github.com/jef/streetmerchant/commit/7d29ef80ba1ae6682b486ac0b65a516b15a19f93))
|
||||||
|
* **store:** add Otto ([#1096](https://www.github.com/jef/streetmerchant/issues/1096)) ([af96c5f](https://www.github.com/jef/streetmerchant/commit/af96c5f2e808af7496f3c3299e4cf173105de48b))
|
||||||
|
* **store:** add smythstoys ([1ed0593](https://www.github.com/jef/streetmerchant/commit/1ed05937676c3b6961fcbbb1f3aa80afc3411ac3))
|
||||||
|
* **store:** add some italian stores with ps5 links ([#976](https://www.github.com/jef/streetmerchant/issues/976)) ([f663579](https://www.github.com/jef/streetmerchant/commit/f663579f3d744a5270878975407ad30b31ee0c0a))
|
||||||
|
* **store:** add spielegrotte ([#1056](https://www.github.com/jef/streetmerchant/issues/1056)) ([cf70f1f](https://www.github.com/jef/streetmerchant/commit/cf70f1ff4f942922bfa52adcd5b905e0b39c812a))
|
||||||
|
* **store:** add wipoid store ([#1018](https://www.github.com/jef/streetmerchant/issues/1018)) ([feae978](https://www.github.com/jef/streetmerchant/commit/feae978de9e90b96f542d2e53807144d82e380a4))
|
||||||
|
* **store:** update the italian store links ([#1002](https://www.github.com/jef/streetmerchant/issues/1002)) ([de7036c](https://www.github.com/jef/streetmerchant/commit/de7036c7cc6dd7e436ad1d31b988d9d56ad31f76))
|
||||||
|
* **topachat:** add `maxPrice` ([d7f2427](https://www.github.com/jef/streetmerchant/commit/d7f242780ef1a0a06d5b65ccfc0999e36a87d49d)), closes [#1097](https://www.github.com/jef/streetmerchant/issues/1097)
|
||||||
|
* add proxy rotation (settable per store) ([#1026](https://www.github.com/jef/streetmerchant/issues/1026)) ([490d44e](https://www.github.com/jef/streetmerchant/commit/490d44e1fdfdf91db7344dd3050ba8fd8d069631))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **amazon:** price and cart buttons ([6fd023e](https://www.github.com/jef/streetmerchant/commit/6fd023e81e0c54e8fb53b45817b63cb49b8a37ce)), closes [#1125](https://www.github.com/jef/streetmerchant/issues/1125)
|
||||||
|
* **amazon-de:** `inStock` selector ([14cbd5a](https://www.github.com/jef/streetmerchant/commit/14cbd5a05b6f9c3a3ebbc5978156ff2b090efd32)), closes [#1178](https://www.github.com/jef/streetmerchant/issues/1178)
|
||||||
|
* **amazon-de:** remove xbox cart links ([cbc4330](https://www.github.com/jef/streetmerchant/commit/cbc43304bf49863000f422fbff4ed200ea610914)), closes [#1095](https://www.github.com/jef/streetmerchant/issues/1095)
|
||||||
|
* **bestbuy-ca:** model always indicating in stock ([#1145](https://www.github.com/jef/streetmerchant/issues/1145)) ([06f3aaf](https://www.github.com/jef/streetmerchant/commit/06f3aafae6ec460c6227a92e6105639be71fc9b3))
|
||||||
|
* **bestbuy-ca:** replace old evga xc3 ultra ([#1058](https://www.github.com/jef/streetmerchant/issues/1058)) ([65df944](https://www.github.com/jef/streetmerchant/commit/65df9449730bce2acb82f5edac25a91bdddd94db))
|
||||||
|
* **canadacomputers:** add `inStock` selector, use english links ([#889](https://www.github.com/jef/streetmerchant/issues/889)) ([06214eb](https://www.github.com/jef/streetmerchant/commit/06214eb4a8a5c2d8a180e8dcf846f828d5cce2ed))
|
||||||
|
* **memoryexpress:** add backorder to `outOfStock` selector ([#890](https://www.github.com/jef/streetmerchant/issues/890)) ([67605a6](https://www.github.com/jef/streetmerchant/commit/67605a6e280af35f210c536bc03571a84ea1a7e9))
|
||||||
|
* **newegg:** maxPrice selector using used price ([feddac7](https://www.github.com/jef/streetmerchant/commit/feddac76d3824e947b0a96524cd940e6b45ffe70)), closes [#1052](https://www.github.com/jef/streetmerchant/issues/1052)
|
||||||
|
* **newegg:** typo in 5800x url([#903](https://www.github.com/jef/streetmerchant/issues/903)) ([a99eecb](https://www.github.com/jef/streetmerchant/commit/a99eecb4613bc136e65afe4e5e8788316beae39e))
|
||||||
|
* **scan:** links builder ([#1161](https://www.github.com/jef/streetmerchant/issues/1161)) ([ca5553c](https://www.github.com/jef/streetmerchant/commit/ca5553cb2044c00857412a2af009e5e7f2c1aabf))
|
||||||
|
* **smythstoys:** add out of stock label ([5bbdfa2](https://www.github.com/jef/streetmerchant/commit/5bbdfa2abc23c2e1fb1c606227754a1701cab194))
|
||||||
|
* **store:** add backoffStatusCodes and new captcha container ([#1110](https://www.github.com/jef/streetmerchant/issues/1110)) ([0b11238](https://www.github.com/jef/streetmerchant/commit/0b11238370040e9cd31e793e9a782ad384c22abf))
|
||||||
|
* **store:** removes unnecessary newegg links from bestbuy ([#1126](https://www.github.com/jef/streetmerchant/issues/1126)) ([f2ae423](https://www.github.com/jef/streetmerchant/commit/f2ae423fa83d1671a98b9cf3733e587d33727a59)), closes [#1119](https://www.github.com/jef/streetmerchant/issues/1119)
|
||||||
|
* **store:** update euroFormat for expert and otto ([#1108](https://www.github.com/jef/streetmerchant/issues/1108)) ([e198e44](https://www.github.com/jef/streetmerchant/commit/e198e44613cda27c0e67dc7e42ca514e66e9cf48))
|
||||||
|
* **walmart:** instock container and add test:series ([21e74cf](https://www.github.com/jef/streetmerchant/commit/21e74cfe76a5ccf82247315c9951a25e44bb1ce5)), closes [#1106](https://www.github.com/jef/streetmerchant/issues/1106)
|
||||||
|
* related products being picked up on scan ([#954](https://www.github.com/jef/streetmerchant/issues/954)) ([db18157](https://www.github.com/jef/streetmerchant/commit/db18157a490b9c9672c32de3372bff0b472a48f3))
|
||||||
|
|
||||||
## [3.1.0](https://www.github.com/jef/streetmerchant/compare/v3.0.0...v3.1.0) (2020-11-22)
|
## [3.1.0](https://www.github.com/jef/streetmerchant/compare/v3.0.0...v3.1.0) (2020-11-22)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
FROM node:14.15.0-alpine3.12 AS builder
|
FROM node:14.15.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"
|
||||||
|
|
||||||
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ getting `streetmerchant` running!
|
|||||||
- [git](https://git-scm.com/)
|
- [git](https://git-scm.com/)
|
||||||
- Clone this project `git clone https://github.com/jef/streetmerchant.git`
|
- Clone this project `git clone https://github.com/jef/streetmerchant.git`
|
||||||
- To checkout a particular ref, use `git checkout <ref name>` after cloning
|
- To checkout a particular ref, use `git checkout <ref name>` after cloning
|
||||||
|
- Navigate to this project by entering `cd streetmerchant`
|
||||||
- Run `npm install`
|
- Run `npm install`
|
||||||
- Copy `.env-example` to a new file `.env` and edit the `.env` file to your liking using
|
- Copy `.env-example` to a new file `.env` and edit the `.env` file to your liking using
|
||||||
your [favorite text editor](https://code.visualstudio.com/)
|
your [favorite text editor](https://code.visualstudio.com/)
|
||||||
@@ -98,6 +99,7 @@ environment variables are **optional**._
|
|||||||
| `PAGE_SLEEP_MIN` | Minimum sleep time between queries of the same product page | In milliseconds, default: `5000` |
|
| `PAGE_SLEEP_MIN` | Minimum sleep time between queries of the same product page | In milliseconds, default: `5000` |
|
||||||
| `PAGE_SLEEP_MAX` | Maximum sleep time between queries of the same product page | In milliseconds, default: `10000` |
|
| `PAGE_SLEEP_MAX` | Maximum sleep time between queries of the same product page | In milliseconds, default: `10000` |
|
||||||
| `PAGE_TIMEOUT` | Navigation Timeout in milliseconds | `0` for infinite, default: `30000` |
|
| `PAGE_TIMEOUT` | Navigation Timeout in milliseconds | `0` for infinite, default: `30000` |
|
||||||
|
| `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` |
|
||||||
| `SCREENSHOT` | Capture screenshot of page if a card is found | Default: `true` |
|
| `SCREENSHOT` | Capture screenshot of page if a card is found | Default: `true` |
|
||||||
@@ -112,14 +114,19 @@ environment variables are **optional**._
|
|||||||
|
|
||||||
| Environment variable | Description | Notes |
|
| Environment variable | Description | Notes |
|
||||||
|:---:|---|---|
|
|:---:|---|---|
|
||||||
| `COUNTRY` | [Supported country](#supported-countries) you want to be scraped | Currently only used by Nvidia, default: `usa` |
|
| `COUNTRY` | [Supported country](#supported-countries) you want to be scraped | Only used with `nvidia-api`, default: `usa` |
|
||||||
|
| `MAX_PRICE_SERIES_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_3080` | Maximum price allowed for a match, applies 3080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_3080` | Maximum price allowed for a match, applies 3080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_3090` | Maximum price allowed for a match, applies 3090 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_3090` | Maximum price allowed for a match, applies 3090 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
|
||||||
|
| `MAX_PRICE_SERIES_CORSAIR_SF` | Maximum price allowed for a match, applies to Corsair PSUs | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PSUs above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_RYZEN5600` | Maximum price allowed for a match, applies AMD 5600 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_RYZEN5600` | Maximum price allowed for a match, applies AMD 5600 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_RYZEN5800` | Maximum price allowed for a match, applies AMD 5800 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_RYZEN5800` | Maximum price allowed for a match, applies AMD 5800 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_RYZEN5900` | Maximum price allowed for a match, applies AMD 5900 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_RYZEN5900` | Maximum price allowed for a match, applies AMD 5900 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
||||||
| `MAX_PRICE_SERIES_RYZEN5950` | Maximum price allowed for a match, applies AMD 5950 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
| `MAX_PRICE_SERIES_RYZEN5950` | Maximum price allowed for a match, applies AMD 5950 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
|
||||||
|
| `MAX_PRICE_SERIES_SONYPS5C` | Maximum price allowed for a match, applies PS5 console | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PS5 above `1234` will be skipped. |
|
||||||
|
| `MAX_PRICE_SERIES_SONYPS5DE` | Maximum price allowed for a match, applies PS5 digital edition | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PS5 above `1234` will be skipped. |
|
||||||
|
| `MAX_PRICE_SERIES_TEST` | Maximum price allowed for a match, applies `test:series` | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PS5 above `1234` will be skipped. |
|
||||||
| `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_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` |
|
| `NVIDIA_SESSION_TTL` | The time in milliseconds to keep the cart active while using `nvidia-api` | Default: `60000` |
|
||||||
@@ -141,12 +148,18 @@ environment variables are **optional**._
|
|||||||
| Amazon | `amazon`|
|
| Amazon | `amazon`|
|
||||||
| Amazon (CA) | `amazon-ca`|
|
| Amazon (CA) | `amazon-ca`|
|
||||||
| Amazon (DE) | `amazon-de`|
|
| Amazon (DE) | `amazon-de`|
|
||||||
|
| Amazon (DE) Warehouse | `amazon-de-warehouse`|
|
||||||
| Amazon (ES) | `amazon-es`|
|
| Amazon (ES) | `amazon-es`|
|
||||||
| Amazon (FR) | `amazon-fr`|
|
| Amazon (FR) | `amazon-fr`|
|
||||||
|
| Amazon (IT) | `amazon-it`|
|
||||||
| Amazon (NL) | `amazon-nl`|
|
| Amazon (NL) | `amazon-nl`|
|
||||||
| Amazon (UK) | `amazon-uk`|
|
| Amazon (UK) | `amazon-uk`|
|
||||||
| AMD | `amd`|
|
| AMD | `amd`|
|
||||||
|
| AMD (CA) | `amd-ca`|
|
||||||
| AMD (DE) | `amd-de`|
|
| AMD (DE) | `amd-de`|
|
||||||
|
| AMD (IT) | `amd-it`|
|
||||||
|
| AntOnline | `antonline`|
|
||||||
|
| Argos (UK) | `argos`|
|
||||||
| Aria PC (UK) | `aria`|
|
| Aria PC (UK) | `aria`|
|
||||||
| ARLT (DE) | `arlt`|
|
| ARLT (DE) | `arlt`|
|
||||||
| ASUS | `asus` |
|
| ASUS | `asus` |
|
||||||
@@ -159,19 +172,28 @@ environment variables are **optional**._
|
|||||||
| CanadaComputers (CA) | `canadacomputers` |
|
| CanadaComputers (CA) | `canadacomputers` |
|
||||||
| Caseking (DE) | `caseking`|
|
| Caseking (DE) | `caseking`|
|
||||||
| CCL (UK) | `ccl`|
|
| CCL (UK) | `ccl`|
|
||||||
|
| Comet (IT) | `comet`|
|
||||||
| Computeruniverse (DE) | `computeruniverse` |
|
| Computeruniverse (DE) | `computeruniverse` |
|
||||||
| Coolblue (NL) | `coolblue`|
|
| Coolblue (NL) | `coolblue`|
|
||||||
| Coolmod (ES) | `coolmod`|
|
| Coolmod (ES) | `coolmod`|
|
||||||
|
| Corsair | `corsair`|
|
||||||
| Currys (UK) | `currys`|
|
| Currys (UK) | `currys`|
|
||||||
| Cyberport (DE) | `cyberport` |
|
| Cyberport (DE) | `cyberport` |
|
||||||
| eBuyer (UK) | `ebuyer`|
|
| eBuyer (UK) | `ebuyer`|
|
||||||
|
| El Corte Inglés | `elcorteingles`|
|
||||||
|
| ePrice (IT) | `eprice`|
|
||||||
|
| Euronics (IT) | `euronics`|
|
||||||
|
| Euronics (DE) | `euronics-de`|
|
||||||
| EVGA | `evga`|
|
| EVGA | `evga`|
|
||||||
| EVGA (EU) | `evga-eu`|
|
| EVGA (EU) | `evga-eu`|
|
||||||
|
| Expert | `expert`|
|
||||||
| Galaxus (DE) | `galaxus`|
|
| Galaxus (DE) | `galaxus`|
|
||||||
| Game (UK) | `game`|
|
| Game (UK) | `game`|
|
||||||
| Gamestop | `gamestop`|
|
| Gamestop | `gamestop`|
|
||||||
|
| Gamestop (DE) | `gamestop-de`|
|
||||||
| Kabum (BR) | `kabum`|
|
| Kabum (BR) | `kabum`|
|
||||||
| Mediamarkt (DE) | `mediamarkt`|
|
| Mediamarkt (DE) | `mediamarkt`|
|
||||||
|
| Medimax | `medimax`|
|
||||||
| MemoryExpress (CA) | `memoryexpress`|
|
| MemoryExpress (CA) | `memoryexpress`|
|
||||||
| Micro Center | `microcenter`|
|
| Micro Center | `microcenter`|
|
||||||
| Mindfactory (DE) | `mindfactory` |
|
| Mindfactory (DE) | `mindfactory` |
|
||||||
@@ -182,6 +204,7 @@ environment variables are **optional**._
|
|||||||
| Nvidia | `nvidia`|
|
| Nvidia | `nvidia`|
|
||||||
| Nvidia (API) | `nvidia-api`|
|
| Nvidia (API) | `nvidia-api`|
|
||||||
| Office Depot | `officedepot`|
|
| Office Depot | `officedepot`|
|
||||||
|
| Otto | `otto`|
|
||||||
| Overclockers (UK) | `overclockers`|
|
| Overclockers (UK) | `overclockers`|
|
||||||
| PCComponentes (ES) | `pccomponentes`|
|
| PCComponentes (ES) | `pccomponentes`|
|
||||||
| PlayStation | `playstation`|
|
| PlayStation | `playstation`|
|
||||||
@@ -190,9 +213,13 @@ environment variables are **optional**._
|
|||||||
| Proshop (DK) | `proshop-dk`|
|
| Proshop (DK) | `proshop-dk`|
|
||||||
| Saturn (DE) | `saturn`|
|
| Saturn (DE) | `saturn`|
|
||||||
| Scan (UK) | `scan`|
|
| Scan (UK) | `scan`|
|
||||||
|
| Smyths Toys (UK) | `smythstoys`|
|
||||||
|
| Spielegrotte | `spielegrotte`|
|
||||||
| Target | `target`|
|
| Target | `target`|
|
||||||
|
| Unieuro (IT) | `unieuro`|
|
||||||
| Very (UK) | `very`|
|
| Very (UK) | `very`|
|
||||||
| Walmart | `walmart`|
|
| Walmart | `walmart`|
|
||||||
|
| Wipoid | `wipoid`|
|
||||||
| Zotac | `zotac`|
|
| Zotac | `zotac`|
|
||||||
| TopAchat | `topachat`|
|
| TopAchat | `topachat`|
|
||||||
|
|
||||||
@@ -242,23 +269,50 @@ environment variables are **optional**._
|
|||||||
|
|
||||||
| Brand | Model |
|
| Brand | Model |
|
||||||
|:---:|---|
|
|:---:|---|
|
||||||
| `amd` | `5600x`, `5800x`, `5900x`, `5950x` |
|
| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` |
|
||||||
| `asus` | `dual`, `dual oc`, `strix`, `strix oc`, `tuf`, `tuf oc` |
|
| `asus` | `dual`, `dual oc`, `strix`, `strix oc`, `tuf`, `tuf oc` |
|
||||||
|
| `corsair` | `750 platinum`, `600 platinum` |
|
||||||
| `evga` | `ftw3`, `ftw3 ultra`, `xc3`, `xc3 black`, `xc3 ultra` |
|
| `evga` | `ftw3`, `ftw3 ultra`, `xc3`, `xc3 black`, `xc3 ultra` |
|
||||||
| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
|
| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
|
||||||
| `gigabyte` | `aorus master`, `aorus xtreme`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `turbo`, `vision`, `vision oc` |
|
| `gigabyte` | `aorus master`, `aorus xtreme`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `turbo`, `vision`, `vision oc` |
|
||||||
| `inno3d` | `gaming x3`, `ichill x3`, `ichill x4`, `twin x2 oc` |
|
| `inno3d` | `gaming x3`, `ichill x3`, `ichill x4`, `twin x2 oc` |
|
||||||
| `kfa2` | `sg`, `sg oc` |
|
| `kfa2` | `sg`, `sg oc` |
|
||||||
| `microsoft` | `xboxsx`, `xboxss` |
|
| `microsoft` | `xbox series x`, `xbox series s` |
|
||||||
| `msi` | `gaming x trio`, `ventus 2x oc`, `ventus 3x`, `ventus 3x oc` |
|
| `msi` | `gaming x trio`, `ventus 2x oc`, `ventus 3x`, `ventus 3x oc` |
|
||||||
| `nvidia` | `founders edition` |
|
| `nvidia` | `founders edition` |
|
||||||
| `palit` | `gamerock oc`, `gaming pro`, `gaming pro oc` |
|
| `palit` | `gamerock oc`, `gaming pro`, `gaming pro oc` |
|
||||||
| `pny` | `dual fan`, `xlr8 revel`, `xlr8 uprising` |
|
| `pny` | `dual fan`, `xlr8 revel`, `xlr8 uprising` |
|
||||||
| `sony` | `ps5 console`, `ps5 digital` |
|
| `sony` | `ps5 console`, `ps5 digital` |
|
||||||
|
| `xfx` | `merc`, `amd reference` |
|
||||||
| `zotac` | `amp holo`, `amp extreme holo`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc` |
|
| `zotac` | `amp holo`, `amp extreme holo`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc` |
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Supported series</summary>
|
||||||
|
|
||||||
|
> :point_right: Used with the `SHOW_ONLY_SERIES` variable.
|
||||||
|
|
||||||
|
| Series | Environment variable |
|
||||||
|
|:---:|:---:|
|
||||||
|
| `AMD Ryzen 5600x` | `ryzen5600` |
|
||||||
|
| `AMD Ryzen 5800x` | `ryzen5800` |
|
||||||
|
| `AMD Ryzen 5900x` | `ryzen5900` |
|
||||||
|
| `AMD Ryzen 5950x` | `ryzen5950` |
|
||||||
|
| `AMD RX 6800` | `rx6800` |
|
||||||
|
| `AMD RX 6800XT` | `rx6800xt` |
|
||||||
|
| `AMD RX 6900XT` | `rx6900xt` |
|
||||||
|
| `Nvidia RTX 3060 Ti` | `3060ti` |
|
||||||
|
| `Nvidia RTX 3070` | `3070` |
|
||||||
|
| `Nvidia RTX 3080` | `3080` |
|
||||||
|
| `Nvidia RTX 3090` | `3090` |
|
||||||
|
| `Corsair SFX PSU` | `sf` |
|
||||||
|
| `Sony PS5` | `sonyps5c` |
|
||||||
|
| `Sony PS5 Digital Edition` | `sonyps5de` |
|
||||||
|
| `Xbox Series S` | `xboxss` |
|
||||||
|
| `Xbox Series X` | `xboxsx` |
|
||||||
|
|
||||||
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Supported countries (used with nvidia and nvidia-api)</summary>
|
<summary>Supported countries (used with nvidia and nvidia-api)</summary>
|
||||||
|
|
||||||
@@ -487,25 +541,19 @@ it. Very straight forward. Otherwise, Google more information related to your sy
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
**Q: Will I get banned from of the stores?** Perhaps, but getting a card is a nice outcome.
|
**Q: Will I get banned from of the stores?** Perhaps, but it's the risk we're willing to take! To help minimize this, take a look at [#1050](https://github.com/jef/streetmerchant/issues/1050).
|
||||||
|
|
||||||
**Q: I got a problem and need help!** File an [issue](https://github.com/jef/streetmerchant/issues/new/choose). I'll do
|
**Q: I got a problem and need help!** File an [issue](https://github.com/jef/streetmerchant/issues/new/choose). I'll do my best to get to you. I work a full time job and this is only a hobby of mine.
|
||||||
my best to get to you. I work a full time job and this is only a hobby of mine.
|
|
||||||
|
|
||||||
**Q: How do I get the latest code?** Take look at
|
**Q: How do I get the latest code?** Take look at this [wiki page](https://github.com/jef/streetmerchant/wiki/Troubleshoot:-General:-Getting-the-latest-code).
|
||||||
this [wiki page](https://github.com/jef/streetmerchant/wiki/Troubleshoot:-General:-Getting-the-latest-code).
|
|
||||||
|
|
||||||
**Q: Why don't my notifications work?** There is probably
|
**Q: Why don't my notifications work?** There is probably an [issue](https://github.com/jef/streetmerchant/issues?q=is%3Aissue+sort%3Aupdated-desc+sound+is%3Aclosed) that has [already](https://github.com/jef/streetmerchant/issues/182) [been](https://github.com/jef/streetmerchant/issues/116) [resolved](https://github.com/jef/streetmerchant/issues/155).
|
||||||
an [issue](https://github.com/jef/streetmerchant/issues?q=is%3Aissue+sort%3Aupdated-desc+sound+is%3Aclosed) that
|
|
||||||
has [already](https://github.com/jef/streetmerchant/issues/182) [been](https://github.com/jef/streetmerchant/issues/116) [resolved](https://github.com/jef/streetmerchant/issues/155)
|
|
||||||
.
|
|
||||||
|
|
||||||
**Q: I'd love to contribute, how do I do that?** Make
|
**Q: I'd love to contribute, how do I do that?** Make a [pull request](https://github.com/jef/streetmerchant/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc)! All contributions are welcome.
|
||||||
a [pull request](https://github.com/jef/streetmerchant/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc)! All contributions
|
|
||||||
are welcome.
|
|
||||||
|
|
||||||
**Q: Why do I have to download all this stuff just to get this bot working?** Well, I would rather you didn't either.
|
**Q: How do I add a store?** Take a look at [this page](https://github.com/jef/streetmerchant/wiki/Help:-Configuration:-Adding-a-store) on the wiki.
|
||||||
See [#11](https://github.com/jef/streetmerchant/issues/11).
|
|
||||||
|
**Q: Why do I have to download all this stuff just to get this bot working?** Well, I would rather you didn't either. See [#11](https://github.com/jef/streetmerchant/issues/11).
|
||||||
|
|
||||||
**Q: Why does Amazon show an error page (with a picture of an animal) instead of adding to cart or going to the detail page?** This is intended; see [#733](https://github.com/jef/streetmerchant/issues/733). This indicates that the item is out of stock and only available from a third-party seller (often at a markup).
|
**Q: Why does Amazon show an error page (with a picture of an animal) instead of adding to cart or going to the detail page?** This is intended; see [#733](https://github.com/jef/streetmerchant/issues/733). This indicates that the item is out of stock and only available from a third-party seller (often at a markup).
|
||||||
|
|
||||||
|
|||||||
Generated
+500
-199
File diff suppressed because it is too large
Load Diff
+14
-12
@@ -26,13 +26,13 @@
|
|||||||
"homepage": "https://github.com/jef/streetmerchant#readme",
|
"homepage": "https://github.com/jef/streetmerchant#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jef/pushbullet": "^2.4.3",
|
"@jef/pushbullet": "^2.4.3",
|
||||||
"@slack/web-api": "^5.13.0",
|
"@slack/web-api": "^5.14.0",
|
||||||
"chalk": "^4.1.0",
|
"chalk": "^4.1.0",
|
||||||
"cheerio": "^1.0.0-rc.3",
|
"cheerio": "^1.0.0-rc.3",
|
||||||
"discord-webhook-node": "^1.1.8",
|
"discord.js": "^12.5.1",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"messaging-api-telegram": "^1.0.1",
|
"messaging-api-telegram": "^1.0.1",
|
||||||
"mqtt": "^4.2.5",
|
"mqtt": "^4.2.6",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
"node-hue-api": "^4.0.9",
|
"node-hue-api": "^4.0.9",
|
||||||
"node-notifier": "^8.0.0",
|
"node-notifier": "^8.0.0",
|
||||||
@@ -45,33 +45,35 @@
|
|||||||
"puppeteer-extra-plugin-adblocker": "^2.11.9",
|
"puppeteer-extra-plugin-adblocker": "^2.11.9",
|
||||||
"puppeteer-extra-plugin-block-resources": "^2.2.7",
|
"puppeteer-extra-plugin-block-resources": "^2.2.7",
|
||||||
"puppeteer-extra-plugin-stealth": "^2.6.5",
|
"puppeteer-extra-plugin-stealth": "^2.6.5",
|
||||||
|
"puppeteer-page-proxy": "^1.2.8",
|
||||||
"pushover-notifications": "^1.2.2",
|
"pushover-notifications": "^1.2.2",
|
||||||
"twilio": "^3.52.0",
|
"twilio": "^3.53.0",
|
||||||
"twitch": "^4.3.0",
|
"twitch": "^4.3.3",
|
||||||
"twitch-auth": "^4.3.0",
|
"twitch-auth": "^4.3.3",
|
||||||
"twitch-chat-client": "^4.3.0",
|
"twitch-chat-client": "^4.3.3",
|
||||||
"twitter": "^1.7.1",
|
"twitter": "^1.7.1",
|
||||||
"winston": "^3.3.3"
|
"winston": "^3.3.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async": "^3.2.4",
|
"@types/async": "^3.2.5",
|
||||||
"@types/cheerio": "^0.22.22",
|
"@types/cheerio": "^0.22.22",
|
||||||
"@types/node": "^14.14.9",
|
"@types/node": "^14.14.10",
|
||||||
"@types/node-fetch": "^2.5.7",
|
"@types/node-fetch": "^2.5.7",
|
||||||
"@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.0",
|
"@types/puppeteer": "^5.4.1",
|
||||||
"@types/twitter": "^1.7.0",
|
"@types/twitter": "^1.7.0",
|
||||||
"husky": "^4.3.0",
|
"husky": "^4.3.0",
|
||||||
"nodemon": "^2.0.6",
|
"nodemon": "^2.0.6",
|
||||||
"ts-node": "^9.0.0",
|
"ts-node": "^9.1.0",
|
||||||
"typescript": "^4.1.2",
|
"typescript": "^4.1.2",
|
||||||
"webpack": "^5.6.0",
|
"webpack": "^5.10.0",
|
||||||
"xo": "^0.35.0"
|
"xo": "^0.35.0"
|
||||||
},
|
},
|
||||||
"xo": {
|
"xo": {
|
||||||
"prettier": true,
|
"prettier": true,
|
||||||
"rules": {
|
"rules": {
|
||||||
|
"no-warning-comments": "off",
|
||||||
"sort-imports": "error",
|
"sort-imports": "error",
|
||||||
"sort-keys": "error",
|
"sort-keys": "error",
|
||||||
"sort-vars": "error"
|
"sort-vars": "error"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ const link: Link = {
|
|||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl: 'https://www.example.com/cartUrl',
|
cartUrl: 'https://www.example.com/cartUrl',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
|
price: 100,
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.example.com/url'
|
url: 'https://www.example.com/url'
|
||||||
};
|
};
|
||||||
|
|||||||
+13
-2
@@ -5,9 +5,20 @@ export const adBlocker = new PuppeteerExtraPluginAdblocker({
|
|||||||
blockTrackers: true
|
blockTrackers: true
|
||||||
});
|
});
|
||||||
|
|
||||||
export async function disableBlockerInPage(page: Page) {
|
export async function enableBlockerInPage(page: Page) {
|
||||||
const blockerObject = await adBlocker.getBlocker();
|
const blockerObject = await adBlocker.getBlocker();
|
||||||
if (blockerObject.isBlockingEnabled(page)) {
|
if (blockerObject.isBlockingEnabled(page)) {
|
||||||
await blockerObject.disableBlockingInPage(page);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await blockerObject.enableBlockingInPage(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function disableBlockerInPage(page: Page) {
|
||||||
|
const blockerObject = await adBlocker.getBlocker();
|
||||||
|
if (!blockerObject.isBlockingEnabled(page)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await blockerObject.disableBlockingInPage(page);
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-6
@@ -2,6 +2,7 @@ import {banner} from './banner';
|
|||||||
|
|
||||||
import {config as config_} from 'dotenv';
|
import {config as config_} from 'dotenv';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import {readFileSync} from 'fs';
|
||||||
|
|
||||||
config_({path: path.resolve(__dirname, '../.env')});
|
config_({path: path.resolve(__dirname, '../.env')});
|
||||||
|
|
||||||
@@ -179,7 +180,7 @@ const notifications = {
|
|||||||
desktop: process.env.DESKTOP_NOTIFICATIONS === 'true',
|
desktop: process.env.DESKTOP_NOTIFICATIONS === 'true',
|
||||||
discord: {
|
discord: {
|
||||||
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
|
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
|
||||||
webHookUrl: envOrArray(process.env.DISCORD_WEB_HOOK)
|
webhooks: envOrArray(process.env.DISCORD_WEB_HOOK)
|
||||||
},
|
},
|
||||||
email: {
|
email: {
|
||||||
password: envOrString(process.env.EMAIL_PASSWORD),
|
password: envOrString(process.env.EMAIL_PASSWORD),
|
||||||
@@ -291,7 +292,8 @@ const page = {
|
|||||||
|
|
||||||
const proxy = {
|
const proxy = {
|
||||||
address: envOrString(process.env.PROXY_ADDRESS),
|
address: envOrString(process.env.PROXY_ADDRESS),
|
||||||
port: envOrNumber(process.env.PROXY_PORT, 80)
|
port: envOrNumber(process.env.PROXY_PORT, 80),
|
||||||
|
protocol: envOrString(process.env.PROXY_PROTOCOL, 'http')
|
||||||
};
|
};
|
||||||
|
|
||||||
// Check for deprecated configuration values
|
// Check for deprecated configuration values
|
||||||
@@ -306,6 +308,7 @@ const store = {
|
|||||||
country: envOrString(process.env.COUNTRY, 'usa'),
|
country: envOrString(process.env.COUNTRY, 'usa'),
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
series: {
|
series: {
|
||||||
|
'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),
|
||||||
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
|
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
|
||||||
@@ -317,9 +320,9 @@ const store = {
|
|||||||
ryzen5900: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5900),
|
ryzen5900: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5900),
|
||||||
ryzen5950: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5950),
|
ryzen5950: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5950),
|
||||||
sf: envOrNumber(process.env.MAX_PRICE_SERIES_CORSAIR_SF),
|
sf: envOrNumber(process.env.MAX_PRICE_SERIES_CORSAIR_SF),
|
||||||
sonyps5c: -1,
|
sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C),
|
||||||
sonyps5de: -1,
|
sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE),
|
||||||
'test:series': -1,
|
'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST),
|
||||||
xboxss: -1,
|
xboxss: -1,
|
||||||
xboxsx: -1
|
xboxsx: -1
|
||||||
}
|
}
|
||||||
@@ -334,6 +337,7 @@ const store = {
|
|||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
|
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
|
||||||
|
'3060ti',
|
||||||
'3070',
|
'3070',
|
||||||
'3080',
|
'3080',
|
||||||
'3090',
|
'3090',
|
||||||
@@ -351,6 +355,16 @@ const store = {
|
|||||||
]),
|
]),
|
||||||
stores: envOrArray(process.env.STORES, ['nvidia']).map((entry) => {
|
stores: envOrArray(process.env.STORES, ['nvidia']).map((entry) => {
|
||||||
const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? [];
|
const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? [];
|
||||||
|
|
||||||
|
let proxyList;
|
||||||
|
try {
|
||||||
|
proxyList = readFileSync(`${name}.proxies`)
|
||||||
|
.toString()
|
||||||
|
.trim()
|
||||||
|
.split('\n')
|
||||||
|
.map((x) => x.trim());
|
||||||
|
} catch {}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
maxPageSleep: envOrNumberMax(
|
maxPageSleep: envOrNumberMax(
|
||||||
minPageSleep,
|
minPageSleep,
|
||||||
@@ -362,7 +376,8 @@ const store = {
|
|||||||
maxPageSleep,
|
maxPageSleep,
|
||||||
browser.minSleep
|
browser.minSleep
|
||||||
),
|
),
|
||||||
name: envOrString(name)
|
name: envOrString(name),
|
||||||
|
proxyList
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-12
@@ -1,25 +1,14 @@
|
|||||||
import {startAPIServer, stopAPIServer} from './web';
|
import {startAPIServer, stopAPIServer} from './web';
|
||||||
import {Browser} from 'puppeteer';
|
import {Browser} from 'puppeteer';
|
||||||
import {adBlocker} from './adblocker';
|
|
||||||
import {config} from './config';
|
import {config} from './config';
|
||||||
import {getSleepTime} from './util';
|
import {getSleepTime} from './util';
|
||||||
import {logger} from './logger';
|
import {logger} from './logger';
|
||||||
import puppeteer from 'puppeteer-extra';
|
import puppeteer from 'puppeteer-extra';
|
||||||
import resourceBlock from 'puppeteer-extra-plugin-block-resources';
|
|
||||||
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
|
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());
|
puppeteer.use(stealthPlugin());
|
||||||
if (config.browser.lowBandwidth) {
|
|
||||||
puppeteer.use(
|
|
||||||
resourceBlock({
|
|
||||||
blockedTypes: new Set(['image', 'font'] as const)
|
|
||||||
})
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
puppeteer.use(adBlocker);
|
|
||||||
}
|
|
||||||
|
|
||||||
let browser: Browser | undefined;
|
let browser: Browser | undefined;
|
||||||
|
|
||||||
@@ -44,7 +33,7 @@ async function main() {
|
|||||||
// Add the address of the proxy server if defined
|
// Add the address of the proxy server if defined
|
||||||
if (config.proxy.address) {
|
if (config.proxy.address) {
|
||||||
args.push(
|
args.push(
|
||||||
`--proxy-server=http://${config.proxy.address}:${config.proxy.port}`
|
`--proxy-server=${config.proxy.protocol}://${config.proxy.address}:${config.proxy.port}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-6
@@ -121,7 +121,6 @@ export const Print = {
|
|||||||
maxPrice(
|
maxPrice(
|
||||||
link: Link,
|
link: Link,
|
||||||
store: Store,
|
store: Store,
|
||||||
price: number,
|
|
||||||
maxPrice: number,
|
maxPrice: number,
|
||||||
color?: boolean
|
color?: boolean
|
||||||
): string {
|
): string {
|
||||||
@@ -130,14 +129,13 @@ export const Print = {
|
|||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow(`PRICE ${price} EXCEEDS LIMIT ${maxPrice}`)
|
chalk.yellow(`PRICE ${link.price ?? ''} EXCEEDS LIMIT ${maxPrice}`)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(
|
return `✖ ${buildProductString(link, store)} :: PRICE ${
|
||||||
link,
|
link.price ?? ''
|
||||||
store
|
} EXCEEDS LIMIT ${maxPrice}`;
|
||||||
)} :: PRICE ${price} EXCEEDS LIMIT ${maxPrice}`;
|
|
||||||
},
|
},
|
||||||
message(
|
message(
|
||||||
message: string,
|
message: string,
|
||||||
|
|||||||
+42
-20
@@ -1,41 +1,63 @@
|
|||||||
import {Link, Store} from '../store/model';
|
import {Link, Store} from '../store/model';
|
||||||
import {MessageBuilder, Webhook} from 'discord-webhook-node';
|
import Discord from 'discord.js';
|
||||||
import {config} from '../config';
|
import {config} from '../config';
|
||||||
import {logger} from '../logger';
|
import {logger} from '../logger';
|
||||||
|
|
||||||
const discord = config.notifications.discord;
|
const discord = config.notifications.discord;
|
||||||
const hooks = discord.webHookUrl;
|
const {notifyGroup, webhooks} = discord;
|
||||||
const notifyGroup = discord.notifyGroup;
|
|
||||||
|
function getIdAndToken(webhook: string) {
|
||||||
|
const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook);
|
||||||
|
|
||||||
|
if (!match) {
|
||||||
|
throw new Error('could not get discord webhook');
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: match[1],
|
||||||
|
token: match[2]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function sendDiscordMessage(link: Link, store: Store) {
|
export function sendDiscordMessage(link: Link, store: Store) {
|
||||||
if (discord.webHookUrl.length > 0) {
|
if (webhooks.length > 0) {
|
||||||
logger.debug('↗ sending discord message');
|
logger.debug('↗ sending discord message');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
const embed = new MessageBuilder();
|
const embed = new Discord.MessageEmbed()
|
||||||
embed.setTitle('Stock Notification');
|
.setTitle('_**Stock alert!**_')
|
||||||
if (link.cartUrl)
|
.setDescription(
|
||||||
embed.addField('Add To Cart Link', link.cartUrl, true);
|
'> provided by [streetmerchant](https://github.com/jef/streetmerchant) with :heart:'
|
||||||
embed.addField('Product Page', link.url, true);
|
)
|
||||||
|
.setThumbnail(
|
||||||
|
'https://raw.githubusercontent.com/jef/streetmerchant/main/media/streetmerchant-square.png'
|
||||||
|
)
|
||||||
|
.setColor('#52b788')
|
||||||
|
.setTimestamp();
|
||||||
|
|
||||||
embed.addField('Store', store.name, true);
|
embed.addField('Store', store.name, true);
|
||||||
|
if (link.price) embed.addField('Price', `$${link.price}`, true);
|
||||||
|
embed.addField('Product Page', link.url);
|
||||||
|
if (link.cartUrl) embed.addField('Add to Cart', link.cartUrl);
|
||||||
embed.addField('Brand', link.brand, true);
|
embed.addField('Brand', link.brand, true);
|
||||||
embed.addField('Series', link.series, true);
|
|
||||||
embed.addField('Model', link.model, true);
|
embed.addField('Model', link.model, true);
|
||||||
|
embed.addField('Series', link.series, true);
|
||||||
if (notifyGroup) {
|
|
||||||
embed.setText(notifyGroup.join(' '));
|
|
||||||
}
|
|
||||||
|
|
||||||
embed.setColor(0x76b900);
|
|
||||||
embed.setTimestamp();
|
|
||||||
|
|
||||||
const promises = [];
|
const promises = [];
|
||||||
for (const hook of hooks) {
|
for (const webhook of webhooks) {
|
||||||
promises.push(new Webhook(hook).send(embed));
|
const {id, token} = getIdAndToken(webhook);
|
||||||
|
const client = new Discord.WebhookClient(id, token);
|
||||||
|
promises.push({
|
||||||
|
client,
|
||||||
|
message: client.send(notifyGroup.join(' '), {
|
||||||
|
embeds: [embed],
|
||||||
|
username: 'streetmerchant'
|
||||||
|
})
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all(promises);
|
(await Promise.all(promises)).forEach(({client}) => client.destroy());
|
||||||
|
|
||||||
logger.info('✔ discord message sent');
|
logger.info('✔ discord message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
|
|||||||
@@ -116,27 +116,22 @@ export function includesLabels(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function cardPrice(
|
export async function getPrice(
|
||||||
page: Page,
|
page: Page,
|
||||||
query: Pricing,
|
query: Pricing,
|
||||||
max: number,
|
|
||||||
options: Selector
|
options: Selector
|
||||||
): Promise<number | null> {
|
): Promise<number | null> {
|
||||||
if (!max || max === -1) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const selector = {...options, selector: query.container};
|
const selector = {...options, selector: query.container};
|
||||||
const cardPrice = await extractPageContents(page, selector);
|
const priceString = await extractPageContents(page, selector);
|
||||||
|
|
||||||
if (cardPrice) {
|
if (priceString) {
|
||||||
const priceSeperator = query.euroFormat ? /\./g : /,/g;
|
const priceSeparator = query.euroFormat ? /\./g : /,/g;
|
||||||
const cardpriceNumber = Number.parseFloat(
|
const price = Number.parseFloat(
|
||||||
cardPrice.replace(priceSeperator, '').match(/\d+/g)!.join('.')
|
priceString.replace(priceSeparator, '').match(/\d+/g)!.join('.')
|
||||||
);
|
);
|
||||||
|
|
||||||
logger.debug(`Raw card price: ${cardPrice} | Limit: ${max}`);
|
logger.debug('received price', price);
|
||||||
return cardpriceNumber > max ? cardpriceNumber : null;
|
return price;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
+211
-65
@@ -1,7 +1,7 @@
|
|||||||
import {Browser, Page, Response} from 'puppeteer';
|
import {Browser, Page, PageEventObj, Request, Response} from 'puppeteer';
|
||||||
import {Link, Store, getStores} from './model';
|
import {Link, Store, getStores} from './model';
|
||||||
import {Print, logger} from '../logger';
|
import {Print, logger} from '../logger';
|
||||||
import {Selector, cardPrice, pageIncludesLabels} from './includes-labels';
|
import {Selector, getPrice, pageIncludesLabels} from './includes-labels';
|
||||||
import {
|
import {
|
||||||
closePage,
|
closePage,
|
||||||
delay,
|
delay,
|
||||||
@@ -9,18 +9,109 @@ import {
|
|||||||
getSleepTime,
|
getSleepTime,
|
||||||
isStatusCodeInRange
|
isStatusCodeInRange
|
||||||
} from '../util';
|
} from '../util';
|
||||||
|
import {disableBlockerInPage, enableBlockerInPage} from '../adblocker';
|
||||||
import {config} from '../config';
|
import {config} from '../config';
|
||||||
import {disableBlockerInPage} from '../adblocker';
|
|
||||||
import {fetchLinks} from './fetch-links';
|
import {fetchLinks} from './fetch-links';
|
||||||
import {filterStoreLink} from './filter';
|
import {filterStoreLink} from './filter';
|
||||||
import open from 'open';
|
import open from 'open';
|
||||||
import {processBackoffDelay} from './model/helpers/backoff';
|
import {processBackoffDelay} from './model/helpers/backoff';
|
||||||
import {sendNotification} from '../notification';
|
import {sendNotification} from '../notification';
|
||||||
|
import useProxy from 'puppeteer-page-proxy';
|
||||||
|
|
||||||
const inStock: Record<string, boolean> = {};
|
const inStock: Record<string, boolean> = {};
|
||||||
|
|
||||||
const linkBuilderLastRunTimes: Record<string, number> = {};
|
const linkBuilderLastRunTimes: Record<string, number> = {};
|
||||||
|
|
||||||
|
function nextProxy(store: Store) {
|
||||||
|
if (!store.proxyList) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (store.currentProxyIndex === undefined) {
|
||||||
|
store.currentProxyIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
store.currentProxyIndex++;
|
||||||
|
if (store.currentProxyIndex >= store.proxyList.length) {
|
||||||
|
store.currentProxyIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info(
|
||||||
|
`ℹ [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${store.proxyList.length}`
|
||||||
|
);
|
||||||
|
|
||||||
|
return store.proxyList[store.currentProxyIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleLowBandwidth(request: Request) {
|
||||||
|
if (!config.browser.lowBandwidth) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const typ = request.resourceType();
|
||||||
|
if (typ === 'font' || typ === 'image') {
|
||||||
|
try {
|
||||||
|
await request.abort();
|
||||||
|
} catch {}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleProxy(request: Request, proxy?: string) {
|
||||||
|
if (!proxy) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await useProxy(request, proxy);
|
||||||
|
} catch (error: unknown) {
|
||||||
|
logger.error(error);
|
||||||
|
try {
|
||||||
|
await request.abort();
|
||||||
|
} catch {}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
|
||||||
|
if (!adBlockRequestHandler) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const continueFunc = async () => {
|
||||||
|
resolve(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const abortFunc = async () => {
|
||||||
|
try {
|
||||||
|
await request.abort();
|
||||||
|
} catch {}
|
||||||
|
|
||||||
|
resolve(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
const requestProxy = new Proxy(request, {
|
||||||
|
get(target, prop, receiver) {
|
||||||
|
if (prop === 'continue') {
|
||||||
|
return continueFunc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prop === 'abort') {
|
||||||
|
return abortFunc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Reflect.get(target, prop, receiver);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
adBlockRequestHandler(requestProxy);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responsible for looking up information about a each product within
|
* Responsible for looking up information about a each product within
|
||||||
* a `Store`. It's important that we ignore `no-await-in-loop` here
|
* a `Store`. It's important that we ignore `no-await-in-loop` here
|
||||||
@@ -34,6 +125,20 @@ async function lookup(browser: Browser, store: Store) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (store.linksBuilder) {
|
||||||
|
logger.info(`[${store.name}] Running linksBuilder...`);
|
||||||
|
const lastRunTime = linkBuilderLastRunTimes[store.name] ?? -1;
|
||||||
|
const ttl = store.linksBuilder.ttl ?? Number.MAX_SAFE_INTEGER;
|
||||||
|
if (lastRunTime === -1 || Date.now() - lastRunTime > ttl) {
|
||||||
|
try {
|
||||||
|
await fetchLinks(store, browser);
|
||||||
|
linkBuilderLastRunTimes[store.name] = Date.now();
|
||||||
|
} catch (error: unknown) {
|
||||||
|
logger.error(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* eslint-disable no-await-in-loop */
|
/* eslint-disable no-await-in-loop */
|
||||||
for (const link of store.links) {
|
for (const link of store.links) {
|
||||||
if (!filterStoreLink(link)) {
|
if (!filterStoreLink(link)) {
|
||||||
@@ -45,23 +150,62 @@ async function lookup(browser: Browser, store: Store) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const context = config.browser.isIncognito
|
const proxy = nextProxy(store);
|
||||||
|
|
||||||
|
const useAdBlock = !config.browser.lowBandwidth && !store.disableAdBlocker;
|
||||||
|
const customContext = config.browser.isIncognito;
|
||||||
|
|
||||||
|
const context = customContext
|
||||||
? await browser.createIncognitoBrowserContext()
|
? await browser.createIncognitoBrowserContext()
|
||||||
: browser.defaultBrowserContext();
|
: browser.defaultBrowserContext();
|
||||||
const page = config.browser.isIncognito
|
const page = await context.newPage();
|
||||||
? await context.newPage()
|
|
||||||
: await browser.newPage();
|
|
||||||
page.setDefaultNavigationTimeout(config.page.timeout);
|
page.setDefaultNavigationTimeout(config.page.timeout);
|
||||||
await page.setUserAgent(getRandomUserAgent());
|
await page.setUserAgent(getRandomUserAgent());
|
||||||
|
|
||||||
if (store.disableAdBlocker) {
|
let adBlockRequestHandler: any;
|
||||||
try {
|
let pageProxy;
|
||||||
await disableBlockerInPage(page);
|
if (useAdBlock) {
|
||||||
} catch (error: unknown) {
|
const onProxyFunc = (event: keyof PageEventObj, handler: any) => {
|
||||||
logger.error(error);
|
if (event !== 'request') {
|
||||||
}
|
page.on(event, handler);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
adBlockRequestHandler = handler;
|
||||||
|
};
|
||||||
|
|
||||||
|
pageProxy = new Proxy(page, {
|
||||||
|
get(target, prop, receiver) {
|
||||||
|
if (prop === 'on') {
|
||||||
|
return onProxyFunc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Reflect.get(target, prop, receiver);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
await enableBlockerInPage(pageProxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await page.setRequestInterception(true);
|
||||||
|
page.on('request', async (request) => {
|
||||||
|
if (await handleLowBandwidth(request)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await handleAdBlock(request, adBlockRequestHandler)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await handleProxy(request, proxy)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await request.continue();
|
||||||
|
} catch {}
|
||||||
|
});
|
||||||
|
|
||||||
let statusCode = 0;
|
let statusCode = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -74,7 +218,11 @@ async function lookup(browser: Browser, store: Store) {
|
|||||||
);
|
);
|
||||||
const client = await page.target().createCDPSession();
|
const client = await page.target().createCDPSession();
|
||||||
await client.send('Network.clearBrowserCookies');
|
await client.send('Network.clearBrowserCookies');
|
||||||
await client.send('Network.clearBrowserCache');
|
// Await client.send('Network.clearBrowserCache');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageProxy) {
|
||||||
|
await disableBlockerInPage(pageProxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Must apply backoff before closing the page, e.g. if CloudFlare is
|
// Must apply backoff before closing the page, e.g. if CloudFlare is
|
||||||
@@ -82,7 +230,7 @@ async function lookup(browser: Browser, store: Store) {
|
|||||||
// before redirecting to the next page
|
// before redirecting to the next page
|
||||||
await processBackoffDelay(store, link, statusCode);
|
await processBackoffDelay(store, link, statusCode);
|
||||||
await closePage(page);
|
await closePage(page);
|
||||||
if (config.browser.isIncognito) {
|
if (customContext) {
|
||||||
await context.close();
|
await context.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -155,22 +303,10 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
|
|||||||
type: 'textContent'
|
type: 'textContent'
|
||||||
};
|
};
|
||||||
|
|
||||||
if (store.labels.inStock) {
|
if (store.labels.captcha) {
|
||||||
const options = {
|
if (await pageIncludesLabels(page, store.labels.captcha, baseOptions)) {
|
||||||
...baseOptions,
|
logger.warn(Print.captcha(link, store, true));
|
||||||
requireVisible: true,
|
await delay(getSleepTime(store));
|
||||||
type: 'outerHTML' as const
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
|
|
||||||
logger.info(Print.outOfStock(link, store, true));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (store.labels.outOfStock) {
|
|
||||||
if (await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)) {
|
|
||||||
logger.info(Print.outOfStock(link, store, true));
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -185,33 +321,56 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (store.labels.maxPrice) {
|
if (store.labels.maxPrice) {
|
||||||
const price = await cardPrice(
|
|
||||||
page,
|
|
||||||
store.labels.maxPrice,
|
|
||||||
config.store.maxPrice.series[link.series],
|
|
||||||
baseOptions
|
|
||||||
);
|
|
||||||
const maxPrice = config.store.maxPrice.series[link.series];
|
const maxPrice = config.store.maxPrice.series[link.series];
|
||||||
if (price) {
|
|
||||||
logger.info(Print.maxPrice(link, store, price, maxPrice, true));
|
link.price = await getPrice(page, store.labels.maxPrice, baseOptions);
|
||||||
return false;
|
|
||||||
}
|
if (link.price && link.price > maxPrice && maxPrice > 0) {
|
||||||
}
|
logger.info(Print.maxPrice(link, store, maxPrice, true));
|
||||||
|
|
||||||
if (store.labels.captcha) {
|
|
||||||
if (await pageIncludesLabels(page, store.labels.captcha, baseOptions)) {
|
|
||||||
logger.warn(Print.captcha(link, store, true));
|
|
||||||
await delay(getSleepTime(store));
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fixme: currently causing issues
|
||||||
// Do API inventory validation in realtime (no cache) if available
|
// Do API inventory validation in realtime (no cache) if available
|
||||||
if (
|
// if (
|
||||||
store.realTimeInventoryLookup !== undefined &&
|
// store.realTimeInventoryLookup !== undefined &&
|
||||||
link.itemNumber !== undefined
|
// link.itemNumber !== undefined
|
||||||
) {
|
// ) {
|
||||||
return store.realTimeInventoryLookup(link.itemNumber);
|
// return store.realTimeInventoryLookup(link.itemNumber);
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (store.labels.inStock) {
|
||||||
|
const options = {
|
||||||
|
...baseOptions,
|
||||||
|
requireVisible: true,
|
||||||
|
type: 'outerHTML' as const
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
|
||||||
|
logger.info(Print.outOfStock(link, store, true));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (store.labels.outOfStock) {
|
||||||
|
if (await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)) {
|
||||||
|
logger.info(Print.outOfStock(link, store, true));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -223,19 +382,6 @@ export async function tryLookupAndLoop(browser: Browser, store: Store) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getStores().has(store.name) && store.linksBuilder) {
|
|
||||||
const lastRunTime = linkBuilderLastRunTimes[store.name] ?? -1;
|
|
||||||
const ttl = store.linksBuilder.ttl ?? Number.MAX_SAFE_INTEGER;
|
|
||||||
if (lastRunTime === -1 || Date.now() - lastRunTime > ttl) {
|
|
||||||
try {
|
|
||||||
await fetchLinks(store, browser);
|
|
||||||
linkBuilderLastRunTimes[store.name] = Date.now();
|
|
||||||
} catch (error: unknown) {
|
|
||||||
logger.error((error as Error).message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.debug(`[${store.name}] Starting lookup...`);
|
logger.debug(`[${store.name}] Starting lookup...`);
|
||||||
try {
|
try {
|
||||||
await lookup(browser, store);
|
await lookup(browser, store);
|
||||||
|
|||||||
@@ -15,17 +15,23 @@ export const Alternate: Store = {
|
|||||||
container: 'div.price > span',
|
container: 'div.price > span',
|
||||||
euroFormat: true
|
euroFormat: true
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: [
|
||||||
container: '.stockStatus',
|
{
|
||||||
text: ['liefertermin unbekannt']
|
container: '.stockStatus',
|
||||||
}
|
text: ['liefertermin unbekannt']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container: '.stockStatus',
|
||||||
|
text: ['Artikel kann nicht gekauft werden']
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.alternate.de/product/1516616'
|
url: 'https://www.alternate.de/product/1662088'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -356,6 +362,54 @@ export const Alternate: Store = {
|
|||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.alternate.de/product/1651221'
|
url: 'https://www.alternate.de/product/1651221'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
model: 'merc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.alternate.de/product/1698792'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro oc se',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.alternate.de/product/1696478'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro oc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.alternate.de/product/1696482'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix lc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.alternate.de/product/1695392'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.alternate.de/product/1697044'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.alternate.de/product/1675115'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.alternate.de/product/1675117'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.alternate.de/product/1676874'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'alternate'
|
name: 'alternate'
|
||||||
|
|||||||
@@ -11,8 +11,7 @@ export const AmazonCa: Store = {
|
|||||||
text: ['add to cart']
|
text: ['add to cart']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]',
|
container: '#priceblock_ourprice'
|
||||||
euroFormat: false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const AmazonDeWarehouse: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
|
labels: {
|
||||||
|
captcha: {
|
||||||
|
container: 'body',
|
||||||
|
text: [
|
||||||
|
'geben sie die unten angezeigten zeichen ein',
|
||||||
|
'geben sie die zeichen unten ein'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
inStock: {
|
||||||
|
container: '#a-autoid-0-announce',
|
||||||
|
text: ['In den Einkaufswagen']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: 'a-size-large a-color-price olpOfferPrice a-text-bold',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: [
|
||||||
|
{
|
||||||
|
container: '.a-size-medium',
|
||||||
|
text: [
|
||||||
|
'Derzeit gibt es keine Verkäufer, die diesen Artikel an Ihren Standort liefern können'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.amazon.de/gp/offer-listing/B07PW9VBK5'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRK9'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.amazon.de/gp/offer-listing/B08H98GVK8'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.amazon.de/gp/offer-listing/B087VM5XC6'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRLL'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'amazon-de-warehouse'
|
||||||
|
};
|
||||||
@@ -11,22 +11,28 @@ export const AmazonDe: Store = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#desktop_buybox',
|
container: '#add-to-cart-button',
|
||||||
text: ['in den einkaufswagen']
|
text: ['in den einkaufswagen']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]',
|
container: '#priceblock_ourprice',
|
||||||
euroFormat: true
|
euroFormat: true
|
||||||
}
|
},
|
||||||
|
outOfStock: [
|
||||||
|
{
|
||||||
|
container: '#availability',
|
||||||
|
text: ['Derzeit nicht verfügbar']
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B083JX52VG&Quantity.1=1',
|
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.de/dp/B083JX52VG'
|
url: 'https://www.amazon.de/dp/B07PW9VBK5'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -504,6 +510,12 @@ export const AmazonDe: Store = {
|
|||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRK9&Quantity.1=1',
|
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRK9&Quantity.1=1',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#productTitle',
|
||||||
|
text: ['sony playstation 5']
|
||||||
|
}
|
||||||
|
},
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.de/dp/B08H93ZRK9'
|
url: 'https://www.amazon.de/dp/B08H93ZRK9'
|
||||||
@@ -512,9 +524,33 @@ export const AmazonDe: Store = {
|
|||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H98GVK8&Quantity.1=1',
|
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H98GVK8&Quantity.1=1',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#productTitle',
|
||||||
|
text: ['sony playstation 5']
|
||||||
|
}
|
||||||
|
},
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.de/dp/B08H98GVK8'
|
url: 'https://www.amazon.de/dp/B08H98GVK8'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
// Fixme: disabled because of #1095, enable when working again
|
||||||
|
// cartUrl:
|
||||||
|
// 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.amazon.de/dp/B08H93ZRLL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
// Fixme: disabled because of #1095, enable when working again
|
||||||
|
// cartUrl:
|
||||||
|
// 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.amazon.de/dp/B087VM5XC6'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'amazon-de'
|
name: 'amazon-de'
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonEs: Store = {
|
export const AmazonEs: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
@@ -11,18 +12,23 @@ export const AmazonEs: Store = {
|
|||||||
text: ['añadir a la cesta']
|
text: ['añadir a la cesta']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]',
|
container: '#priceblock_ourprice'
|
||||||
euroFormat: true
|
},
|
||||||
}
|
outOfStock: [
|
||||||
|
{
|
||||||
|
container: '#availability',
|
||||||
|
text: ['No disponible']
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B083JX52VG&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.es/dp/B083JX52VG'
|
url: 'https://www.amazon.es/dp/B07PW9VBK5'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
@@ -159,6 +165,38 @@ export const AmazonEs: Store = {
|
|||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amazon.es/dp/B0815Y8J9N'
|
url: 'https://www.amazon.es/dp/B0815Y8J9N'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.amazon.es/dp/B08KKJ37F7'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.amazon.es/dp/B08KJF2D25'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.amazon.es/dp/B08H93ZRLL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.amazon.es/dp/B087VM5XC6'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'amazon-es'
|
name: 'amazon-es'
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonFr: Store = {
|
export const AmazonFr: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
@@ -11,16 +12,22 @@ export const AmazonFr: Store = {
|
|||||||
text: ['ajouter au panier']
|
text: ['ajouter au panier']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]',
|
container: '#priceblock_ourprice',
|
||||||
euroFormat: false
|
euroFormat: true
|
||||||
}
|
},
|
||||||
|
outOfStock: [
|
||||||
|
{
|
||||||
|
container: '#availability',
|
||||||
|
text: ['Actuellement indisponible']
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.fr/dp/B07PBLD2MX'
|
url: 'https://www.amazon.fr/dp/B07PW9VBK5'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
@@ -158,13 +165,25 @@ export const AmazonFr: Store = {
|
|||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.fr/dp/B08GSC5D9G'
|
url: 'https://www.amazon.fr/dp/B08H93ZRK9'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.fr/dp/B08GS1N24H'
|
url: 'https://www.amazon.fr/dp/B08H98GVK8'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.amazon.fr/dp/B08H93ZRLL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.amazon.fr/dp/B087VM5XC6'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'amazon-fr'
|
name: 'amazon-fr'
|
||||||
|
|||||||
@@ -0,0 +1,413 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const AmazonIt: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
|
labels: {
|
||||||
|
captcha: {
|
||||||
|
container: 'body',
|
||||||
|
text: ['enter the characters you see below']
|
||||||
|
},
|
||||||
|
inStock: {
|
||||||
|
container: '#desktop_buybox',
|
||||||
|
text: ['Aggiungi al carrello']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '#priceblock_ourprice'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B07PW9VBK5'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08L8HPKR6'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08L8JNTXQ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08L8KC1J7'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KY266MG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KWN2LZG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HBJB7YD'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
|
||||||
|
model: 'xlr8 uprising',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HBF5L3K'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KWPDXJZ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KWLMZV4'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08LF32LJ6'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08L8L71SM'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
||||||
|
model: 'ftw3',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08L8L9TCZ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KY266MG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08M13DXSZ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KXZV626'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HBR7QBM'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HBTJMLJ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HR3Y5GQ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HR55YB5'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
|
||||||
|
model: 'xc3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HR4RJ3Q'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
|
||||||
|
model: 'xc3 black',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HR6FMF3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJTH61J'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJS2JLJ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HH5WF97'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HHDP9DW'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08J6GMWCQ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HR5SXPS'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJNKT3P'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJQ182D'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HBQWBHH'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HBVX53D'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HRBW6VB'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
|
||||||
|
model: 'ventus 3x',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HR9D2JS'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJRF2CN'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJPDJTY'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJGNJ81'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3090',
|
||||||
|
url: 'https://www.amazon.it/dp/B08HJLLF7G'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
||||||
|
model: '5600x',
|
||||||
|
series: 'ryzen5600',
|
||||||
|
url: 'https://www.amazon.it/dp/B08166SLDF'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url: 'https://www.amazon.it/dp/product/B0815XFSGK'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
||||||
|
model: '5900x',
|
||||||
|
series: 'ryzen5900',
|
||||||
|
url: 'https://www.amazon.it/dp/B08164VTWH'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
||||||
|
model: '5950x',
|
||||||
|
series: 'ryzen5950',
|
||||||
|
url: 'https://www.amazon.it/dp/B0815Y8J9N'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amazon.it/dp/B08MVC76SR'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.it/dp/B08MVCLBWK'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KKJ37F7'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.amazon.it/dp/B08KJF2D25'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDSW1ZW&Quantity.1=1',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.amazon.it/dp/B08JDSW1ZW'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDTCXRG&Quantity.1=1',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.amazon.it/dp/B08JDTCXRG'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
|
||||||
|
model: '750 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url: 'https://www.amazon.it/dp/B07M63H81H'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'amazon-it'
|
||||||
|
};
|
||||||
@@ -16,7 +16,7 @@ export const AmazonNl: Store = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]',
|
container: '#priceblock_ourprice',
|
||||||
euroFormat: true
|
euroFormat: true
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export const AmazonUk: Store = {
|
|||||||
text: ['in stock']
|
text: ['in stock']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]'
|
container: '#priceblock_ourprice'
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
@@ -31,26 +31,42 @@ export const AmazonUk: Store = {
|
|||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B081265T5Z&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B0753R2TWC&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.co.uk/dp/B081265T5Z/'
|
url: 'https://www.amazon.co.uk/dp/B0753R2TWC/'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H95Y452&Quantity.1=1',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.com/dp/B08FC5L3RG'
|
url: 'https://www.amazon.co.uk/dp/B08H95Y452'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08H97NYGP&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H97NYGP&Quantity.1=1',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08H97NYGP/'
|
url: 'https://www.amazon.co.uk/dp/B08H97NYGP'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H93GKNJ&Quantity.1=1',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.amazon.co.uk/dp/B08H93GKNJ'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08GD9MNZB&Quantity.1=1',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.amazon.co.uk/dp/B08GD9MNZB'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
linksBuilder: {
|
linksBuilder: {
|
||||||
@@ -109,6 +125,11 @@ export const AmazonUk: Store = {
|
|||||||
'https://www.amazon.co.uk/s?k=%2B%22RTX+3090%22+-3080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675291',
|
'https://www.amazon.co.uk/s?k=%2B%22RTX+3090%22+-3080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675291',
|
||||||
'https://www.amazon.co.uk/s?k=%2B%22RTX+3090%22+-3080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675594&page=2'
|
'https://www.amazon.co.uk/s?k=%2B%22RTX+3090%22+-3080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675594&page=2'
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.amazon.co.uk/s?k=%2B%22RTX+3060+TI%22+-2060+-2070+-2080+-SUPER+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675291sb_noss'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
+101
-7
@@ -7,22 +7,28 @@ export const Amazon: Store = {
|
|||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['enter the characters you see below']
|
text: ['enter the characters you see below']
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: [
|
||||||
container: '#desktop_buybox',
|
{
|
||||||
text: ['add to cart']
|
container: '#add-to-cart-button',
|
||||||
},
|
text: ['add to cart']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container: '#buy-now-button',
|
||||||
|
text: ['buy now']
|
||||||
|
}
|
||||||
|
],
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="PriceString"]'
|
container: '#priceblock_ourprice'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07TDN1SC5&Quantity.1=1',
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083248S3B&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.com/dp/B07TDN1SC5'
|
url: 'https://www.amazon.com/dp/B083248S3B'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -440,6 +446,30 @@ export const Amazon: Store = {
|
|||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amazon.com/dp/B08MVC76SR'
|
url: 'https://www.amazon.com/dp/B08MVC76SR'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXXT7WN&Quantity.1=1',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NXXT7WN'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYNLMR&Quantity.1=1',
|
||||||
|
model: 'pulse',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NXYNLMR'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXVNMPQ&Quantity.1=1',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NXVNMPQ'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'xfx',
|
brand: 'xfx',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
@@ -448,6 +478,30 @@ export const Amazon: Store = {
|
|||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amazon.com/dp/B08N6ZLX9B'
|
url: 'https://www.amazon.com/dp/B08N6ZLX9B'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
|
||||||
|
model: 'merc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NX14LV1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NN76VJD&Quantity.1=1',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NN76VJD'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P5YFZCY&Quantity.1=1',
|
||||||
|
model: 'merc',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.com/dp/B08P5YFZCY'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'powercolor',
|
brand: 'powercolor',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
@@ -464,6 +518,46 @@ export const Amazon: Store = {
|
|||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://www.amazon.com/dp/B08MVCLBWK'
|
url: 'https://www.amazon.com/dp/B08MVCLBWK'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXZSPMY&Quantity.1=1',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NXZSPMY'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYBVDB&Quantity.1=1',
|
||||||
|
model: 'pulse',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NXYBVDB'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWJ29NB&Quantity.1=1',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NWJ29NB'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3YT3MY&Quantity.1=1',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amazon.com/dp/B08P3YT3MY'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWHKGS9&Quantity.1=1',
|
||||||
|
model: 'strix lc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amazon.com/dp/B08NWHKGS9'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const AmdCa: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.btn-shopping-cart',
|
||||||
|
text: ['add to cart']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.product-page-description h4',
|
||||||
|
euroFormat: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5458373400/ca'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5458373400/ca?add-to-cart=true',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5458373400/ca'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5458372800/ca?add-to-cart=true',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5458372800/ca'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'amd-ca'
|
||||||
|
};
|
||||||
@@ -49,6 +49,14 @@ export const AmdDe: Store = {
|
|||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5450881700/de'
|
url: 'https://www.amd.com/de/direct-buy/5450881700/de'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/de/direct-buy/5458374100/de?add-to-cart=true',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amd.com/de/direct-buy/5458374100/de'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'amd-de'
|
name: 'amd-de'
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const AmdIt: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.btn-shopping-cart',
|
||||||
|
text: ['add to cart']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.product-page-description h4',
|
||||||
|
euroFormat: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5450881400/it'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5450881400/it?add-to-cart=true',
|
||||||
|
model: '5950x',
|
||||||
|
series: 'ryzen5950',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5450881400/it'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5450881500/it?add-to-cart=true',
|
||||||
|
model: '5900x',
|
||||||
|
series: 'ryzen5900',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5450881500/it'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5450881600/it?add-to-cart=true',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5450881600/it'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5450881700/it?add-to-cart=true',
|
||||||
|
model: '5600x',
|
||||||
|
series: 'ryzen5600',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5450881700/it'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5458374100/it?add-to-cart=true',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5458374100/it'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'amd-it'
|
||||||
|
};
|
||||||
@@ -57,6 +57,14 @@ export const Amd: Store = {
|
|||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458372800/us'
|
url: 'https://www.amd.com/en/direct-buy/5458372800/us'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
cartUrl:
|
||||||
|
'https://www.amd.com/en/direct-buy/5458373400/us?add-to-cart=true',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url: 'https://www.amd.com/en/direct-buy/5458373400/us'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'amd'
|
name: 'amd'
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const AntOnline: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.uk-button',
|
||||||
|
text: ['Add to Cart']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.cPrice',
|
||||||
|
euroFormat: false
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.priceView-price .priceView-hero-price span',
|
||||||
|
text: ['Sold Out']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.antonline.com/Sony/Electronics/Gaming_Devices/Gaming_Consoles/1409507'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url:
|
||||||
|
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1414487'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url:
|
||||||
|
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1409527'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'antonline'
|
||||||
|
};
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Argos: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: 'button[data-test="add-to-trolley-button-button"',
|
||||||
|
text: ['to trolley']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: 'li[itemprop="price"]'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.argos.co.uk/product/5718469'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.argos.co.uk/product/6795199'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.argos.co.uk/product/6795151'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'argos'
|
||||||
|
};
|
||||||
@@ -39,6 +39,11 @@ export const Aria: Store = {
|
|||||||
titleSelector: 'strong > a[href]'
|
titleSelector: 'strong > a[href]'
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
@@ -48,6 +53,11 @@ export const Aria: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3090'
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3090'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,116 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
|
export const Awd: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.vs-stock .ty-qty-in-stock',
|
||||||
|
text: ['item(s)']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.product-info .ty-price-num',
|
||||||
|
euroFormat: false // Note: Awd uses non-euroFromat as price seperator
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.vs-stock',
|
||||||
|
text: ['out of stock']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/asus-nvidia-geforce-gt-710-silent-low-profile-2gb-gddr5-graphics-card-pci-e.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/asus-tuf-gaming-radeon-rx-6800-oc-edition-16gb-gddr6-graphics-card.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/asus-rog-strix-radeon-rx-6800-oc-edition-16gb-gddr6-graphics-card.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/gigabyte-radeon-rx-6800-gaming-oc-16gb-gddr6-graphics-card.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/gigabyte-radeon-rx-6800-xt-gaming-oc-16gb-gddr6-graphics-card.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5600x',
|
||||||
|
series: 'ryzen5600',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/amd-ryzen-5-5600x-cpu-six-core-3.7ghz-processor-socket-am4-retail.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/amd-ryzen-7-5800x-cpu-eight-core-3.8ghz-processor-socket-am4-retail.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5900x',
|
||||||
|
series: 'ryzen5900',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/amd-ryzen-9-5900x-cpu-twelve-core-3.7ghz-processor-socket-am4-retail.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5950x',
|
||||||
|
series: 'ryzen5950',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/amd-ryzen-9-5950x-sixteen-core-socket-am4-3.4ghz-processor.html'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
linksBuilder: {
|
||||||
|
builder: getProductLinksBuilder({
|
||||||
|
productsSelector: '.grid-list .ty-grid-list__item',
|
||||||
|
sitePrefix: 'https://www.awd-it.co.uk',
|
||||||
|
titleSelector: '.title-price-wrapper',
|
||||||
|
urlSelector: 'a[href]'
|
||||||
|
}),
|
||||||
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3070.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3080.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3090',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3090.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
name: 'awd',
|
||||||
|
waitUntil: 'domcontentloaded'
|
||||||
|
};
|
||||||
@@ -69,6 +69,42 @@ export const BAndH: Store = {
|
|||||||
// series: '3080',
|
// series: '3080',
|
||||||
// url: 'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html'
|
// url: 'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html'
|
||||||
// },
|
// },
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bhphotovideo.com/c/product/1606948-REG/gigabyte_gv_n306teagle_oc_8gd_rtx_3060_ti_eagle.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bhphotovideo.com/c/product/1606949-REG/gigabyte_gv_n306teagle_8gd_rtx_3060_ti_eagle.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bhphotovideo.com/c/product/1606945-REG/gigabyte_gv_n306taorus_m_8gd_aorus_rtx_3060_ti.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bhphotovideo.com/c/product/1606947-REG/gigabyte_gv_n306tgaming_oc_8gd_rtx_3060_ti_gaming.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html'
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
|
|||||||
@@ -3,13 +3,17 @@ import {Store} from './store';
|
|||||||
export const BestBuyCa: Store = {
|
export const BestBuyCa: Store = {
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.x-product-detail-page .addToCartButton:enabled',
|
container: '.x-checkout-experience-new',
|
||||||
text: ['Add to Cart']
|
text: ['add to cart']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container:
|
container:
|
||||||
'div[class^="productPricingContainer"] span[class^="screenReaderOnly_"',
|
'div[class^="productPricingContainer"] span[class^="screenReaderOnly_"',
|
||||||
euroFormat: false
|
euroFormat: false
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: 'button.addToCartButton.disabled_XY3i_',
|
||||||
|
text: ['Add to Cart']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
@@ -18,7 +22,42 @@ export const BestBuyCa: Store = {
|
|||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-2060-super-gaming-x-8gb-gddr6-video-card/14419420?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-gtx-1660-xc-ultra-6gb-gddr5-video-card/14119081?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ti-ventus-2x-oc-8gb-gddr6-video-card/15178453?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3060-ti-8gb-gddr6-video-card/15166285?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-oc-8gb-gddr6-video-card/15178452?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-8gb-gddr6-video-card/15178583?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3060-ti-ftw3-ultra-8gb-gddr6-video-card/15200164?intl=nosplash'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
@@ -39,7 +78,7 @@ export const BestBuyCa: Store = {
|
|||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/14961449?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/15084753?intl=nosplash'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -110,6 +149,20 @@ export const BestBuyCa: Store = {
|
|||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3070-8gb-gddr6-video-card-only-at-best-buy/15078017?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3070-8gb-gddr6-video-card-only-at-best-buy/15078017?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/playstation-5-console-online-only/14962185?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.ca/en-ca/product/playstation-5-digital-edition-console-online-only/14962184?intl=nosplash'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'bestbuy-ca',
|
name: 'bestbuy-ca',
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export const BestBuy: Store = {
|
|||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.com/site/evga-ko-ultra-gaming-nvidia-geforce-rtx-2060-6gb-gddr6-pci-express-3-0-graphics-card-black-gray/6403801.p?skuId=6403801&intl=nosplash'
|
'https://www.bestbuy.com/site/insignia-8qt-digital-multi-cooker-stainless-steel/6258941.p?skuId=6258941&intl=nosplash'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'nvidia',
|
brand: 'nvidia',
|
||||||
@@ -316,6 +316,38 @@ export const BestBuy: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.bestbuy.com/site/pny-geforce-rtx-3090-24gb-xlr8-gaming-epic-x-rgb-triple-fan-graphics-card/6432657.p?skuId=6432657&intl=nosplash'
|
'https://www.bestbuy.com/site/pny-geforce-rtx-3090-24gb-xlr8-gaming-epic-x-rgb-triple-fan-graphics-card/6432657.p?skuId=6432657&intl=nosplash'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3060-ti-8gb-gddr6-pci-express-4-0-graphics-card-steel-and-black/6439402.p?skuId=6439402&intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/msi-geforce-rtx-3060-ti-ventus-2x-oc-bv-8gb-gddr6-pci-express-4-0-graphics-card-black-black/6441172.p?skuId=6441172&intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-gaming-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442484.p?skuId=6442484?intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-eagle-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442485.p?skuId=6442485?intl=nosplash'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
|
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
|
||||||
@@ -388,7 +420,7 @@ export const BestBuy: Store = {
|
|||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.com/site/msi-radeon-rx-6800-16g-16gb-gddr6-pci-express-4-0-graphics-card-black-black/6441020.p?skuId=6441020'
|
'https://www.bestbuy.com/site/msi-radeon-rx-6800-16g-16gb-gddr6-pci-express-4-0-graphics-card-black-black/6441020.p?skuId=6441020'
|
||||||
},
|
},
|
||||||
@@ -406,6 +438,13 @@ export const BestBuy: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.bestbuy.com/site/xfx-amd-radeon-rx-6800xt-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6441226.p?skuId=6441226'
|
'https://www.bestbuy.com/site/xfx-amd-radeon-rx-6800xt-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6441226.p?skuId=6441226'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
model: 'merc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/xfx-merc-319-amd-radeon-rx-6800xt-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6442585.p?skuId=6442585'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'corsair',
|
brand: 'corsair',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart',
|
cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart',
|
||||||
@@ -421,6 +460,38 @@ export const BestBuy: Store = {
|
|||||||
series: 'sf',
|
series: 'sf',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.com/site/corsair-sf-series-600w-atx12v-2-4-eps12v-2-92-sfx12v-80-plus-platinum-modular-power-supply-black/6351844.p?skuId=6351844'
|
'https://www.bestbuy.com/site/corsair-sf-series-600w-atx12v-2-4-eps12v-2-92-sfx12v-80-plus-platinum-modular-power-supply-black/6351844.p?skuId=6351844'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3060-ti-8gb-gddr6-pci-express-4-0-graphics-card-steel-and-black/6439402.p?skuId=6439402&intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-gaming-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442484.p?skuId=6442484&intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-eagle-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442485.p?skuId=6442485&intl=nosplash'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.bestbuy.com/site/msi-geforce-rtx-3060-ti-ventus-2x-oc-bv-8gb-gddr6-pci-express-4-0-graphics-card-black-black/6441172.p?skuId=6441172&intl=nosplash'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'bestbuy'
|
name: 'bestbuy'
|
||||||
|
|||||||
@@ -31,6 +31,10 @@ export const Box: Store = {
|
|||||||
titleSelector: '.p-list-section > h3 > a[href]'
|
titleSelector: '.p-list-section > h3 > a[href]'
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.box.co.uk/rtx-3070-graphics-cards'
|
url: 'https://www.box.co.uk/rtx-3070-graphics-cards'
|
||||||
@@ -42,6 +46,10 @@ export const Box: Store = {
|
|||||||
{
|
{
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.box.co.uk/rtx-3090-graphics-cards'
|
url: 'https://www.box.co.uk/rtx-3090-graphics-cards'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,9 +2,13 @@ import {Store} from './store';
|
|||||||
|
|
||||||
export const CanadaComputers: Store = {
|
export const CanadaComputers: Store = {
|
||||||
labels: {
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: 'div[class="pi-prod-availability"]',
|
||||||
|
text: ['Online In Stock']
|
||||||
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: 'div[class="pi-prod-availability"]',
|
container: 'div[class="pi-prod-availability"]',
|
||||||
text: ['not available online']
|
text: ['Not Available Online']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
@@ -13,371 +17,469 @@ export const CanadaComputers: Store = {
|
|||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181348'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181348&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183101'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183101&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183500'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183500&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183099'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183099&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183210'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183210&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183635'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183635&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual oc',
|
model: 'dual oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183636'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183636&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183637'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183637&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184168'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184168&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184167'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184167&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183561'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183561&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183208'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183208&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183560'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183560&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183638'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183638&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183498'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183498&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183209'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183209&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183100'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183100&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183499'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183499&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184743'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184743&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181376'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181376&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181842'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181842&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181348'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181348&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181354'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181354&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181416'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181416&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181375'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181375&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181420'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181420&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184837'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184837&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181415'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181415&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181353'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181353&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184743'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184743&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x',
|
model: 'ventus 3x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181347'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181347&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=182754'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=182754&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181797'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181797&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=182755'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=182755&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183098'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183098&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183510'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183510&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184166'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184166&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181798'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181798&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181841'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181841&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181854'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181854&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181413'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181413&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181419'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181419&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181351'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181351&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181350'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181350&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181414'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181414&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x',
|
model: 'ventus 3x',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181349'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181349&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181853'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181853&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183096'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183096&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181352'
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181352&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185086&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184759&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185087&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184760&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185751&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185752&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184431&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185988&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185987&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185408&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185407&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185406&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185405&language=en'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ko',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185168&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183432'
|
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183432&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183431'
|
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183431&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183430'
|
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183430&language=en'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183427'
|
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183427&language=en'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'canadacomputers',
|
name: 'canadacomputers',
|
||||||
|
|||||||
@@ -338,6 +338,48 @@ export const Caseking: Store = {
|
|||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.caseking.de/amd-ryzen-9-5950x-3-4-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-205.html'
|
'https://www.caseking.de/amd-ryzen-9-5950x-3-4-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-205.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro oc se',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-16g-16384-mb-gddr6-gcsp-215.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro oc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-se-16g-16384-mb-gddr6-gcsp-214.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-gaming-oc-16g-16384-mb-gddr6-gcgb-356.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-16g-16384-mb-gddr6-gcgb-357.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix lc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.caseking.de/asus-radeon-rx-6800-xt-rog-strix-lc-o16g-16384-mb-gddr6-gcas-416.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.caseking.de/asus-radeon-rx-6800-xt-tuf-o16g-16384-mb-gddr6-gcas-417.html'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'caseking'
|
name: 'caseking'
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Ccl: Store = {
|
export const Ccl: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#pnlAddToBasket',
|
container: '#pnlAddToBasket',
|
||||||
@@ -75,6 +76,21 @@ export const Ccl: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3090-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3090-Graphics-Cards/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-Graphics-Cards/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Comet: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.caption',
|
||||||
|
text: ['Aggiungi al carrello']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
cartUrl: 'https://www.comet.it/cart/insert/PSX01802A/online',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.comet.it/ps5/sony-playstation-5'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.comet.it/ps5/sony-playstation-5-digital-edition'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl: 'https://www.comet.it/cart/insert/MIS01077A/online',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.comet.it/xbox-serie-x/xbox-series-x'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
cartUrl: 'https://www.comet.it/cart/insert/MIS010761/online',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.comet.it/xbox-serie-x/xbox-series-s'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'comet'
|
||||||
|
};
|
||||||
@@ -13,6 +13,10 @@ export const Computeruniverse: Store = {
|
|||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-price',
|
container: '.product-price',
|
||||||
euroFormat: true
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.availability',
|
||||||
|
text: ['nicht verfügbar']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
@@ -552,6 +556,20 @@ export const Computeruniverse: Store = {
|
|||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.computeruniverse.net/de/amd-ryzen-9-5950x-box-ohne-kuehler'
|
'https://www.computeruniverse.net/de/amd-ryzen-9-5950x-box-ohne-kuehler'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.computeruniverse.net/de/sony-playstation-5-weiss-schwarz-825gb-ssd'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.computeruniverse.net/de/sony-playstation-5-digital-edition-weiss-schwarz-825gb-ssd'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'computeruniverse'
|
name: 'computeruniverse'
|
||||||
|
|||||||
@@ -61,6 +61,16 @@ export const Currys: Store = {
|
|||||||
urlSelector: 'a[href]'
|
urlSelector: 'a[href]'
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.currys.co.uk/gbuk/rtx-3060-ti/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313952/xx-criteria.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://www.currys.co.uk/gbuk/rtx-3070/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313849/xx-criteria.html'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
@@ -70,6 +80,11 @@ export const Currys: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.currys.co.uk/gbuk/rtx-3090/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313725/xx-criteria.html'
|
'https://www.currys.co.uk/gbuk/rtx-3090/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313725/xx-criteria.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.currys.co.uk/gbuk/rtx-3060-ti/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313952/xx-criteria.html'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -74,6 +74,21 @@ export const Ebuyer: Store = {
|
|||||||
urlSelector: 'a[href]'
|
urlSelector: 'a[href]'
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800-XT'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
@@ -88,6 +103,11 @@ export const Ebuyer: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3090'
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3090'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Elcorteingles: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
|
labels: {
|
||||||
|
// Captcha: {
|
||||||
|
// container: 'body',
|
||||||
|
// text: [
|
||||||
|
// 'geben sie die unten angezeigten zeichen ein',
|
||||||
|
// 'geben sie die zeichen unten ein'
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
inStock: [
|
||||||
|
{
|
||||||
|
container: '.product_detail-purchase.mb-2.c12 .js-add-cart-text',
|
||||||
|
text: ['a la cesta']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxPrice: {
|
||||||
|
container: '.product_detail-buy-price-container .price._big',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: [
|
||||||
|
{
|
||||||
|
container:
|
||||||
|
'.c12.mt-2.product_detail-add_to_cart.one_click_enabled .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
|
||||||
|
text: ['Agotado']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container:
|
||||||
|
'.product_detail-purchase.mb-2.c12 .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
|
||||||
|
text: ['No disponible']
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.elcorteingles.es/moda/A26324406/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.elcorteingles.es/videojuegos/A37046604'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.elcorteingles.es/videojuegos/A37046605'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.elcorteingles.es/videojuegos/A37047078'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.elcorteingles.es/videojuegos/A37047080'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'elcorteingles'
|
||||||
|
};
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Eprice: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.form_aggiungi_articolo',
|
||||||
|
text: ['AGGIUNGI AL CARRELLO']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '#PrezzoClasic span[class*="big"]',
|
||||||
|
euroFormat: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039974'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-ASUS/d-14042082'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-ASUS/d-14039878'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-ASUS/d-14039876'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039972'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039974'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039973'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3070',
|
||||||
|
url: 'https://www.eprice.it/schede-video-ZOTAC/d-13979806'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.eprice.it/playstation-5-SONY/d-13981612'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.eprice.it/playstation-5-SONY/d-13981613'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'eprice'
|
||||||
|
};
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const EuronicsDE: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.buy-btn--cart-text',
|
||||||
|
text: ['Warenkorb']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.price--content',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'.product--buybox .alert.is--error.is--rounded .alert--content',
|
||||||
|
text: [
|
||||||
|
'Artikel steht derzeit nicht zur Verfügung',
|
||||||
|
'Morgen im Laufe des Morgens und nur online unter'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.de/telefon-und-navigation/festnetz/schnurlose-telefone/kx-tg6721gb-schnurlostelefon-mit-anrufbeantworter-schwarz-4051168442801'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/xbox-series-x/spielekonsole/xbox-series-s-512gb-konsole-4061856838076'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/xbox-series-x/spielekonsole/xbox-series-x-1tb-konsole-4061856838045'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-digital-edition-konsole-4061856837833'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-konsole-4061856837826'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'euronics-de'
|
||||||
|
};
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Euronics: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.purchaseButtonsWidth',
|
||||||
|
text: ['Aggiungi al carrello']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.it/console/sony-computer/playstation-5/eProd202008906'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.it/console/sony-computer/playstation-5-digital-edition/eProd202008907'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.it/console/microsoft/xbox-series-x-1tb-it-italy-sxto/eProd202008981'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url:
|
||||||
|
'https://www.euronics.it/console/microsoft/xbox-series-s-512gb-it-italy-ltsn/eProd202008982'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'euronics'
|
||||||
|
};
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Expert: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
|
labels: {
|
||||||
|
inStock: [
|
||||||
|
{
|
||||||
|
container: 'span.widget-ArticleStatus-buttonText',
|
||||||
|
text: ['In den Warenkorb']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxPrice: {
|
||||||
|
container: '.widget-Container-subContent .widget-ArticlePrice-price',
|
||||||
|
euroFormat: false
|
||||||
|
},
|
||||||
|
outOfStock: [
|
||||||
|
{
|
||||||
|
container:
|
||||||
|
'span[style="font-size: 14pt;"] > span[style="color: #ff5e19;"]',
|
||||||
|
text: ['Das von Ihnen ausgewählte Produkt ist ausverkauft']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container: 'span.widget-ArticleStatus-statusPointText',
|
||||||
|
text: ['Artikel ist derzeit nicht verfügbar']
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.expert.de/shop/11364114744-ps4-pro-1tb-jet-black.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.expert.de/shop/11364129744-playstation-r-5.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.expert.de/shop/11364133744-playstation-r-5-digital-edition.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.expert.de/shop/11350018530-xbox-series-s.html'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'expert'
|
||||||
|
};
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const GamestopDE: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: [
|
||||||
|
{
|
||||||
|
container: '#btnAddToCart',
|
||||||
|
text: ['In den Warenkorb']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container: '#btnAddToCart',
|
||||||
|
text: ['Vorbestellen']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxPrice: {
|
||||||
|
container: '.buySection .prodPriceCont',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.megaButton',
|
||||||
|
text: ['Nicht verfügbar']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.gamestop.de/PS5/Games/58665'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.gamestop.de/PS5/Games/60315'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'gamestop-de',
|
||||||
|
successStatusCodes: [[0, 399], 404]
|
||||||
|
};
|
||||||
@@ -5,16 +5,23 @@ import {AlternateNL} from './alternate-nl';
|
|||||||
import {Amazon} from './amazon';
|
import {Amazon} from './amazon';
|
||||||
import {AmazonCa} from './amazon-ca';
|
import {AmazonCa} from './amazon-ca';
|
||||||
import {AmazonDe} from './amazon-de';
|
import {AmazonDe} from './amazon-de';
|
||||||
|
import {AmazonDeWarehouse} from './amazon-de-warehouse';
|
||||||
import {AmazonEs} from './amazon-es';
|
import {AmazonEs} from './amazon-es';
|
||||||
import {AmazonFr} from './amazon-fr';
|
import {AmazonFr} from './amazon-fr';
|
||||||
|
import {AmazonIt} from './amazon-it';
|
||||||
import {AmazonNl} from './amazon-nl';
|
import {AmazonNl} from './amazon-nl';
|
||||||
import {AmazonUk} from './amazon-uk';
|
import {AmazonUk} from './amazon-uk';
|
||||||
import {Amd} from './amd';
|
import {Amd} from './amd';
|
||||||
|
import {AmdCa} from './amd-ca';
|
||||||
import {AmdDe} from './amd-de';
|
import {AmdDe} from './amd-de';
|
||||||
|
import {AmdIt} from './amd-it';
|
||||||
|
import {AntOnline} from './antonline';
|
||||||
|
import {Argos} from './argos';
|
||||||
import {Aria} from './aria';
|
import {Aria} from './aria';
|
||||||
import {Arlt} from './arlt';
|
import {Arlt} from './arlt';
|
||||||
import {Asus} from './asus';
|
import {Asus} from './asus';
|
||||||
import {AsusDe} from './asus-de';
|
import {AsusDe} from './asus-de';
|
||||||
|
import {Awd} from './awd';
|
||||||
import {Azerty} from './azerty';
|
import {Azerty} from './azerty';
|
||||||
import {BAndH} from './bandh';
|
import {BAndH} from './bandh';
|
||||||
import {BestBuy} from './bestbuy';
|
import {BestBuy} from './bestbuy';
|
||||||
@@ -23,6 +30,7 @@ import {Box} from './box';
|
|||||||
import {CanadaComputers} from './canadacomputers';
|
import {CanadaComputers} from './canadacomputers';
|
||||||
import {Caseking} from './caseking';
|
import {Caseking} from './caseking';
|
||||||
import {Ccl} from './ccl';
|
import {Ccl} from './ccl';
|
||||||
|
import {Comet} from './comet';
|
||||||
import {Computeruniverse} from './computeruniverse';
|
import {Computeruniverse} from './computeruniverse';
|
||||||
import {Coolblue} from './coolblue';
|
import {Coolblue} from './coolblue';
|
||||||
import {Coolmod} from './coolmod';
|
import {Coolmod} from './coolmod';
|
||||||
@@ -30,13 +38,20 @@ import {Corsair} from './corsair';
|
|||||||
import {Currys} from './currys';
|
import {Currys} from './currys';
|
||||||
import {Cyberport} from './cyberport';
|
import {Cyberport} from './cyberport';
|
||||||
import {Ebuyer} from './ebuyer';
|
import {Ebuyer} from './ebuyer';
|
||||||
|
import {Elcorteingles} from './elcorteingles';
|
||||||
|
import {Eprice} from './eprice';
|
||||||
|
import {Euronics} from './euronics';
|
||||||
|
import {EuronicsDE} from './euronics-de';
|
||||||
import {Evga} from './evga';
|
import {Evga} from './evga';
|
||||||
import {EvgaEu} from './evga-eu';
|
import {EvgaEu} from './evga-eu';
|
||||||
|
import {Expert} from './expert';
|
||||||
import {Galaxus} from './galaxus';
|
import {Galaxus} from './galaxus';
|
||||||
import {Game} from './game';
|
import {Game} from './game';
|
||||||
import {Gamestop} from './gamestop';
|
import {Gamestop} from './gamestop';
|
||||||
|
import {GamestopDE} from './gamestop-de';
|
||||||
import {Kabum} from './kabum';
|
import {Kabum} from './kabum';
|
||||||
import {Mediamarkt} from './mediamarkt';
|
import {Mediamarkt} from './mediamarkt';
|
||||||
|
import {Medimax} from './medimax';
|
||||||
import {MemoryExpress} from './memoryexpress';
|
import {MemoryExpress} from './memoryexpress';
|
||||||
import {MicroCenter} from './microcenter';
|
import {MicroCenter} from './microcenter';
|
||||||
import {Mindfactory} from './mindfactory';
|
import {Mindfactory} from './mindfactory';
|
||||||
@@ -47,6 +62,7 @@ import {Novatech} from './novatech';
|
|||||||
import {Nvidia} from './nvidia';
|
import {Nvidia} from './nvidia';
|
||||||
import {NvidiaApi} from './nvidia-api';
|
import {NvidiaApi} from './nvidia-api';
|
||||||
import {OfficeDepot} from './officedepot';
|
import {OfficeDepot} from './officedepot';
|
||||||
|
import {Otto} from './otto';
|
||||||
import {Overclockers} from './overclockers';
|
import {Overclockers} from './overclockers';
|
||||||
import {PCComponentes} from './pccomponentes';
|
import {PCComponentes} from './pccomponentes';
|
||||||
import {PlayStation} from './playstation';
|
import {PlayStation} from './playstation';
|
||||||
@@ -55,12 +71,16 @@ import {ProshopDE} from './proshop-de';
|
|||||||
import {ProshopDK} from './proshop-dk';
|
import {ProshopDK} from './proshop-dk';
|
||||||
import {Saturn} from './saturn';
|
import {Saturn} from './saturn';
|
||||||
import {Scan} from './scan';
|
import {Scan} from './scan';
|
||||||
|
import {SmythsToys} from './smythstoys';
|
||||||
|
import {Spielegrotte} from './spielegrotte';
|
||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
import {Target} from './target';
|
import {Target} from './target';
|
||||||
import {TopAchat} from './topachat';
|
import {TopAchat} from './topachat';
|
||||||
|
import {Unieuro} from './unieuro';
|
||||||
import {Very} from './very';
|
import {Very} from './very';
|
||||||
import {VsGamers} from './vsgamers';
|
import {VsGamers} from './vsgamers';
|
||||||
import {Walmart} from './walmart';
|
import {Walmart} from './walmart';
|
||||||
|
import {Wipoid} from './wipoid';
|
||||||
import {Xbox} from './xbox';
|
import {Xbox} from './xbox';
|
||||||
import {Zotac} from './zotac';
|
import {Zotac} from './zotac';
|
||||||
import {logger} from '../../logger';
|
import {logger} from '../../logger';
|
||||||
@@ -72,16 +92,23 @@ export const storeList = new Map([
|
|||||||
[Amazon.name, Amazon],
|
[Amazon.name, Amazon],
|
||||||
[AmazonCa.name, AmazonCa],
|
[AmazonCa.name, AmazonCa],
|
||||||
[AmazonDe.name, AmazonDe],
|
[AmazonDe.name, AmazonDe],
|
||||||
|
[AmazonDeWarehouse.name, AmazonDeWarehouse],
|
||||||
[AmazonEs.name, AmazonEs],
|
[AmazonEs.name, AmazonEs],
|
||||||
[AmazonFr.name, AmazonFr],
|
[AmazonFr.name, AmazonFr],
|
||||||
[AmazonNl.name, AmazonNl],
|
[AmazonNl.name, AmazonNl],
|
||||||
[AmazonUk.name, AmazonUk],
|
[AmazonUk.name, AmazonUk],
|
||||||
|
[AmazonIt.name, AmazonIt],
|
||||||
[Amd.name, Amd],
|
[Amd.name, Amd],
|
||||||
|
[AmdCa.name, AmdCa],
|
||||||
[AmdDe.name, AmdDe],
|
[AmdDe.name, AmdDe],
|
||||||
|
[AmdIt.name, AmdIt],
|
||||||
|
[AntOnline.name, AntOnline],
|
||||||
|
[Argos.name, Argos],
|
||||||
[Aria.name, Aria],
|
[Aria.name, Aria],
|
||||||
[Arlt.name, Arlt],
|
[Arlt.name, Arlt],
|
||||||
[Asus.name, Asus],
|
[Asus.name, Asus],
|
||||||
[AsusDe.name, AsusDe],
|
[AsusDe.name, AsusDe],
|
||||||
|
[Awd.name, Awd],
|
||||||
[Azerty.name, Azerty],
|
[Azerty.name, Azerty],
|
||||||
[BAndH.name, BAndH],
|
[BAndH.name, BAndH],
|
||||||
[BestBuy.name, BestBuy],
|
[BestBuy.name, BestBuy],
|
||||||
@@ -90,6 +117,7 @@ export const storeList = new Map([
|
|||||||
[Caseking.name, Caseking],
|
[Caseking.name, Caseking],
|
||||||
[CanadaComputers.name, CanadaComputers],
|
[CanadaComputers.name, CanadaComputers],
|
||||||
[Ccl.name, Ccl],
|
[Ccl.name, Ccl],
|
||||||
|
[Comet.name, Comet],
|
||||||
[Computeruniverse.name, Computeruniverse],
|
[Computeruniverse.name, Computeruniverse],
|
||||||
[Coolblue.name, Coolblue],
|
[Coolblue.name, Coolblue],
|
||||||
[Coolmod.name, Coolmod],
|
[Coolmod.name, Coolmod],
|
||||||
@@ -97,13 +125,20 @@ export const storeList = new Map([
|
|||||||
[Currys.name, Currys],
|
[Currys.name, Currys],
|
||||||
[Cyberport.name, Cyberport],
|
[Cyberport.name, Cyberport],
|
||||||
[Ebuyer.name, Ebuyer],
|
[Ebuyer.name, Ebuyer],
|
||||||
|
[Elcorteingles.name, Elcorteingles],
|
||||||
|
[Eprice.name, Eprice],
|
||||||
|
[Euronics.name, Euronics],
|
||||||
|
[EuronicsDE.name, EuronicsDE],
|
||||||
[Evga.name, Evga],
|
[Evga.name, Evga],
|
||||||
[EvgaEu.name, EvgaEu],
|
[EvgaEu.name, EvgaEu],
|
||||||
|
[Expert.name, Expert],
|
||||||
[Galaxus.name, Galaxus],
|
[Galaxus.name, Galaxus],
|
||||||
[Game.name, Game],
|
[Game.name, Game],
|
||||||
[Gamestop.name, Gamestop],
|
[Gamestop.name, Gamestop],
|
||||||
|
[GamestopDE.name, GamestopDE],
|
||||||
[Kabum.name, Kabum],
|
[Kabum.name, Kabum],
|
||||||
[Mediamarkt.name, Mediamarkt],
|
[Mediamarkt.name, Mediamarkt],
|
||||||
|
[Medimax.name, Medimax],
|
||||||
[MemoryExpress.name, MemoryExpress],
|
[MemoryExpress.name, MemoryExpress],
|
||||||
[MicroCenter.name, MicroCenter],
|
[MicroCenter.name, MicroCenter],
|
||||||
[Mindfactory.name, Mindfactory],
|
[Mindfactory.name, Mindfactory],
|
||||||
@@ -114,6 +149,7 @@ export const storeList = new Map([
|
|||||||
[Nvidia.name, Nvidia],
|
[Nvidia.name, Nvidia],
|
||||||
[NvidiaApi.name, NvidiaApi],
|
[NvidiaApi.name, NvidiaApi],
|
||||||
[OfficeDepot.name, OfficeDepot],
|
[OfficeDepot.name, OfficeDepot],
|
||||||
|
[Otto.name, Otto],
|
||||||
[Overclockers.name, Overclockers],
|
[Overclockers.name, Overclockers],
|
||||||
[PCComponentes.name, PCComponentes],
|
[PCComponentes.name, PCComponentes],
|
||||||
[PlayStation.name, PlayStation],
|
[PlayStation.name, PlayStation],
|
||||||
@@ -122,11 +158,15 @@ export const storeList = new Map([
|
|||||||
[ProshopDK.name, ProshopDK],
|
[ProshopDK.name, ProshopDK],
|
||||||
[Saturn.name, Saturn],
|
[Saturn.name, Saturn],
|
||||||
[Scan.name, Scan],
|
[Scan.name, Scan],
|
||||||
|
[SmythsToys.name, SmythsToys],
|
||||||
|
[Spielegrotte.name, Spielegrotte],
|
||||||
[Target.name, Target],
|
[Target.name, Target],
|
||||||
[TopAchat.name, TopAchat],
|
[TopAchat.name, TopAchat],
|
||||||
|
[Unieuro.name, Unieuro],
|
||||||
[Very.name, Very],
|
[Very.name, Very],
|
||||||
[VsGamers.name, VsGamers],
|
[VsGamers.name, VsGamers],
|
||||||
[Walmart.name, Walmart],
|
[Walmart.name, Walmart],
|
||||||
|
[Wipoid.name, Wipoid],
|
||||||
[Xbox.name, Xbox],
|
[Xbox.name, Xbox],
|
||||||
[Zotac.name, Zotac]
|
[Zotac.name, Zotac]
|
||||||
]);
|
]);
|
||||||
@@ -192,7 +232,8 @@ function warnIfStoreDeprecated(store: Store) {
|
|||||||
switch (store.name) {
|
switch (store.name) {
|
||||||
case 'nvidia':
|
case 'nvidia':
|
||||||
case 'nvidia-api':
|
case 'nvidia-api':
|
||||||
logger.warn(`${store.name} is deprecated in favor of bestbuy`);
|
if (config.store.country === 'usa')
|
||||||
|
logger.warn(`${store.name} is deprecated in favor of bestbuy`);
|
||||||
break;
|
break;
|
||||||
case 'evga':
|
case 'evga':
|
||||||
logger.warn(
|
logger.warn(
|
||||||
@@ -214,6 +255,7 @@ export function updateStores() {
|
|||||||
stores.set(storeData.name, store);
|
stores.set(storeData.name, store);
|
||||||
store.minPageSleep = storeData.minPageSleep;
|
store.minPageSleep = storeData.minPageSleep;
|
||||||
store.maxPageSleep = storeData.maxPageSleep;
|
store.maxPageSleep = storeData.maxPageSleep;
|
||||||
|
store.proxyList = storeData.proxyList;
|
||||||
} else {
|
} else {
|
||||||
logger.warn(`No store named ${storeData.name}, skipping.`);
|
logger.warn(`No store named ${storeData.name}, skipping.`);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Mediamarkt: Store = {
|
export const Mediamarkt: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'p',
|
||||||
text: ['Das ging uns leider zu schnell.']
|
text: ['Das ging uns leider zu schnell.']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
@@ -13,11 +14,11 @@ export const Mediamarkt: Store = {
|
|||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '#root',
|
container: '#root',
|
||||||
text: ['dieser artikel ist aktuell nicht verfügbar.']
|
text: ['Dieser artikel ist aktuell nicht verfügbar.']
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '#root',
|
container: '#root',
|
||||||
text: ['leider keine Lieferung möglich']
|
text: ['Leider keine Lieferung möglich']
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -26,7 +27,19 @@ export const Mediamarkt: Store = {
|
|||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.mediamarkt.de/de/product/-2592355.html'
|
url: 'https://www.mediamarkt.de/de/product/-2641856.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.mediamarkt.de/de/product/-2701239.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.mediamarkt.de/de/product/-2704436.html'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -249,6 +262,18 @@ export const Mediamarkt: Store = {
|
|||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.mediamarkt.de/de/product/-2661939.html'
|
url: 'https://www.mediamarkt.de/de/product/-2661939.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.mediamarkt.de/de/product/-2677360.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.mediamarkt.de/de/product/-2677359.html'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'mediamarkt'
|
name: 'mediamarkt'
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Medimax: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: [
|
||||||
|
{
|
||||||
|
container: '.product-cart-add-to-cart-button',
|
||||||
|
text: ['In den Warenkorb']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container: '.stock-message',
|
||||||
|
text: ['Lieferung in']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxPrice: {
|
||||||
|
container: '.priceOfProduct',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.content .large',
|
||||||
|
text: ['Ihr MEDIMAX Team']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.medimax.de/p/1311642/drivesmart-51-lmt-d-ce'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.medimax.de/p/1315336/play-station-5-825gb-ssd'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.medimax.de/p/1315337/play-station-5-digital-edition-825gb-ssd'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'medimax'
|
||||||
|
};
|
||||||
@@ -10,7 +10,7 @@ export const MemoryExpress: Store = {
|
|||||||
outOfStock: {
|
outOfStock: {
|
||||||
container:
|
container:
|
||||||
'.c-capr-inventory-selector__details-online .c-capr-inventory-store__availability',
|
'.c-capr-inventory-selector__details-online .c-capr-inventory-store__availability',
|
||||||
text: ['Out of Stock']
|
text: ['Out of Stock', 'Backorder']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
@@ -20,6 +20,84 @@ 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: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114969'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114970'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114818'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114786'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114819'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114923'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114927'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114926'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00115013'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114925'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114924'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00115014'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'ko',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114888'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
@@ -43,6 +121,96 @@ export const MemoryExpress: Store = {
|
|||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.memoryexpress.com/Products/MX00114455'
|
url: 'https://www.memoryexpress.com/Products/MX00114455'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114996'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114687'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00113955'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00113954'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 black',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114094'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114095'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114003'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114313'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00113972'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00113956'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00113957'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114024'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114312'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114092'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus xtreme',
|
||||||
|
series: '3080',
|
||||||
|
url: 'https://www.memoryexpress.com/Products/MX00114404'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'memoryexpress',
|
name: 'memoryexpress',
|
||||||
|
|||||||
@@ -72,6 +72,24 @@ for (const microCenterLocation of microCenterLocations) {
|
|||||||
series: '3080',
|
series: '3080',
|
||||||
url: `https://www.microcenter.com/product/628303/asus-geforce-rtx-3080-tuf-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
url: `https://www.microcenter.com/product/628303/asus-geforce-rtx-3080-tuf-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url: `https://www.microcenter.com/product/628686/asus-geforce-rtx-3080-strix-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3070',
|
||||||
|
url: `https://www.microcenter.com/product/630686/asus-geforce-rtx-3070-rog-strix-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3070',
|
||||||
|
url: `https://www.microcenter.com/product/630684/asus-geforce-rtx-3070-tuf-overclocked-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
@@ -84,12 +102,72 @@ for (const microCenterLocation of microCenterLocations) {
|
|||||||
series: '3080',
|
series: '3080',
|
||||||
url: `https://www.microcenter.com/product/628340/evga-geforce-rtx-3080-xc3-black-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
url: `https://www.microcenter.com/product/628340/evga-geforce-rtx-3080-xc3-black-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 black',
|
||||||
|
series: '3070',
|
||||||
|
url: `https://www.microcenter.com/product/630579/evga-geforce-rtx-3070-xc3-black-gaming-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: `https://www.microcenter.com/product/628607/zotac-geforce-rtx-3080-trinity-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
url: `https://www.microcenter.com/product/628607/zotac-geforce-rtx-3080-trinity-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'nvidia',
|
||||||
|
model: 'founders edition',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631716/nvidia-geforce-rtx-3060ti-ti-founders-edition-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631531/msi-geforce-rtx-3060ti-ti-gaming-x-trio-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631532/msi-geforce-rtx-3060ti-ti-ventus-2x-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631926/evga-geforce-rtx-3060ti-ti-ftw-ultra-gaming-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631473/asus-geforce-rtx-3060ti-ti-dual-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631469/asus-geforce-rtx-3060ti-ti-tuf-gaming-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631283/asus-geforce-rtx-3060ti-ti-rog-strix-overclocked-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url: `https://www.microcenter.com/product/631742/gigabyte-geforce-rtx-3060ti-ti-gaming-overclocked-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle',
|
||||||
|
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}`
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
|
|||||||
@@ -417,6 +417,126 @@ export const NeweggCa: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://www.newegg.ca/evga-geforce-rtx-3070-08g-p5-3753-kr/p/N82E16814487529'
|
'https://www.newegg.ca/evga-geforce-rtx-3070-08g-p5-3753-kr/p/N82E16814487529'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-471',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-tuf-rtx3060ti-o8g-gaming/p/N82E16814126471'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-377',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306tgaming-oc-8gd/p/N82E16814932377'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-375',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306taorus-m-8gd/p/N82E16814932375'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-468',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-dual-rtx3060ti-o8g/p/N82E16814126468'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-470',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-rog-strix-rtx3060ti-o8g-gaming/p/N82E16814126470'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
itemNumber: '14-487-535',
|
||||||
|
model: 'xc gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/evga-geforce-rtx-3060-ti-08g-p5-3663-kr/p/N82E16814487535'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-376',
|
||||||
|
model: 'gaming oc pro',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306tgamingoc-pro-8gd/p/N82E16814932376'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
itemNumber: '14-500-507',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
itemNumber: '14-487-537',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/evga-geforce-rtx-3060-ti-08g-p5-3667-kr/p/N82E16814487537'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-612',
|
||||||
|
model: 'ventus 2x',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-ti-rtx-3060-ti-ventus-2x-oc/p/N82E16814137612'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
itemNumber: '14-126-474',
|
||||||
|
model: 'ko',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
itemNumber: '14-137-611',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/msi-geforce-rtx-3060-ti-rtx-3060-ti-gaming-x-trio/p/N82E16814137611'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-378',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-oc-8gd/p/N82E16814932378'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
itemNumber: '14-932-379',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-8gd/p/N82E16814932379'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
itemNumber: '14-500-506',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/zotac-geforce-rtx-3060-ti-zt-a30610e-10m/p/N82E16814500506'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
itemNumber: '19-113-663',
|
itemNumber: '19-113-663',
|
||||||
@@ -521,6 +641,97 @@ export const NeweggCa: Store = {
|
|||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
'https://www.newegg.com/gigabyte-radeon-rx-6800-xt-gv-r68xt-16gc-b/p/N82E16814932373'
|
'https://www.newegg.com/gigabyte-radeon-rx-6800-xt-gv-r68xt-16gc-b/p/N82E16814932373'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/sapphire-radeon-rx-6800-11305-01-20g/p/N82E16814202392'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
model: 'phantom gaming',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asrock-radeon-rx-6800-xt-rx6800xt-pgd-16go/p/N82E16814930049'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-radeon-rx-6800-xt-tuf-rx6800xt-o16g-gaming/p/N82E16814126476'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
model: 'merc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/xfx-radeon-rx-6800-xt-rx-68xtacbd9/p/N82E16814150844'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-radeon-rx-6800-rog-strix-rx6800-o16g-gaming/p/N82E16814126477'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
model: 'challenger',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asrock-radeon-rx-6800-rx6800-clp-16go/p/N82E16814930047'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/sapphire-radeon-rx-6800-xt-11304-01-20g/p/N82E16814202390'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-radeon-rx-6800-xt-rog-strix-lc-rx6800xt-o16g-gaming/p/N82E16814126475'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'powercolor',
|
||||||
|
model: 'red devil',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/powercolor-radeon-rx-6800-xt-axrx-6800xt-16gbd6-2dhce-oc/p/N82E16814131767'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/sapphire-radeon-rx-6800-xt-11304-02-20g/p/N82E16814202391'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asus-radeon-rx-6800-tuf-rx6800-o16g-gaming/p/N82E16814126478'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
model: 'taichi',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asrock-radeon-rx-6800-xt-rx6800xt-tcx-16go/p/N82E16814930050'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
model: 'phantom gaming',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.ca/asrock-radeon-rx-6800-rx6800-pgd-16go/p/N82E16814930048'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'newegg-ca',
|
name: 'newegg-ca',
|
||||||
|
|||||||
+281
-4
@@ -8,12 +8,12 @@ export const Newegg: Store = {
|
|||||||
text: ['are you a human?']
|
text: ['are you a human?']
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: 'div#ProductBuy .btn-primary',
|
container: '#ProductBuy',
|
||||||
text: ['add to cart']
|
text: ['add to cart']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div#app div.product-price > ul > li.price-current > strong',
|
container:
|
||||||
euroFormat: false
|
'#app > div.page-content > div.page-section > div > div > div.row-side > div.product-buy-box > div:nth-child(3) > div.product-price > ul > li.price-current'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
@@ -570,7 +570,7 @@ export const Newegg: Store = {
|
|||||||
itemNumber: '19-113-665',
|
itemNumber: '19-113-665',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.newegg.com/amd-ryzen-9-5900x/p/N82E16819113665'
|
url: 'https://www.newegg.com/amd-ryzen-7-5800x/p/N82E16819113665'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
@@ -583,18 +583,24 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16868105273',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.newegg.com/p/N82E16868105273'
|
url: 'https://www.newegg.com/p/N82E16868105273'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16868105274',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.newegg.com/p/N82E16868105274'
|
url: 'https://www.newegg.com/p/N82E16868105274'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932373',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
@@ -602,6 +608,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137607',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
@@ -609,6 +617,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202388',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
@@ -616,6 +626,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asrock',
|
brand: 'asrock',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930045',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
@@ -623,6 +635,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126472',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
@@ -630,6 +644,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126473',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
@@ -637,6 +653,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asrock',
|
brand: 'asrock',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930046',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
@@ -644,6 +662,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932374',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
@@ -651,6 +671,8 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202389',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
@@ -658,10 +680,265 @@ export const Newegg: Store = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137608',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.newegg.com/msi-radeon-rx-6800-rx-6800-16g/p/N82E16814137608'
|
'https://www.newegg.com/msi-radeon-rx-6800-rx-6800-16g/p/N82E16814137608'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930047',
|
||||||
|
model: 'challenger',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asrock-radeon-rx-6800-rx6800-clp-16go/p/N82E16814930047'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930048',
|
||||||
|
model: 'phantom gaming',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asrock-radeon-rx-6800-rx6800-pgd-16go/p/N82E16814930048'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930049',
|
||||||
|
model: 'phantom gaming',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6800xt-pgd-16go/p/N82E16814930049'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asrock',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930050',
|
||||||
|
model: 'taichi',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6800xt-tcx-16go/p/N82E16814930050'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126478',
|
||||||
|
model: 'tuf',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-radeon-rx-6800-tuf-rx6800-o16g-gaming/p/N82E16814126478'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126476',
|
||||||
|
model: 'tuf',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-radeon-rx-6800-xt-tuf-rx6800xt-o16g-gaming/p/N82E16814126476'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126477',
|
||||||
|
model: 'strix',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-radeon-rx-6800-rog-strix-rx6800-o16g-gaming/p/N82E16814126477'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126475',
|
||||||
|
model: 'strix lc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-radeon-rx-6800-xt-rog-strix-lc-rx6800xt-o16g-gaming/p/N82E16814126475'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202391',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/sapphire-radeon-rx-6800-xt-11304-02-20g/p/N82E16814202391'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202390',
|
||||||
|
model: 'nitro+',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/sapphire-radeon-rx-6800-xt-11304-01-20g/p/N82E16814202390'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'xfx',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814150844',
|
||||||
|
model: 'merc',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/xfx-radeon-rx-6800-xt-rx-68xtacbd9/p/N82E16814150844'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16817139080',
|
||||||
|
model: '750 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/corsair-sf750-cp-9020186-na-750w/p/N82E16817139080'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16817139242',
|
||||||
|
model: '600 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/corsair-sf-series-sf600-cp-9020182-na-600w/p/N82E16817139242'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126470',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-ti-rog-strix-rtx3060ti-o8g-gaming/p/N82E16814126470'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137611',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-ti-rtx-3060-ti-gaming-x-trio/p/N82E16814137611'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500507',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126471',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-ti-tuf-rtx3060ti-o8g-gaming/p/N82E16814126471'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487535',
|
||||||
|
model: 'xc3',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/evga-geforce-rtx-3060-ti-08g-p5-3663-kr/p/N82E16814487535'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126468',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-ti-dual-rtx3060ti-o8g/p/N82E16814126468'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137612',
|
||||||
|
model: 'ventus 2x oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/msi-geforce-rtx-3060-ti-rtx-3060-ti-ventus-2x-oc/p/N82E16814137612'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487537',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/evga-geforce-rtx-3060-ti-08g-p5-3667-kr/p/N82E16814487537'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932375',
|
||||||
|
model: 'aorus',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306taorus-m-8gd/p/N82E16814932375'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932376',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306tgamingoc-pro-8gd/p/N82E16814932376'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932379',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-8gd/p/N82E16814932379'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932377',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306tgaming-oc-8gd/p/N82E16814932377'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500506',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/zotac-geforce-rtx-3060-ti-zt-a30610e-10m/p/N82E16814500506'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932378',
|
||||||
|
model: 'eagle',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-oc-8gd/p/N82E16814932378'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
cartUrl:
|
||||||
|
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126474',
|
||||||
|
model: 'gaming',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.newegg.com/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'newegg',
|
name: 'newegg',
|
||||||
|
|||||||
@@ -66,6 +66,11 @@ export const Novatech: Store = {
|
|||||||
urlSelector: 'a[href]'
|
urlSelector: 'a[href]'
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3060ti/?i=200'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
@@ -75,6 +80,11 @@ export const Novatech: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3090/?i=200'
|
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3090/?i=200'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3060ti/'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Otto: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: [
|
||||||
|
{
|
||||||
|
container:
|
||||||
|
'button.prd_ordering__button.p_btn150--1st.js_product_addToBasket',
|
||||||
|
text: ['In den Warenkorb']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxPrice: {
|
||||||
|
container: '#normalPriceAmount',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: 'div.p_message.p_message--hint > strong',
|
||||||
|
text: ['Deinen gewünschten Artikel können wir leider nicht mehr liefern']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.otto.de/p/playstation-5-medienfernbedienung-1170617135#variationId=1170617136'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'.js_shortInfo__variationName.prd_shortInfo__variationName',
|
||||||
|
text: ['konsole']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.otto.de/p/playstation-5-1136008456/#variationId=1136008459'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'.js_shortInfo__variationName.prd_shortInfo__variationName',
|
||||||
|
text: ['konsole']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.otto.de/p/playstation-5-1154028000#variationId=1154028001'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container:
|
||||||
|
'.js_shortInfo__variationName.prd_shortInfo__variationName',
|
||||||
|
text: ['konsole']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.otto.de/p/playstation-5-digital-edition-1161042793#variationId=1161042794'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url:
|
||||||
|
'https://www.otto.de/p/xbox-series-s-1229056876/#variationId=1229056877'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url:
|
||||||
|
'https://www.otto.de/p/xbox-series-x-1229057353#variationId=1229057354'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'otto'
|
||||||
|
};
|
||||||
@@ -61,6 +61,21 @@ export const Overclockers: Store = {
|
|||||||
titleSelector: 'a[href].producttitles'
|
titleSelector: 'a[href].producttitles'
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/amd/radeon-rx-6800-series'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/amd/radeon-rx-6800-xt-series'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3060-ti'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
@@ -78,6 +93,11 @@ export const Overclockers: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3090'
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3090'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3060-ti'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,26 +1,45 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Saturn: Store = {
|
export const Saturn: Store = {
|
||||||
|
backoffStatusCodes: [403, 429, 503],
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'p',
|
||||||
text: ['Das ging uns leider zu schnell.']
|
text: ['Das ging uns leider zu schnell.']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[font-family="price"]',
|
container: 'span[font-family="price"]',
|
||||||
euroFormat: false // Note: Saturn uses non-euroFromat as price seperator
|
euroFormat: false
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: [
|
||||||
container: '#root',
|
{
|
||||||
text: ['dieser artikel ist aktuell nicht verfügbar.']
|
container: '#root',
|
||||||
}
|
text: ['Dieser artikel ist aktuell nicht verfügbar.']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
container: '#root',
|
||||||
|
text: ['Leider keine Lieferung möglich']
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.saturn.de/de/product/-2592355.html'
|
url: 'https://www.saturn.de/de/product/-2641856.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'dual',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.saturn.de/de/product/-2701239.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3060ti',
|
||||||
|
url: 'https://www.saturn.de/de/product/-2704436.html'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
@@ -171,6 +190,18 @@ export const Saturn: Store = {
|
|||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.saturn.de/de/product/-2661939.html'
|
url: 'https://www.saturn.de/de/product/-2661939.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url: 'https://www.saturn.de/de/product/-2677360.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url: 'https://www.saturn.de/de/product/-2677359.html'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'saturn'
|
name: 'saturn'
|
||||||
|
|||||||
+53
-1
@@ -43,6 +43,48 @@ export const Scan: Store = {
|
|||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.scan.co.uk/products/playstation-5-digital-edition'
|
url: 'https://www.scan.co.uk/products/playstation-5-digital-edition'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'powercolor',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/products/powercolor-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/products/sapphire-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams-1815mhz-gpu'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/products/asus-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams-1815mhz-gpu-2105mhz'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/products/msi-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams-1700mhz-gpu'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'powercolor',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/products/powercolor-radeon-rx-6800-xt-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-4608-streams'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sapphire',
|
||||||
|
model: 'amd reference',
|
||||||
|
series: 'rx6800xt',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/products/sapphire-radeon-rx-6800-xt-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-4608-streams-2015mhz'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
@@ -74,13 +116,18 @@ export const Scan: Store = {
|
|||||||
],
|
],
|
||||||
linksBuilder: {
|
linksBuilder: {
|
||||||
builder: getProductLinksBuilder({
|
builder: getProductLinksBuilder({
|
||||||
productsSelector: 'ul.productColumns li.product',
|
productsSelector: 'div.productList ul.productColumns li.product',
|
||||||
sitePrefix: 'https://www.scan.co.uk',
|
sitePrefix: 'https://www.scan.co.uk',
|
||||||
titleSelector: '.details .description',
|
titleSelector: '.details .description',
|
||||||
urlSelector: 'a[href]'
|
urlSelector: 'a[href]'
|
||||||
}),
|
}),
|
||||||
ttl: 300000,
|
ttl: 300000,
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/geforce-rtx-3060-ti-graphics-cards'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
@@ -95,6 +142,11 @@ export const Scan: Store = {
|
|||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/nvidia-geforce-rtx-3090-graphics-cards'
|
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/nvidia-geforce-rtx-3090-graphics-cards'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/geforce-rtx-3060-ti-graphics-cards'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const SmythsToys: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#addToCartButton',
|
||||||
|
text: ['add to basket']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '.price_tag',
|
||||||
|
euroFormat: false
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.instoreMessage',
|
||||||
|
text: ['out of stock']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/video-games/call-of-duty-video-games/call-of-duty-black-ops-cold-war/call-of-duty-black-ops-cold-war-ps5/p/191951'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/playstation-5/playstation-5-consoles/playstation-5-console/p/191259'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/playstation-5/playstation-5-consoles/playstation-5-digital-edition-console/p/191430'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'smythstoys'
|
||||||
|
};
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Spielegrotte: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: [
|
||||||
|
{
|
||||||
|
container:
|
||||||
|
'html > body > table > tbody > tr > td > div > table > tbody > tr > td > center > table > tbody > tr > td > a.klein > img',
|
||||||
|
text: ['']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
maxPrice: {
|
||||||
|
container:
|
||||||
|
'html > body > table > tbody > tr > td > div > table > tbody > tr > td > center > table > tbody > tr > td > font > b',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container:
|
||||||
|
'html > body > table > tbody > tr > td > div > table > tbody > tr > td > center > font > b',
|
||||||
|
text: ['Dieses Produkt ist leider neu nicht mehr verfügbar']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.spielegrotte.de/index.php?kat=100056&anr=54288'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url: 'https://www.spielegrotte.de/index.php?kat=100100&anr=56005'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url: 'https://www.spielegrotte.de/index.php?kat=100100&anr=56006'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'spielegrotte'
|
||||||
|
};
|
||||||
@@ -34,6 +34,7 @@ export type Brand =
|
|||||||
|
|
||||||
export type Series =
|
export type Series =
|
||||||
| 'test:series'
|
| 'test:series'
|
||||||
|
| '3060ti'
|
||||||
| '3070'
|
| '3070'
|
||||||
| '3080'
|
| '3080'
|
||||||
| '3090'
|
| '3090'
|
||||||
@@ -64,6 +65,7 @@ export type Model =
|
|||||||
| 'aorus master'
|
| 'aorus master'
|
||||||
| 'aorus xtreme'
|
| 'aorus xtreme'
|
||||||
| 'aorus'
|
| 'aorus'
|
||||||
|
| 'challenger'
|
||||||
| 'dual fan'
|
| 'dual fan'
|
||||||
| 'dual oc'
|
| 'dual oc'
|
||||||
| 'dual'
|
| 'dual'
|
||||||
@@ -74,6 +76,7 @@ export type Model =
|
|||||||
| 'ftw3'
|
| 'ftw3'
|
||||||
| 'gamerock oc'
|
| 'gamerock oc'
|
||||||
| 'gaming oc'
|
| 'gaming oc'
|
||||||
|
| 'gaming oc pro'
|
||||||
| 'gaming pro oc'
|
| 'gaming pro oc'
|
||||||
| 'gaming pro'
|
| 'gaming pro'
|
||||||
| 'gaming x trio'
|
| 'gaming x trio'
|
||||||
@@ -82,19 +85,26 @@ export type Model =
|
|||||||
| 'ichill x2'
|
| 'ichill x2'
|
||||||
| 'ichill x3'
|
| 'ichill x3'
|
||||||
| 'ichill x4'
|
| 'ichill x4'
|
||||||
|
| 'ko'
|
||||||
|
| 'nitro+'
|
||||||
| 'nitro oc se'
|
| 'nitro oc se'
|
||||||
| 'nitro oc'
|
| 'nitro oc'
|
||||||
|
| 'phantom gaming'
|
||||||
| 'phantom gs'
|
| 'phantom gs'
|
||||||
| 'phoenix gs oc'
|
| 'phoenix gs oc'
|
||||||
| 'phoenix gs'
|
| 'phoenix gs'
|
||||||
| 'phoenix'
|
| 'phoenix'
|
||||||
| 'ps5 console'
|
| 'ps5 console'
|
||||||
| 'ps5 digital'
|
| 'ps5 digital'
|
||||||
|
| 'pulse'
|
||||||
|
| 'red devil'
|
||||||
| 'sg oc'
|
| 'sg oc'
|
||||||
| 'sg'
|
| 'sg'
|
||||||
|
| 'merc'
|
||||||
| 'strix lc'
|
| 'strix lc'
|
||||||
| 'strix oc'
|
| 'strix oc'
|
||||||
| 'strix'
|
| 'strix'
|
||||||
|
| 'taichi'
|
||||||
| 'trinity oc'
|
| 'trinity oc'
|
||||||
| 'trinity'
|
| 'trinity'
|
||||||
| 'tuf oc'
|
| 'tuf oc'
|
||||||
@@ -113,6 +123,7 @@ export type Model =
|
|||||||
| 'vision'
|
| 'vision'
|
||||||
| 'xbox series s'
|
| 'xbox series s'
|
||||||
| 'xbox series x'
|
| 'xbox series x'
|
||||||
|
| 'xc gaming'
|
||||||
| 'xc3 black'
|
| 'xc3 black'
|
||||||
| 'xc3 ultra'
|
| 'xc3 ultra'
|
||||||
| 'xc3'
|
| 'xc3'
|
||||||
@@ -121,13 +132,15 @@ export type Model =
|
|||||||
|
|
||||||
export type Link = {
|
export type Link = {
|
||||||
brand: Brand;
|
brand: Brand;
|
||||||
itemNumber?: string;
|
|
||||||
series: Series;
|
|
||||||
model: Model;
|
|
||||||
url: string;
|
|
||||||
cartUrl?: string;
|
cartUrl?: string;
|
||||||
|
itemNumber?: string;
|
||||||
|
labels?: Labels;
|
||||||
|
model: Model;
|
||||||
openCartAction?: (browser: Browser) => Promise<string>;
|
openCartAction?: (browser: Browser) => Promise<string>;
|
||||||
|
price?: number | null;
|
||||||
|
series: Series;
|
||||||
screenshot?: string;
|
screenshot?: string;
|
||||||
|
url: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type LabelQuery = Element[] | Element | string[];
|
export type LabelQuery = Element[] | Element | string[];
|
||||||
@@ -171,4 +184,7 @@ export type Store = {
|
|||||||
waitUntil?: LoadEvent;
|
waitUntil?: LoadEvent;
|
||||||
minPageSleep?: number;
|
minPageSleep?: number;
|
||||||
maxPageSleep?: number;
|
maxPageSleep?: number;
|
||||||
|
|
||||||
|
proxyList?: string[];
|
||||||
|
currentProxyIndex?: number;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,8 +3,11 @@ import {Store} from './store';
|
|||||||
export const TopAchat: Store = {
|
export const TopAchat: Store = {
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.cart.button',
|
container: 'input.cart.button[value="Ajouter au panier"]',
|
||||||
text: ['']
|
text: ['']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: 'span.priceFinal.fp44'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Unieuro: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '.price-container',
|
||||||
|
text: ['Aggiungi al carrello']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 console',
|
||||||
|
series: 'sonyps5c',
|
||||||
|
url:
|
||||||
|
'https://www.unieuro.it/online/Playstation-5/PlayStation-5-pidSONPS5DISC'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'sony',
|
||||||
|
model: 'ps5 digital',
|
||||||
|
series: 'sonyps5de',
|
||||||
|
url:
|
||||||
|
'https://www.unieuro.it/online/Playstation-5/PlayStation-5-Digital-Edition-pidSONPS5DIGITAL'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series x',
|
||||||
|
series: 'xboxsx',
|
||||||
|
url:
|
||||||
|
'https://www.unieuro.it/online/Xbox-Series/Xbox-Series-X-pidDBLRRT00008'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'microsoft',
|
||||||
|
model: 'xbox series s',
|
||||||
|
series: 'xboxss',
|
||||||
|
url:
|
||||||
|
'https://www.unieuro.it/online/Xbox-Series/Xbox-Series-S-pidDBLRRS00008'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'unieuro'
|
||||||
|
};
|
||||||
@@ -68,6 +68,11 @@ export const Very: Store = {
|
|||||||
},
|
},
|
||||||
ttl: 300000,
|
ttl: 300000,
|
||||||
urls: [
|
urls: [
|
||||||
|
{
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://www.very.co.uk/electricals/pc-components/graphics-cards/e/b/118786.end?sort=newin,0&numProducts=100'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
|
|||||||
@@ -3,14 +3,21 @@ import {Store} from './store';
|
|||||||
export const Walmart: Store = {
|
export const Walmart: Store = {
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#ProductPrimaryCTA-cta_add_to_cart_button',
|
container: '.button.spin-button.prod-ProductCTA--primary.button--primary',
|
||||||
text: ['Add to cart']
|
text: ['add to cart']
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span[class*="price-characteristic"]'
|
container: 'span[class*="price-characteristic"]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url:
|
||||||
|
'https://www.walmart.com/ip/Keurig-K-compact-Brewer-Black-Coffee-Maker/806217614'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
@@ -35,6 +42,26 @@ export const Walmart: Store = {
|
|||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.walmart.com/ip/Xbox-Series-S/606518560'
|
url: 'https://www.walmart.com/ip/Xbox-Series-S/606518560'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
model: '750 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url: 'https://www.walmart.com/ip/SF750-Power-Supply/197046151'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'corsair',
|
||||||
|
model: '600 platinum',
|
||||||
|
series: 'sf',
|
||||||
|
url:
|
||||||
|
'https://www.walmart.com/ip/Corsair-SF-Series-600W-80-Platinum-Power-Supply/250717047'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5900x',
|
||||||
|
series: 'ryzen5900',
|
||||||
|
url:
|
||||||
|
'https://www.walmart.com/ip/AMD-Ryzen-9-5900X-12-core-24-thread-Desktop-Processor/159710953'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: 'walmart'
|
name: 'walmart'
|
||||||
|
|||||||
@@ -0,0 +1,172 @@
|
|||||||
|
import {Store} from './store';
|
||||||
|
|
||||||
|
export const Wipoid: Store = {
|
||||||
|
labels: {
|
||||||
|
inStock: {
|
||||||
|
container: '#add_to_cart',
|
||||||
|
text: ['COMPRAR']
|
||||||
|
},
|
||||||
|
maxPrice: {
|
||||||
|
container: '#our_price_display',
|
||||||
|
euroFormat: true
|
||||||
|
},
|
||||||
|
outOfStock: {
|
||||||
|
container: '.buttons_bottom_block no-print',
|
||||||
|
text: ['Avísame cuando esté disponible!']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
brand: 'test:brand',
|
||||||
|
model: 'test:model',
|
||||||
|
series: 'test:series',
|
||||||
|
url: 'https://www.wipoid.com/pny-geforce-rtx-1650-dual-fan-4gb-gddr6.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'eagle oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-eagle-oc-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'ventus 3x oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/msi-geforce-rtx-3080-ventus-3x-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'gaming oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-gaming-oc-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'msi',
|
||||||
|
model: 'gaming x trio',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/msi-geforce-rtx-3080-gaming-x-trio-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'tuf oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/asus-tuf-gaming-geforce-rtx-3080-oc-edition-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/asus-rog-strix-geforce-rtx-3080-oc-edition-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 black',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/zotac-gaming-geforce-rtx-3080-trinity-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'asus',
|
||||||
|
model: 'strix',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'trinity oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/zotac-gaming-geforce-rtx-3080-trinity-oc-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'vision oc',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-vision-oc-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'xc3',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3 ultra',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'gigabyte',
|
||||||
|
model: 'aorus master',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/gigabyte-aorus-geforce-rtx-3080-master-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'evga',
|
||||||
|
model: 'ftw3',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'pny',
|
||||||
|
model: 'xlr8 revel',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.wipoid.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5600x',
|
||||||
|
series: 'ryzen5600',
|
||||||
|
url: 'https://www.wipoid.com/amd-ryzen-5-5600x-3-7ghz.html'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'amd',
|
||||||
|
model: '5800x',
|
||||||
|
series: 'ryzen5800',
|
||||||
|
url: 'https://www.wipoid.com/amd-ryzen-7-5800x-3-8ghz.html'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
name: 'wipoid'
|
||||||
|
};
|
||||||
@@ -20,6 +20,34 @@ 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: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://store.zotac.com/zotac-gaming-geforce-rtx-3060-ti-twin-edge-zt-a30610e-10m'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3060ti',
|
||||||
|
url:
|
||||||
|
'https://store.zotac.com/zotac-gaming-geforce-rtx-3060-ti-twin-edge-oc-zt-a30610h-10m'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://store.zotac.com/zotac-gaming-geforce-rtx-3070-twin-edge-zt-a30700e-10p'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'twin edge oc',
|
||||||
|
series: '3070',
|
||||||
|
url:
|
||||||
|
'https://store.zotac.com/zotac-gaming-geforce-rtx-3070-twin-edge-oc-zt-a30700h-10p'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
@@ -34,6 +62,13 @@ export const Zotac: Store = {
|
|||||||
url:
|
url:
|
||||||
'https://store.zotac.com/zotac-gaming-geforce-rtx-3080-trinity-oc-zt-a30800j-10p'
|
'https://store.zotac.com/zotac-gaming-geforce-rtx-3080-trinity-oc-zt-a30800j-10p'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
brand: 'zotac',
|
||||||
|
model: 'amp holo',
|
||||||
|
series: '3080',
|
||||||
|
url:
|
||||||
|
'https://www.zotacstore.com/us/zotac-gaming-geforce-rtx-3080-amp-holo-zt-a30800f-10p'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
3.1.0
|
3.2.0
|
||||||
|
|||||||
Reference in New Issue
Block a user