Compare commits

...

216 Commits

Author SHA1 Message Date
github-actions[bot] 89e3709440 chore: release 3.5.0 (#1745) 2021-03-02 12:52:24 -05:00
MrToshio a7be09d56e feat(store): add ldlc (FR) (#2037)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-03-02 12:50:01 -05:00
Jef LeCompte e3d09803ad fix: remove package-lock.json
This fixes strange bug with downloading Chromium
on node 15.
2021-03-02 12:33:09 -05:00
Jef LeCompte 40c4a8c1b9 ci: bump node-version 2021-03-02 12:14:38 -05:00
Jef LeCompte eee669b1b3 feat: use node 15, use package version (#2066) 2021-03-02 12:02:35 -05:00
Jef LeCompte 9e8c83622d ci: fix pr lint trigger 2021-03-02 11:59:01 -05:00
Jef LeCompte f583029bf3 refactor: make link labels > store labels 2021-03-02 11:53:53 -05:00
Jef LeCompte 8ee6815c0f fix(amazon-uk): add label for ps5
Fixes #2036
2021-03-02 11:52:23 -05:00
SalamUchiha 6934d5b31c chore(newegg): add 3060 links (#2039) 2021-03-02 11:11:01 -05:00
Patrick Huy cfe292eb3e chore(store): add 3060 for mediamarkt, saturn and notebooksbilliger (#2041) 2021-02-27 16:34:20 -05:00
Afonso Jorge Ramos a3c726b45c feat(store): add novoatalho (PT) (#2043) 2021-02-27 16:33:39 -05:00
Afonso Jorge Ramos 11e14655e1 chore(globaldata): add 3060, 3060ti, amd (#2044) 2021-02-27 16:32:50 -05:00
Jef LeCompte b3a88f6608 chore: bump dependencies 2021-02-26 10:50:24 -05:00
Jef LeCompte 659edcd421 ci: rerun pr lint if synced 2021-02-26 10:47:57 -05:00
Joel Calado 5effbae882 feat(store): add globaldata (#2004) 2021-02-26 10:46:40 -05:00
JW6677 4d1e1ba3e7 chore(store): add 3060 products (#2029) 2021-02-26 10:02:55 -05:00
Guillaume Malette 69e005905a docs: add information around 3060 (#2031) 2021-02-26 10:01:24 -05:00
Michael Pietersen cb7d215c3a chore: best buy & microcenter 3060 product links (#2033) 2021-02-26 10:00:10 -05:00
Guillaume Malette 1288f9271a chore(canadacomputers): add 3060 card (#2028) 2021-02-25 15:13:00 -05:00
Jef LeCompte e527e43e85 ci: update pr lint 2021-02-25 15:10:54 -05:00
Jef LeCompte 7cf60f84e1 ci: update pr lint secret 2021-02-25 15:06:48 -05:00
Jef LeCompte fbb024a9ce docs: add terraform reference
Ref: 488bc544c9
2021-02-23 12:33:37 -05:00
Joel Calado d422c7d0d3 chore(pcdiga): add 3090, 3070, 3060ti (#2003) 2021-02-23 12:26:06 -05:00
Jef LeCompte 488bc544c9 docs: add terraform to mkdocs
Ref: #1987
2021-02-23 12:14:41 -05:00
dan sweeting d341ef72aa feat: add terraform infra as code for AWS fargate (#1987) 2021-02-23 12:10:33 -05:00
dependabot[bot] 347f49b2d4 chore(deps-dev): bump webpack from 5.23.0 to 5.24.0 (#2009)
Bumps [webpack](https://github.com/webpack/webpack) from 5.23.0 to 5.24.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.23.0...v5.24.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-23 12:02:39 -05:00
Jef LeCompte 1c113efc42 ci: change pr linter 2021-02-23 11:44:49 -05:00
Jef LeCompte 03539ca666 chore: remove old problem matcher 2021-02-23 10:05:43 -05:00
Jef LeCompte 42808b836c docs: update badge 2021-02-23 10:03:06 -05:00
Jef LeCompte e8ee59fae1 ci: run ci on main 2021-02-23 10:00:44 -05:00
dependabot[bot] 4324706f32 chore(deps): bump amannn/action-semantic-pull-request from v3.3.0 to v3.4.0 (#1965)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v3.3.0 to v3.4.0.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v3.3.0...db6e259b93f286e3416eef27aaae88935d16cf2e)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-22 00:42:16 -05:00
dependabot[bot] b6030b3cc3 chore(deps-dev): bump webpack from 5.22.0 to 5.23.0 (#1993)
Bumps [webpack](https://github.com/webpack/webpack) from 5.22.0 to 5.23.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.22.0...v5.23.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-22 00:42:10 -05:00
dependabot[bot] 557ff511e3 chore(deps): bump node from 14.15.4-alpine3.12 to 15.9.0-alpine3.12 (#1992)
Bumps node from 14.15.4-alpine3.12 to 15.9.0-alpine3.12.

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-22 00:41:59 -05:00
dependabot[bot] 9e3922e0d1 chore(deps-dev): bump @types/node from 14.14.28 to 14.14.31 (#2005)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.28 to 14.14.31.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-22 00:41:51 -05:00
Jef LeCompte 2c3c47b4a9 ci: pin version to major 2021-02-22 00:38:57 -05:00
Jef LeCompte 9d5af9f8f9 docs: fix badge link 2021-02-22 00:18:42 -05:00
Jef LeCompte 07306891d7 docs: update badges 2021-02-22 00:17:41 -05:00
Jef LeCompte 5f81a8a25f ci: fix nightly release 2021-02-21 23:45:10 -05:00
david e6803d4d7c feat(store): add netonnet-no (#1989) 2021-02-20 19:26:18 -05:00
Joel Calado 2501f6b5cc feat(store): add PCDiga.com (#1990) 2021-02-20 19:23:04 -05:00
david 5a5927ba1e feat(store): add Norwegian stores (#1985)
Adds elkjop.no, komplett.no, dustinhome.no, power.no and proshop.no
2021-02-18 09:53:57 -05:00
Jef LeCompte 8d5792bf9e chore: update dependencies
Removed puppeteer types and puppeteer-extra
2021-02-18 09:52:26 -05:00
Nick Baldallo b1ece9edad chore(pccomponentes): add 3090, 3060ti, rx6900xt (#1962) 2021-02-18 09:14:29 -05:00
dependabot[bot] 2cd2991cca chore(deps): bump amannn/action-semantic-pull-request from v3.2.6 to v3.3.0 (#1933)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v3.2.6 to v3.3.0.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v3.2.6...3301e0e038fd3af9f257f815119b6bdf371bf2c3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-12 12:35:20 -05:00
Jef LeCompte c1c9bc49a2 chore: bump dependencies 2021-02-10 15:49:53 -05:00
dependabot[bot] 4acf6e616f chore(deps): bump google-github-actions/release-please-action from v2.16 to v2.17 (#1916)
Bumps [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) from v2.16 to v2.17.
- [Release notes](https://github.com/google-github-actions/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/release-please-action/compare/v2.16...b7fac390e7d06ee9053c67ce6781c006c8ca3f47)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-10 15:32:02 -05:00
dependabot[bot] af90b1a0a3 chore(deps): bump actions/cache from v2 to v2.1.4 (#1906)
Bumps [actions/cache](https://github.com/actions/cache) from v2 to v2.1.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2...26968a09c0ea4f3e233fdddbafd1166051a095f6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-10 15:30:48 -05:00
TomZanna edb39f8f05 feat(notification): add Streamlabs support (#1872) 2021-02-09 08:31:21 -05:00
Ben Curtis 1009ce6636 feat: add restart time for leaking Chromium in Ubuntu (#1880)
docs: add documentation for RESTART_TIME
2021-02-07 16:05:53 -05:00
Jef LeCompte 2548ca4a74 chore: bump dependencies 2021-02-07 16:02:35 -05:00
Peter J. Milanese c22c960dc1 feat(notification): add simple SmartThings switch activation (#1902)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-02-07 15:32:18 -05:00
dependabot[bot] b20bd4a496 chore(deps-dev): bump @types/node from 14.14.22 to 14.14.24 (#1877)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.22 to 14.14.24.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-04 19:50:45 -05:00
dependabot[bot] d02b40b5b8 chore(deps-dev): bump webpack from 5.19.0 to 5.20.1 (#1869)
Bumps [webpack](https://github.com/webpack/webpack) from 5.19.0 to 5.20.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.19.0...v5.20.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-04 19:50:25 -05:00
dependabot[bot] 728f21a62c chore(deps-dev): bump @types/puppeteer from 5.4.2 to 5.4.3 (#1876)
Bumps [@types/puppeteer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/puppeteer) from 5.4.2 to 5.4.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/puppeteer)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-04 19:49:33 -05:00
dependabot[bot] 0cc4e4c4b2 chore(deps): bump puppeteer-extra-plugin-stealth from 2.6.7 to 2.7.4 (#1878)
Bumps [puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra) from 2.6.7 to 2.7.4.
- [Release notes](https://github.com/berstend/puppeteer-extra/releases)
- [Commits](https://github.com/berstend/puppeteer-extra/compare/puppeteer-extra-plugin-stealth@2.6.7...puppeteer-extra-plugin-stealth@2.7.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-04 19:49:06 -05:00
wofnull 0e65f33690 fix(amazon-ca): out of stock check was missing (#1885) 2021-02-04 19:47:43 -05:00
Jason 4455e4ed8d feat(sms): add US Cellular (#1874) 2021-02-04 19:47:09 -05:00
wofnull 2572c8af80 fix(wipoid): corrected 3070 / 3080 links (#1879) 2021-02-04 19:45:42 -05:00
dependabot[bot] 233c4496e2 chore(deps): bump twitch-auth from 4.4.5 to 4.4.7 (#1855)
Bumps [twitch-auth](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-auth) from 4.4.5 to 4.4.7.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.4.7/packages/twitch-auth)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-03 10:53:36 -05:00
dependabot[bot] 7aa2212115 chore(deps-dev): bump c8 from 7.4.0 to 7.5.0 (#1863)
Bumps [c8](https://github.com/bcoe/c8) from 7.4.0 to 7.5.0.
- [Release notes](https://github.com/bcoe/c8/releases)
- [Changelog](https://github.com/bcoe/c8/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bcoe/c8/compare/v7.4.0...v7.5.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-03 10:52:12 -05:00
Yildirim 4f57df016b fix(nvidia): update inStock text (#1850)
Co-authored-by: ssaddique <ssaddique@axway.com>
2021-02-02 15:25:09 -05:00
wofnull 329318427f fix(amazon-ca): update selector (#1851) 2021-02-02 15:24:42 -05:00
dependabot[bot] 630f46ce47 chore(deps-dev): bump webpack from 5.18.0 to 5.19.0 (#1849)
Bumps [webpack](https://github.com/webpack/webpack) from 5.18.0 to 5.19.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.18.0...v5.19.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-02 15:24:09 -05:00
dependabot[bot] 1cc63c051c chore(deps): bump dorny/paths-filter from v2.7.0 to v2.8.0 (#1848)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from v2.7.0 to v2.8.0.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/v2.7.0...7c0f15b688b020e95e00f15c61299b022f08ca95)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-02 15:23:59 -05:00
dependabot[bot] 127d846fbe chore(deps): bump open from 7.3.1 to 7.4.0 (#1856)
Bumps [open](https://github.com/sindresorhus/open) from 7.3.1 to 7.4.0.
- [Release notes](https://github.com/sindresorhus/open/releases)
- [Commits](https://github.com/sindresorhus/open/compare/v7.3.1...v7.4.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-02 15:23:33 -05:00
dependabot[bot] 4b8b6feda6 chore(deps): bump google-github-actions/release-please-action from v2.15 to v2.16 (#1857)
Bumps [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) from v2.15 to v2.16.
- [Release notes](https://github.com/google-github-actions/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/release-please-action/compare/v2.15...61a3f25af95f0c859244635ec47bc92ed9116a21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-02 15:23:27 -05:00
dependabot[bot] b6d03317ba chore(deps): bump twitch from 4.4.6 to 4.4.7 (#1858)
Bumps [twitch](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch) from 4.4.6 to 4.4.7.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.4.7/packages/twitch)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-02 15:23:17 -05:00
Ben Curtis 8df4339bdb feat: clean up proxy logging with n/N in each lookup (#1839) 2021-01-31 14:36:58 -05:00
dependabot[bot] bb8c89b775 chore(deps): bump twitch from 4.4.5 to 4.4.6 (#1831)
Bumps [twitch](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch) from 4.4.5 to 4.4.6.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.4.6/packages/twitch)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-29 10:43:13 -05:00
Christian d63685f290 fix(alternate): update URLs (#1814) 2021-01-28 16:46:24 -05:00
wofnull 95b4a153bd fix(web): 404 Error / page not visible (#1825) 2021-01-28 16:44:32 -05:00
dependabot[bot] 4fe0f50941 chore(deps): bump twilio from 3.55.0 to 3.55.1 (#1824)
Bumps [twilio](https://github.com/twilio/twilio-node) from 3.55.0 to 3.55.1.
- [Release notes](https://github.com/twilio/twilio-node/releases)
- [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md)
- [Commits](https://github.com/twilio/twilio-node/compare/3.55.0...3.55.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-28 16:43:53 -05:00
dependabot[bot] e488ef22fb chore(deps-dev): bump webpack from 5.17.0 to 5.18.0 (#1807)
Bumps [webpack](https://github.com/webpack/webpack) from 5.17.0 to 5.18.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.17.0...v5.18.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-27 10:10:37 -05:00
Yildirim de1427c076 fix(docs): nvidia store changes (#1797)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-01-26 08:10:01 -05:00
wofnull 1015358b50 fix(galaxus): update selector (#1730) 2021-01-26 07:21:17 -05:00
dependabot[bot] a2072449d2 chore(deps-dev): bump webpack from 5.16.0 to 5.17.0 (#1793)
Bumps [webpack](https://github.com/webpack/webpack) from 5.16.0 to 5.17.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.16.0...v5.17.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-26 07:20:37 -05:00
dependabot[bot] 8c17d21dfd chore(deps-dev): bump @types/node from 14.14.21 to 14.14.22 (#1751)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.21 to 14.14.22.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-26 07:20:24 -05:00
dependabot[bot] 8ac3a3bc37 chore(deps-dev): bump sinon from 9.2.3 to 9.2.4 (#1781)
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.2.3 to 9.2.4.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v9.2.3...v9.2.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-26 07:20:05 -05:00
dependabot[bot] 8c383235af chore(deps): bump twitch-chat-client from 4.4.0 to 4.4.5 (#1784)
Bumps [twitch-chat-client](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-chat-client) from 4.4.0 to 4.4.5.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.4.5/packages/twitch-chat-client)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-26 07:19:51 -05:00
Jef LeCompte ecb27ebf0a chore(config): remove old nvidia config
Ref: 2143b15809
2021-01-26 07:14:51 -05:00
dependabot[bot] 3b204f15ac chore(deps): bump puppeteer-extra-plugin-stealth from 2.6.6 to 2.6.7 (#1794)
Bumps [puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra) from 2.6.6 to 2.6.7.
- [Release notes](https://github.com/berstend/puppeteer-extra/releases)
- [Commits](https://github.com/berstend/puppeteer-extra/compare/puppeteer-extra-plugin-stealth@2.6.6...puppeteer-extra-plugin-stealth@2.6.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-26 07:12:08 -05:00
Yildirim 2143b15809 feat(nvidia): updated store for europe (#1732) 2021-01-26 07:11:20 -05:00
dependabot[bot] f932009c01 chore(deps): bump amannn/action-semantic-pull-request from v3.2.3 to v3.2.6 (#1795)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v3.2.3 to v3.2.6.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v3.2.3...81acd1c603cf23bd6f6fbe16be9e882cd25cd4e6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-26 07:07:31 -05:00
dependabot[bot] a10ae42454 chore(deps): bump twitch-auth from 4.4.0 to 4.4.5 (#1782)
Bumps [twitch-auth](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-auth) from 4.4.0 to 4.4.5.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.4.5/packages/twitch-auth)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-25 17:26:15 -05:00
dependabot[bot] ba6eccc90a chore(deps): bump twitch from 4.4.0 to 4.4.5 (#1783)
Bumps [twitch](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch) from 4.4.0 to 4.4.5.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.4.5/packages/twitch)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-25 15:40:42 -05:00
Jordan Tucker 9791568cd4 fix(discord): ensure first group in list is notified (#1788)
This fix ensures that the `series` of a `link` is found in
`notifyGroupSeries`. Before this fix, the first key in
`notifyGroupSeries` was excluded.
2021-01-25 15:40:30 -05:00
hifihedgehog ce609fb518 fix(microcenter): properly flag in stock items (#1754) 2021-01-20 12:51:57 -05:00
dependabot[bot] 5f0c656b30 chore(deps): bump amannn/action-semantic-pull-request from v3.1.0 to v3.2.3 (#1750)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v3.1.0 to v3.2.3.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v3.1.0...71a74e9d131e8d7c16cd672a42937ac88b1375db)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-20 17:39:23 +00:00
dependabot[bot] 113e92df8b chore(deps-dev): bump webpack from 5.15.0 to 5.16.0 (#1752)
Bumps [webpack](https://github.com/webpack/webpack) from 5.15.0 to 5.16.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.15.0...v5.16.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-20 12:37:52 -05:00
sohaiiil c81282ef9f feat(store): corsair-uk (#1733) 2021-01-19 12:34:12 -05:00
wofnull aec8cfdae2 chore(newegg-sg): add missing 3060ti, 3070, 3080, 3090 cards (#1742) 2021-01-19 12:33:25 -05:00
wofnull 9bf0e30222 chore(newegg): add missing 3060ti, 3070, 3080, 3090 cards (#1741) 2021-01-19 12:31:34 -05:00
wofnull 13f1c3d50c chore(neweggca): add missing 3060ti, 3070, 3080, 3090 cards (#1743) 2021-01-19 12:25:38 -05:00
wofnull 9695e29a02 fix(vuugo): add out of stock check (#1731) 2021-01-18 13:23:05 -05:00
github-actions[bot] 11e64942a0 chore: release 3.4.1 (#1723) 2021-01-17 18:21:25 -05:00
Jef LeCompte c177aedd21 fix(proxy): build proxyList correctly
Also remove unnecessary `all` npm script.
2021-01-17 18:19:06 -05:00
github-actions[bot] b7930b25fd chore: release 3.4.0 (#1719) 2021-01-17 16:08:03 -05:00
Jef LeCompte 05720e519b ci: update verbiage for steps (#1721) 2021-01-17 16:07:06 -05:00
Jef LeCompte 8ece4b6412 ci: update names and steps (#1720) 2021-01-17 15:59:32 -05:00
Jef LeCompte 7997d6d22a ci: fix release-please 2021-01-17 15:35:03 -05:00
github-actions[bot] f474cc6966 chore: release 3.4.0 (#1391) 2021-01-17 15:27:32 -05:00
Jef LeCompte f87053cb02 refactor: use gts instead of xo
feat: add browser opening to test:notification
feat: add c8 and mocha for testing
feat: update Docker and ci
style: update editorconfig
2021-01-17 15:21:53 -05:00
Jef LeCompte dbde7814af chore: clean up and bump node version 2021-01-17 13:44:05 -05:00
wofnull b2ebac36c0 feat(caseking): add 3060ti/3070 cards / add missing 3080/3090 cards (#1715)
* Caseking add Asus 3060ti Models:
https://www.caseking.de/asus-geforce-rtx-3060-ti-rog-strix-o8g-8192-mb-gddr6-gcas-407.html
https://www.caseking.de/asus-geforce-rtx-3060-ti-dual-o8g-8192-mb-gddr6-gcas-410.html
https://www.caseking.de/asus-geforce-rtx-3060-ti-tuf-o8g-8192-mb-gddr6-gcas-412.html
https://www.caseking.de/asus-geforce-rtx-3060-ti-dual-8g-8192-mb-gddr6-gcas-411.html
https://www.caseking.de/asus-geforce-rtx-3060-ti-tuf-8g-8192-mb-gddr6-gcas-408.html
https://www.caseking.de/asus-geforce-rtx-3060-ti-rog-strix-8g-8192-mb-gddr6-gcas-409.html

* Caseking add EVGA 3060ti Moddels
https://www.caseking.de/evga-geforce-rtx-3060-ti-xc-gaming-8192-mb-gddr6-gcev-431.html
https://www.caseking.de/evga-geforce-rtx-3060-ti-ftw3-ultra-gaming-8192-mb-gddr6-gcev-403.html
https://www.caseking.de/evga-geforce-rtx-3060-ti-ftw3-black-gaming-8192-mb-gddr6-gcev-430.html
https://www.caseking.de/evga-geforce-rtx-3060-ti-xc-black-gaming-8192-mb-gddr6-gcev-432.html
https://www.caseking.de/evga-geforce-rtx-3060-ti-ftw3-gaming-8192-mb-gddr6-gcev-429.html

* Caseking add Gigabyte 3060ti Models:
https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-eagle-oc-8g-8192-mb-gddr6-gcgb-349.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3060-ti-master-8g-8192-mb-gddr6-gcgb-346.html
https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-gaming-oc-pro-8g-8192-mb-gddr6-gcgb-347.html
https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-gaming-oc-8g-8192-mb-gddr6-gcgb-348.html
https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-eagle-8g-8192-mb-gddr6-gcgb-350.html

* Caseking add Inno3d 3060ti Models:
https://www.caseking.de/inno3d-geforce-rtx-3060-ti-twin-x2-oc-8192-mb-gddr6-gci3-180.html
https://www.caseking.de/inno3d-geforce-rtx-3060-ti-ichill-x3-8192-mb-gddr6-gci3-179.html
https://www.caseking.de/inno3d-geforce-rtx-3060-ti-twin-x2-8192-mb-gddr6-gci3-181.html

* Caseking add MSI 3060ti Models
https://www.caseking.de/msi-geforce-rtx-3060-ti-gaming-x-trio-8192-mb-gddr6-gcmc-255.html
https://www.caseking.de/msi-geforce-rtx-3060-ti-ventus-2x-oc-8192-mb-gddr6-gcmc-246.html
https://www.caseking.de/msi-geforce-rtx-3060-ti-ventus-3x-oc-8192-mb-gddr6-gcmc-245.html

* Caseking add PNY 3060ti Models
https://www.caseking.de/pny-geforce-rtx-3060-ti-xlr8-gaming-revel-epic-x-8192-mb-gddr6-gcpn-080.html
https://www.caseking.de/pny-geforce-rtx-3060-ti-uprising-8g-8192-mb-gddr6-gcpn-079.html

* Caseking add Zotac 3060ti Models:
https://www.caseking.de/zotac-gaming-geforce-rtx-3060-ti-twin-edge-8192-mb-gddr6-gczt-169.html
https://www.caseking.de/zotac-gaming-geforce-rtx-3060-ti-twin-edge-oc-8192-mb-gddr6-gczt-170.html

* Caseking add Asus 3070 Models:
https://www.caseking.de/asus-geforce-rtx-3070-dual-8g-8192-mb-gddr6-gcas-404.html
https://www.caseking.de/asus-geforce-rtx-3070-tuf-o8g-8192-mb-gddr6-gcas-406.html
https://www.caseking.de/asus-geforce-rtx-3070-rog-strix-o8g-8192-mb-gddr6-gcas-403.html
https://www.caseking.de/asus-geforce-rtx-3070-dual-o8g-8192-mb-gddr6-gcas-405.html
https://www.caseking.de/asus-geforce-rtx-3070-rog-strix-8g-8192-mb-gddr6-gcas-415.html

* Caseking add EVGA 3070 Models

* Caseking add Gigabyte 3070 Models:
https://www.caseking.de/gigabyte-geforce-rtx-3070-gaming-oc-8g-8192-mb-gddr6-gcgb-338.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3070-master-8g-8192-mb-gddr6-gcgb-343.html
https://www.caseking.de/gigabyte-geforce-rtx-3070-vision-oc-8g-8192-mb-gddr6-gcgb-344.html
https://www.caseking.de/gigabyte-geforce-rtx-3070-eagle-8g-8192-mb-gddr6-gcgb-340.html
https://www.caseking.de/gigabyte-geforce-rtx-3070-eagle-oc-8g-8192-mb-gddr6-gcgb-339.html

List from EVGA Previuous commit:
https://www.caseking.de/evga-geforce-rtx-3070-xc3-black-gaming-8192-mb-gddr6-gcev-424.html
https://www.caseking.de/evga-geforce-rtx-3070-xc3-ultra-gaming-8192-mb-gddr6-gcev-426.html
https://www.caseking.de/evga-geforce-rtx-3070-ftw3-ultra-8192-mb-gddr6-gcev-428.html
https://www.caseking.de/evga-geforce-rtx-3070-xc3-8192-mb-gddr6-gcev-425.html
https://www.caseking.de/evga-geforce-rtx-3070-ftw3-8192-mb-gddr6-gcev-427.html

* Caseking add Inno3D 3070 Models:
https://www.caseking.de/inno3d-geforce-rtx-3070-twin-x2-8192-mb-gddr6-gci3-176.html
https://www.caseking.de/inno3d-geforce-rtx-3070-ichill-x3-8192-mb-gddr6-gci3-174.html
https://www.caseking.de/inno3d-geforce-rtx-3070-ichill-x4-8192-mb-gddr6-gci3-173.html
https://www.caseking.de/inno3d-geforce-rtx-3070-twin-x2-oc-8192-mb-gddr6-gci3-175.html

* Caseking add MSI 3070 Models:
https://www.caseking.de/msi-geforce-rtx-3070-gaming-x-trio-8192-mb-gddr6-gcmc-250.html
https://www.caseking.de/msi-geforce-rtx-3070-suprim-8g-8192-mb-gddr6-gcmc-256.html
https://www.caseking.de/msi-geforce-rtx-3070-ventus-2x-oc-8192-mb-gddr6-gcmc-249.html
https://www.caseking.de/msi-geforce-rtx-3070-ventus-3x-oc-8192-mb-gddr6-gcmc-251.html
https://www.caseking.de/msi-geforce-rtx-3070-suprim-x-8g-8192-mb-gddr6-gcmc-254.html

* Caseking add PNY 3070 Models:
https://www.caseking.de/pny-geforce-rtx-3070-xlr8-gaming-revel-epic-x-rgb-8192-mb-gddr6-gcpn-078.html
https://www.caseking.de/pny-geforce-rtx-3070-dual-fan-8192-mb-gddr6-gcpn-077.html

* Caseking add Zotac 3070 Models:
https://www.caseking.de/zotac-gaming-geforce-rtx-3070-twin-edge-8192-mb-gddr6-gczt-164.html
https://www.caseking.de/zotac-gaming-geforce-rtx-3070-twin-edge-oc-8192-mb-gddr6-gczt-168.html
https://www.caseking.de/zotac-gaming-geforce-rtx-3070-twin-edge-oc-white-8192-mb-gddr6-gczt-171.html

* Caseking added missing 3080 Models from Store:
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-xtreme-10g-10240-mb-gddr6x-gcgb-333.html
https://www.caseking.de/msi-geforce-rtx-3080-suprim-x-10g-10240-mb-gddr6x-gcmc-253.html
https://www.caseking.de/asus-geforce-rtx-3080-ekwb-10g-10240-mb-gddr6x-gcas-413.html
https://www.caseking.de/inno3d-geforce-rtx-3080-ichill-frostbite-10240-mb-gddr6x-gci3-177.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-wb-10g-10240-mb-gddr6x-gcgb-352.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-10g-10240-mb-gddr6x-gcgb-351.html
https://www.caseking.de/evga-geforce-rtx-3080-xc3-ultra-hybrid-gaming-10240-mb-gddr6x-gcev-435.html
https://www.caseking.de/evga-geforce-rtx-3080-ftw3-ultra-hybrid-gaming-10240-mb-gddr6x-gcev-436.html
https://www.caseking.de/gigabyte-geforce-rtx-3080-eagle-10g-10240-mb-gddr6x-gcgb-353.html

* Caseking added missing 3090 Models from Store:
https://www.caseking.de/asus-geforce-rtx-3090-ekwb-24g-24576-mb-gddr6x-gcas-414.html
https://www.caseking.de/msi-geforce-rtx-3090-ventus-3x-24g-oc-24576-mb-gddr6x-gcmc-243.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-wb-24g-24576-mb-gddr6x-gcgb-355.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-24g-24576-mb-gddr6x-gcgb-354.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-xtreme-24g-24576-mb-gddr6x-gcgb-335.html
https://www.caseking.de/evga-geforce-rtx-3090-ftw3-ultra-hybrid-gaming-24576-mb-gddr6x-gcev-434.html
https://www.caseking.de/evga-geforce-rtx-3090-xc3-ultra-hybrid-gaming-24576-mb-gddr6x-gcev-433.html
https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-master-24g-24576-mb-gddr6x-gcgb-334.html
https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-frostbite-24576-mb-gddr6x-gci3-178.html
https://www.caseking.de/msi-geforce-rtx-3090-suprim-x-24g-24576-mb-gddr6x-gcmc-252.html
https://www.caseking.de/gigabyte-geforce-rtx-3090-vision-oc-24g-24576-mb-gddr6x-gcgb-341.html
https://www.caseking.de/gigabyte-geforce-rtx-3090-turbo-24g-24576-mb-gddr6x-gcgb-330.html
https://www.caseking.de/gigabyte-geforce-rtx-3090-eagle-24g-24576-mb-gddr6x-gcgb-342.html

Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-01-17 13:42:01 -05:00
pbaum83 b03d24217f feat: add command parameter to set custom dotenv conf (#1590) 2021-01-17 12:47:33 -05:00
wofnull 2fa893795f feat(store): addition of several australian sites (#1651)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-01-17 12:45:13 -05:00
dependabot[bot] 122e68a764 chore(deps-dev): bump @types/node from 14.14.20 to 14.14.21 (#1695)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.20 to 14.14.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-17 12:36:41 -05:00
Martazza cb898c7923 feat(store): add more italian sites (#1701) 2021-01-17 12:36:28 -05:00
neatchee 09827741ae feat(store): specify links to navigate to between product searches (#1542)
Fixes #1504

When querying a store, if `deterrentLinks` has been defined, pick one at random and navigate there then wait 3 seconds. This should help reduce the likelihood of being sent to a captcha on subsequent page loads from the same store.
2021-01-17 08:27:08 -05:00
wofnull 2120d2901d fix(galaxus): update selector (#1705) 2021-01-17 08:22:31 -05:00
wofnull 3f191bbd00 fix(newegg): false positives (all stores) (#1714) 2021-01-17 08:22:10 -05:00
dependabot[bot] 724f6b19a1 chore(deps-dev): bump @types/node-fetch from 2.5.7 to 2.5.8 (#1696)
Bumps [@types/node-fetch](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node-fetch) from 2.5.7 to 2.5.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node-fetch)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-15 15:30:01 -05:00
wofnull bc45fd8d11 chore(galaxus): update selector (#1693) 2021-01-15 13:27:07 -05:00
wofnull 0a1198b69c fix(acompc): false positives (#1699)
Update selector has changed
2021-01-15 13:26:35 -05:00
wofnull e0849c4dc2 fix(computeruniverse): false positives (#1698)
Add additional out of stock message
2021-01-15 13:26:14 -05:00
dependabot[bot] 75b2460aea chore(deps-dev): bump webpack from 5.13.0 to 5.14.0 (#1692)
Bumps [webpack](https://github.com/webpack/webpack) from 5.13.0 to 5.14.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.13.0...v5.14.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:30:11 -05:00
dependabot[bot] 50ee40a2d4 chore(deps): bump puppeteer-extra from 3.1.15 to 3.1.16 (#1678)
Bumps [puppeteer-extra](https://github.com/berstend/puppeteer-extra) from 3.1.15 to 3.1.16.
- [Release notes](https://github.com/berstend/puppeteer-extra/releases)
- [Commits](https://github.com/berstend/puppeteer-extra/compare/puppeteer-extra@3.1.15...puppeteer-extra@3.1.16)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:25:55 -05:00
dependabot[bot] 9d7f908e04 chore(deps): bump puppeteer-extra-plugin-block-resources from 2.2.7 to 2.2.8 (#1691)
Bumps [puppeteer-extra-plugin-block-resources](https://github.com/berstend/puppeteer-extra) from 2.2.7 to 2.2.8.
- [Release notes](https://github.com/berstend/puppeteer-extra/releases)
- [Commits](https://github.com/berstend/puppeteer-extra/compare/puppeteer-extra-plugin-block-resources@2.2.7...puppeteer-extra-plugin-block-resources@2.2.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:25:45 -05:00
dependabot[bot] 3b14ec7574 chore(deps): bump google-github-actions/release-please-action from v2.14 to v2.15 (#1655)
Bumps [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) from v2.14 to v2.15.
- [Release notes](https://github.com/google-github-actions/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/release-please-action/compare/v2.14...88a82e1f9574f0a8bcacf1a13f84ef3d2c6659f3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-01-14 13:19:02 -05:00
dependabot[bot] 57b3a500ae chore(deps): bump @slack/web-api from 5.15.0 to 6.0.0 (#1669)
Bumps [@slack/web-api](https://github.com/slackapi/node-slack-sdk) from 5.15.0 to 6.0.0.
- [Release notes](https://github.com/slackapi/node-slack-sdk/releases)
- [Commits](https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@5.15.0...@slack/web-api@6.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:18:42 -05:00
wofnull b821eab273 fix(bandh): asus cards / out of stock check added (#1670) 2021-01-14 13:18:29 -05:00
dependabot[bot] 513f578fdc chore(deps): bump puppeteer-extra-plugin-stealth from 2.6.5 to 2.6.6 (#1680)
Bumps [puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra) from 2.6.5 to 2.6.6.
- [Release notes](https://github.com/berstend/puppeteer-extra/releases)
- [Commits](https://github.com/berstend/puppeteer-extra/compare/puppeteer-extra-plugin-stealth@2.6.5...puppeteer-extra-plugin-stealth@2.6.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:17:34 -05:00
dependabot[bot] a6a69e7ae5 chore(deps): bump twilio from 3.54.2 to 3.55.0 (#1679)
Bumps [twilio](https://github.com/twilio/twilio-node) from 3.54.2 to 3.55.0.
- [Release notes](https://github.com/twilio/twilio-node/releases)
- [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md)
- [Commits](https://github.com/twilio/twilio-node/compare/3.54.2...3.55.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:17:21 -05:00
dependabot[bot] 58761fc48e chore(deps): bump puppeteer-extra-plugin-adblocker from 2.11.9 to 2.11.10 (#1681)
Bumps [puppeteer-extra-plugin-adblocker](https://github.com/berstend/puppeteer-extra) from 2.11.9 to 2.11.10.
- [Release notes](https://github.com/berstend/puppeteer-extra/releases)
- [Commits](https://github.com/berstend/puppeteer-extra/compare/puppeteer-extra-plugin-adblocker@2.11.9...puppeteer-extra-plugin-adblocker@2.11.10)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 13:17:08 -05:00
wofnull 3ab0de6e86 chore(computeruniverse): add 3060ti cards (#1665) 2021-01-14 08:39:09 -05:00
wofnull be541713a8 fix(wipoid): added 3090/3080/3070/3060ti/ryzen store items (#1683) 2021-01-14 08:22:21 -05:00
wofnull 84382def6f feat(vsgamers): add maxPrice selector(#1682) 2021-01-14 08:14:44 -05:00
wofnull a768eb4cf5 fix(galaxus): update selector ( 14.01.2020 07:00 ) (#1664) 2021-01-14 08:13:54 -05:00
Jef LeCompte ca2580d72b docs: add hyperlinks 2021-01-12 17:36:46 -05:00
Jef LeCompte 9c35e728ac docs(twitch): add instructions on how to get tokens 2021-01-12 17:30:51 -05:00
Jef LeCompte 52c7e74372 chore(lint): add void for dangling promise 2021-01-12 12:18:50 -05:00
Jef LeCompte c479ce2b6a chore(deps): bump dependencies 2021-01-12 10:36:54 -05:00
xal3xhx 83508bc5ea feat(twilio): add support to have multiple numbers (#1450)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2021-01-11 13:48:03 -05:00
wofnull c9cda1e4e5 feat(galaxus): update selector, add out of stock check (#1607) 2021-01-11 12:16:04 -05:00
Jef LeCompte d0a4667a64 feat(asus): add outOfStock label (#1653)
Resolves #368
2021-01-11 12:14:15 -05:00
dependabot[bot] 459e9af34c chore(deps-dev): bump webpack from 5.11.1 to 5.12.3 (#1650)
Bumps [webpack](https://github.com/webpack/webpack) from 5.11.1 to 5.12.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.11.1...v5.12.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-11 12:01:34 -05:00
dependabot[bot] 8ed5daf729 chore(deps): bump amannn/action-semantic-pull-request from v2.2.0 to v3.1.0 (#1652)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v2.2.0 to v3.1.0.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v2.2.0...d2ab30dcffc66150340abb5b947d518a3c3ce9cb)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-11 12:01:22 -05:00
dependabot[bot] f8af5a85c0 chore(deps): bump messaging-api-telegram from 1.0.1 to 1.0.4 (#1649)
Bumps [messaging-api-telegram](https://github.com/Yoctol/messaging-apis) from 1.0.1 to 1.0.4.
- [Release notes](https://github.com/Yoctol/messaging-apis/releases)
- [Changelog](https://github.com/Yoctol/messaging-apis/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Yoctol/messaging-apis/compare/v1.0.1...v1.0.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-11 11:56:44 -05:00
Matt Conte 20bea85e41 fix(store): Update 30 series links and models for store.asus.com (#1645)
Fixes #1637
2021-01-10 13:03:01 -05:00
tilda 943ab837e2 docs: fix spelling in "Creating a Discord webhook" (#1646) 2021-01-10 13:02:14 -05:00
Benjamin Knofe 9c2ea8dbe9 feat(proshop-de): add proshop-de inStock selector (#1633) 2021-01-08 15:34:10 -05:00
dependabot[bot] 30f3fab419 chore(deps): bump open from 7.3.0 to 7.3.1 (#1630)
Bumps [open](https://github.com/sindresorhus/open) from 7.3.0 to 7.3.1.
- [Release notes](https://github.com/sindresorhus/open/releases)
- [Commits](https://github.com/sindresorhus/open/compare/v7.3.0...v7.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-08 10:27:57 -05:00
Jordan Tucker c0638d2e4b feat(web): properly set for attribute for labels (#1626) 2021-01-08 10:23:16 -05:00
dependabot[bot] 426a8ce015 chore(deps): bump google-github-actions/release-please-action from v2.13 to v2.14 (#1629)
Bumps [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) from v2.13 to v2.14.
- [Release notes](https://github.com/google-github-actions/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/release-please-action/compare/v2.13...7e0f05fbdf9f233ed4d15b06069125e83ae0c7e0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-08 10:05:49 -05:00
dependabot[bot] 21d0a94a8e chore(deps): bump @slack/web-api from 5.14.0 to 5.15.0 (#1606)
Bumps [@slack/web-api](https://github.com/slackapi/node-slack-sdk) from 5.14.0 to 5.15.0.
- [Release notes](https://github.com/slackapi/node-slack-sdk/releases)
- [Commits](https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@5.14.0...@slack/web-api@5.15.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-07 11:14:17 -05:00
wofnull 8faf3202e7 fix(bestbuy): shorter pageview urls and missing carturl links (#1613)
Fixes #1610
2021-01-07 10:53:08 -05:00
wofnull ef926d2282 feat(store): add SG Location for Amazon and Newegg (#1600) 2021-01-07 10:51:20 -05:00
dependabot[bot] 3f62921439 chore(deps-dev): bump nodemon from 2.0.6 to 2.0.7 (#1621)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.6...v2.0.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-07 10:42:40 -05:00
dependabot[bot] 1ed8eca6f9 chore(deps): bump twilio from 3.54.1 to 3.54.2 (#1622)
Bumps [twilio](https://github.com/twilio/twilio-node) from 3.54.1 to 3.54.2.
- [Release notes](https://github.com/twilio/twilio-node/releases)
- [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md)
- [Commits](https://github.com/twilio/twilio-node/compare/3.54.1...3.54.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-07 10:42:24 -05:00
Jef LeCompte 53cb59aada chore: update bug template 2021-01-06 17:22:52 -05:00
dependabot[bot] 8d0a32ca22 chore(deps-dev): bump @types/node from 14.14.19 to 14.14.20 (#1597)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.19 to 14.14.20.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-05 14:07:04 -05:00
wofnull 445a00728f fix(galaxus): update selector (#1599) 2021-01-05 08:18:58 -05:00
dependabot[bot] 6a4049bbc3 chore(deps-dev): bump webpack from 5.11.0 to 5.11.1 (#1541)
Bumps [webpack](https://github.com/webpack/webpack) from 5.11.0 to 5.11.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.11.0...v5.11.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 18:13:33 -05:00
dependabot[bot] 13d4ee6a71 chore(deps): bump twitch from 4.3.6 to 4.3.8 (#1533)
Bumps [twitch](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch) from 4.3.6 to 4.3.8.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.8/packages/twitch)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 18:13:23 -05:00
dependabot[bot] a74980b728 chore(deps): bump twitch-chat-client from 4.3.6 to 4.3.8 (#1534)
Bumps [twitch-chat-client](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-chat-client) from 4.3.6 to 4.3.8.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.8/packages/twitch-chat-client)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-03 02:17:20 -05:00
dependabot[bot] 8a1874216a chore(deps-dev): bump @types/node from 14.14.16 to 14.14.19 (#1585)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.16 to 14.14.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-03 02:16:42 -05:00
dependabot[bot] 0ef76d66bc chore(deps): bump google-github-actions/release-please-action from v2.12.3 to v2.13 (#1558)
Bumps [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) from v2.12.3 to v2.13.
- [Release notes](https://github.com/google-github-actions/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/release-please-action/compare/v2.12.3...f8ac173f7087940f7d90793fd96e1f83d43ee772)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-03 02:16:22 -05:00
Anthony Tam 082776cfca fix(store): update missing/mislabeled cards for Canadian retailers (#1574) 2021-01-03 02:13:18 -05:00
wofnull ad5bd55c1a fix(galaxus): update selector (#1578) 2021-01-03 02:11:48 -05:00
X123Moin 4f86d2462e fix(store): update out of stock detection for MediaMarkt and Saturn (#1549)
Fixes #1545
2021-01-03 02:09:14 -05:00
Anthony Tam 8ab6e1f1d8 feat(store): add GPU and CPU support for Vuugo (#1555) 2021-01-03 02:06:51 -05:00
CyberMew f9a3d03f35 feat(pushover): add screenshot to push notification if available (#1552) 2021-01-03 02:05:36 -05:00
Reid Kornman 9ef83fd1d2 chore(bestbuy): add 3060ti cards (#1548) 2021-01-03 02:04:53 -05:00
Staffan 8e5c28e10b chore(proshop-dk): add 3060ti, add 3070, update 3080, update 3090, add ryzen cpus (#1526) 2021-01-03 02:03:11 -05:00
dependabot[bot] de69f7ae8a chore(deps): bump twitch-auth from 4.3.6 to 4.3.8 (#1532)
Bumps [twitch-auth](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-auth) from 4.3.6 to 4.3.8.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.8/packages/twitch-auth)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-03 02:02:05 -05:00
Collin Garvey ca1564e8fa chore(philips-hue): correct the log text (#1523) 2020-12-27 02:18:06 -05:00
Jef LeCompte a908ce417b chore(redis): init client once
Regression of 6bc7737ef0
2020-12-26 07:37:33 -08:00
Jef LeCompte 6bc7737ef0 fix: disable redis if not configured
Fixes #1516
2020-12-26 07:28:49 -08:00
Dan Robinson 14998d87f9 chore(evga): add 3060ti cards 2020-12-25 19:24:04 -05:00
dependabot[bot] 76761c5b8d chore(deps): bump amannn/action-semantic-pull-request (#1494)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v2.1.1 to v2.2.0.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/master/CHANGELOG.md)
- [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v2.1.1...e92d269774194a4d390ad91a817b19ccb588410e)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-25 19:22:47 -05:00
dependabot[bot] a402c64f5e chore(deps): bump cheerio from 1.0.0-rc.3 to 1.0.0-rc.5 (#1495)
Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.0.0-rc.3 to 1.0.0-rc.5.
- [Release notes](https://github.com/cheeriojs/cheerio/releases)
- [Changelog](https://github.com/cheeriojs/cheerio/blob/main/History.md)
- [Commits](https://github.com/cheeriojs/cheerio/compare/1.0.0-rc.3...v1.0.0-rc.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-25 19:22:35 -05:00
dependabot[bot] e893d79ad7 chore(deps-dev): bump @types/node from 14.14.14 to 14.14.16 (#1506)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.14 to 14.14.16.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-25 19:14:49 -05:00
Bailey Miller fb82526a42 feat: add redis (#1390) 2020-12-25 19:14:21 -05:00
neatchee 90fb430b71 fix(amazon-de-warehouse): update wrong maxPrice selector (#1514) 2020-12-25 19:10:19 -05:00
Sergej Lopatkin 5b70ff14cb feat(store): add equippr & futurex for DE region (#1501) 2020-12-25 19:03:36 -05:00
erwinc1 0c6e2d587d fix: properly pass array entries as separate indices (#1502) 2020-12-25 19:01:23 -05:00
neatchee 1cf618c1c1 feat(lookup): add protection against infinite recursion for Cloudflare (#1505)
Fixes #1459
Fixes #1490
2020-12-23 22:23:43 -08:00
StanZha 28d1cf90b8 chore(store): rx6800xt for memoryexpress, amazon-ca (#1491)
* rx6900xt urls added for amd official store, newegg and bestbuy

* added rx6900xt microcenter url

* linter issue fix

* few more 6800xt added for Canada
2020-12-22 11:57:57 -05:00
Jef LeCompte f34a808451 feat(lookup): add max price for xbox
Resolves #1436
2020-12-21 16:09:37 -05:00
sohaiiil eb59dc3433 fix(store): link builder in UK stores (#1486)
Going to use static links instead now.
2020-12-21 13:01:53 -05:00
KnotenJoe beee355563 feat(store): add pcking and acompc (#1470)
* Create pcking

Another store for Germany.  I tested the code on my pc.

* docs: add pcking to store list

* Rename pcking to pcking.ts

* Update index.ts

* Update filter.md

* Update index.ts

* Create acompc.ts

* chore: linting

* chore: linting

Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-21 12:58:46 -05:00
David Gauch 5a6b252ae1 chore(newegg): add links for rx6800xt and rx6800 (#1484)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-21 17:40:39 +00:00
Jef LeCompte 0c80d6caea docs: add missing font key 2020-12-21 12:37:39 -05:00
Jef LeCompte 272b49b4ac docs: change fonts to Roboto 2020-12-21 12:33:33 -05:00
James Hinton ec8d3571cf feat(store): add johnlewis store, add shopto store (#1481)
* add `johnlewis` store

* feat: add `shopto` store

* chore: linting

* chore: linting

Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-20 18:00:00 -05:00
KnotenJoe 7a5bc22ba8 fix(galaxus): maxPrice selector (#1469) 2020-12-20 17:51:31 -05:00
sohaiiil 673b5f325c docs(reference): add AWD-IT (#1460) 2020-12-19 12:12:33 -05:00
Richard Chen Zheng 70b2e7c408 docs(reference): add AMD 6800, 6800xt, 6900xt (#1463) 2020-12-19 12:11:19 -05:00
Phillip Kramp 4debcd33a7 chore(amazon): add nvidia and amd cards (#1430) 2020-12-18 09:23:55 -05:00
dependabot[bot] 0b7d92341a chore(deps): bump google-github-actions/release-please-action from v2.12.2 to v2.12.3 (#1454)
Bumps [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) from v2.12.2 to v2.12.3.
- [Release notes](https://github.com/google-github-actions/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google-github-actions/release-please-action/compare/v2.12.2...ecf21cd22e32f8a23d66f762091b994d1a60c1c4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 09:23:11 -05:00
dependabot[bot] 0cc5de95ca chore(deps): bump dorny/paths-filter from v2.6.0 to v2.7.0 (#1453)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from v2.6.0 to v2.7.0.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/v2.6.0...4e7fcc37b4770a7082a9be52b4c543d2839f55df)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 09:21:58 -05:00
dependabot[bot] bc788cbd95 chore(deps-dev): bump webpack from 5.10.3 to 5.11.0 (#1456)
Bumps [webpack](https://github.com/webpack/webpack) from 5.10.3 to 5.11.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.10.3...v5.11.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-18 09:11:45 -05:00
Mark Dietzer ab037029b6 fix(proxy): update proxy module (#1451)
Fixes #1437
2020-12-18 09:07:03 -05:00
Jef LeCompte 6e2a16238c feat: remove stale user agents, use top 50
This change should vastly improve success rate.
2020-12-17 19:39:23 -05:00
neatchee f86a8259f3 feat(lookup): handle Cloudflare DDoS protection (#1434)
Resolves #1297
2020-12-17 11:49:43 -05:00
dependabot[bot] 2b5588bd46 chore(deps): bump actions/setup-node from v2.1.3 to v2.1.4 (#1439)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from v2.1.3 to v2.1.4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.1.3...c46424eee26de4078d34105d3de3cc4992202b1e)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-17 11:45:41 -05:00
dependabot[bot] cdc3a84d2d chore(deps-dev): bump @types/node from 14.14.13 to 14.14.14 (#1431)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.13 to 14.14.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-17 11:45:35 -05:00
dependabot[bot] ef9afb8d69 chore(deps-dev): bump webpack from 5.10.1 to 5.10.3 (#1432)
Bumps [webpack](https://github.com/webpack/webpack) from 5.10.1 to 5.10.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.10.1...v5.10.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-17 11:45:28 -05:00
dependabot[bot] 8836a1c1c4 chore(deps): bump twilio from 3.54.0 to 3.54.1 (#1440)
Bumps [twilio](https://github.com/twilio/twilio-node) from 3.54.0 to 3.54.1.
- [Release notes](https://github.com/twilio/twilio-node/releases)
- [Changelog](https://github.com/twilio/twilio-node/blob/main/CHANGES.md)
- [Commits](https://github.com/twilio/twilio-node/compare/3.54.0...3.54.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-17 11:45:19 -05:00
Jef LeCompte 96ae818e84 fix(lookup): remove mobile versions of user agent
Removing mobile versions of user agents should help
us with false positives, as the mobile version may give
different selectors which we cannot parse correctly.
2020-12-17 11:34:27 -05:00
Eugene Shalygin 7425e6437f chore(store): add some radeon models for German stores (#1426) 2020-12-15 17:11:20 -05:00
Mark Dietzer f65df4ce56 fix(proxy): fix requests with proxies (#1408) 2020-12-15 17:08:38 -05:00
Jef LeCompte ecdb7a058d style(docs): change code font to JetBrains Mono 2020-12-15 10:23:52 -05:00
carrierfry 02d29c3c64 fix(lookup): check out of stock before price (#1422) 2020-12-15 09:27:05 -05:00
RitoFaith ca59777917 feat(azerty): add ryzen 5000 series (#878) 2020-12-15 08:10:26 -05:00
Jef LeCompte 8db16dd0cb docs: fix hotlink 2020-12-15 07:49:16 -05:00
Jef LeCompte a9b2ecfd48 docs: fix banner location 2020-12-15 00:37:08 -05:00
Jef LeCompte 8fdfa4d57c style(notification): update desktop look and feel 2020-12-15 00:35:20 -05:00
Jef LeCompte 64898b8ae3 chore(deps): bump twitch, notifier, mailer, typescript, node, and webpack 2020-12-15 00:28:04 -05:00
Jef LeCompte d592cd5d77 chore: update template, typos in docs (#1386) 2020-12-15 00:23:04 -05:00
StanZha 316b3bbb81 chore(store): add rx6900xt for newegg(-ca), amd-ca, bestbuy, and microcenter (#1420) 2020-12-15 00:22:47 -05:00
Mark Dietzer be1953b206 feat(proxy): fallback to a global proxy list (#1388) 2020-12-13 16:37:54 -05:00
Mark Dietzer 445689efc4 fix(webui): handling of file serving (#1383) 2020-12-13 10:40:04 -05:00
sohaiiil 2d25c464f8 docs(store): add missing uk store (#1384) 2020-12-13 10:38:27 -05:00
Jef LeCompte 704fa393c2 ci: update release-please 2020-12-13 00:48:25 -05:00
dependabot[bot] 769f19efa2 chore(deps): bump GoogleCloudPlatform/release-please-action from v2.10 to v2.12.2 (#1339)
Bumps [GoogleCloudPlatform/release-please-action](https://github.com/GoogleCloudPlatform/release-please-action) from v2.10 to v2.12.2.
- [Release notes](https://github.com/GoogleCloudPlatform/release-please-action/releases)
- [Changelog](https://github.com/google-github-actions/release-please-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/GoogleCloudPlatform/release-please-action/compare/v2.10...9a3489838773d66aa63a899ec5dbd26f43b4837b)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-13 00:44:31 -05:00
234 changed files with 49287 additions and 24277 deletions
-5
View File
@@ -9,9 +9,4 @@ trim_trailing_whitespace = true
insert_final_newline = true insert_final_newline = true
[*.md] [*.md]
indent_style = space
indent_size = 4
[*.ts]
indent_style = tab
indent_size = 4 indent_size = 4
+2
View File
@@ -0,0 +1,2 @@
build/
docs/
+11
View File
@@ -0,0 +1,11 @@
{
"extends": "./node_modules/gts/",
"rules": {
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
]
}
}
+8 -13
View File
@@ -3,36 +3,31 @@ name: "\U0001F41B Bug report"
about: Report a bug for this project about: Report a bug for this project
title: '' title: ''
labels: '' labels: ''
assignees: jef assignees: ''
--- ---
## Expected Behavior ## Expected Behavior
<!--- Tell us what should happen --> <!-- Tell us what should happen -->
## Current Behavior ## Current Behavior
<!--- Tell us what happens instead of the expected behavior --> <!-- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce ## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to --> <!-- Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. -->
<!--- reproduce this bug. Include code to reproduce, if relevant --> <!-- Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment ## Environment
**OS:** - OS:
**dotenv file:**
<!-- Put your dotenv within backticks below. Be sure to remove any secrets/passwords. -->
```dotenv ```dotenv
``` ```
## Logs ## Logs
<!--- Provide a brief log --> <!-- Provide a brief log -->
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
npm run test
+25 -16
View File
@@ -1,39 +1,48 @@
name: ci name: Continuous Integration
on: on:
pull_request: pull_request:
branches: branches:
- main - main
push:
branches:
- main
jobs: jobs:
build-and-lint: build-lint:
name: Build and lint
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - name: Checkout repository
- uses: actions/setup-node@v2.1.3 uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with: with:
node-version: 14.15.0 node-version: 15.10.0
- uses: actions/cache@v2 - name: Setup build cache
uses: actions/cache@v2
with: with:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node- restore-keys: ${{ runner.os }}-node-
- name: Add problem matcher - name: Install dependencies
run: echo "::add-matcher::.github/xo-problem-matcher.json" run: npm ci
- name: Pull dependencies - name: Compile TypeScript
run: | run: npm run compile
npm ci - name: Run linter
npm run build run: npm run lint
npm run lint
build-docker: build-docker:
name: Build Docker image
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - name: Checkout repository
- uses: dorny/paths-filter@v2.6.0 uses: actions/checkout@v2
- name: Run paths filter
uses: dorny/paths-filter@v2
id: filter id: filter
with: with:
filters: | filters: |
build: build:
- 'Dockerfile' - 'Dockerfile'
- 'package*.json' - 'package*.json'
- name: Build image - name: Build Docker image
if: steps.filter.outputs.build == 'true' if: steps.filter.outputs.build == 'true'
run: docker build . run: docker build .
+6 -5
View File
@@ -1,19 +1,20 @@
name: documentation name: Documentation
on: on:
push: push:
branches: branches:
- main - main
jobs: jobs:
deploy: build-deploy:
name: Build and publish documentation
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Setup Python runtime - name: Setup Python
uses: actions/setup-python@v2 uses: actions/setup-python@v2
with: with:
python-version: 3.x python-version: 3.x
- name: Install Python dependencies - name: Install Python packages
run: pip install mkdocs-material mkdocs-git-revision-date-plugin mkdocs-macros-plugin run: pip install mkdocs-material mkdocs-git-revision-date-plugin mkdocs-macros-plugin
- name: Deploy documentation - name: Build and publish documentation
run: mkdocs gh-deploy --force run: mkdocs gh-deploy --force
+23
View File
@@ -0,0 +1,23 @@
name: Nightly Release
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch: {}
jobs:
build-release:
name: Build and release Docker image
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Login into GitHub Container Registry
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- name: Build Docker image
run: |
docker build \
-t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
-t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
- name: Release Docker image
run: |
docker push "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}"
docker push "ghcr.io/${GITHUB_REPOSITORY}:nightly"
-19
View File
@@ -1,19 +0,0 @@
name: nightly
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch: {}
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: login into github package registry
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- name: build nightly docker image
run: |
docker build \
-t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
-t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
- name: publish nightly image
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
+9 -6
View File
@@ -1,15 +1,18 @@
name: pr-lint name: Pull Request Linter
on: on:
pull_request_target: pull_request:
types: types:
- opened - opened
- edited - edited
- reopened - reopened
- synchronize - synchronize
jobs: jobs:
main: lint-pr:
name: Lint pull request title
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: amannn/action-semantic-pull-request@v2.1.1 - name: Lint pull request title
env: uses: jef/conventional-commits-pr-action@v1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with:
comment: false
token: ${{ secrets.GITHUB_TOKEN }}
@@ -1,22 +1,27 @@
name: cd name: Release
on: on:
push: push:
branches: branches:
- main - main
jobs: jobs:
publish: build-tag-release:
name: Build, tag, and release Docker image
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - name: Checkout repository
- uses: GoogleCloudPlatform/release-please-action@v2.10 uses: actions/checkout@v2
- name: Setup release please
uses: google-github-actions/release-please-action@v2
id: release id: release
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
release-type: simple release-type: node
changelog-path: CHANGELOG.md
package-name: streetmerchant package-name: streetmerchant
- name: login into github package registry - name: Login into GitHub Container Registry
if: ${{ steps.release.outputs.release_created }}
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- name: build latest docker image - name: Build Docker image
if: ${{ steps.release.outputs.release_created }} if: ${{ steps.release.outputs.release_created }}
run: | run: |
docker build \ docker build \
@@ -24,6 +29,8 @@ jobs:
-t "ghcr.io/${GITHUB_REPOSITORY}:latest" . -t "ghcr.io/${GITHUB_REPOSITORY}:latest" .
env: env:
TAG_NAME: ${{ steps.release.outputs.tag_name }} TAG_NAME: ${{ steps.release.outputs.tag_name }}
- name: publish latest image - name: Release Docker image
if: ${{ steps.release.outputs.release_created }} if: ${{ steps.release.outputs.release_created }}
run: docker push "ghcr.io/${GITHUB_REPOSITORY}" run: |
docker push "ghcr.io/${GITHUB_REPOSITORY}:${TAG_NAME}"
docker push "ghcr.io/${GITHUB_REPOSITORY}:latest"
+2 -2
View File
@@ -1,4 +1,4 @@
name: 'Close stale issues' name: Stale Checker
on: on:
schedule: schedule:
- cron: '0 0 * * *' - cron: '0 0 * * *'
@@ -21,6 +21,6 @@ jobs:
stale-pr-message: ${{ env.STALE_MESSAGE }} stale-pr-message: ${{ env.STALE_MESSAGE }}
env: env:
CLOSE_MESSAGE: 'This issue has been closed because it is stale. Reopen if necessary.' CLOSE_MESSAGE: 'This issue has been closed because it is stale. Reopen if necessary.'
EXEMPT_LABEL: 'status: needs discussion' EXEMPT_LABEL: 'status: needs discussion,priority: low,priority: medium, priority: high,status: help wanted,status: in progress'
STALE_LABEL: 'status: stale' 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' 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'
-21
View File
@@ -1,21 +0,0 @@
{
"problemMatcher": [
{
"owner": "xo",
"pattern": [
{
"regexp": "^\\s+(.*):(\\d+):(\\d+)$",
"file": 1
},
{
"regexp": "^\\s+✖\\s+(\\d+):(\\d+)\\s+(.*)\\s+(.*)$",
"line": 1,
"column": 2,
"message": 3,
"code": 4,
"loop": true
}
]
}
]
}
+4 -1
View File
@@ -2,11 +2,12 @@
.vs/ .vs/
.vscode/ .vscode/
build/ build/
coverage/
node_modules/ node_modules/
src/config/*.yaml
.env .env
dotenv dotenv
*.proxies
success-*.png success-*.png
*.wav *.wav
@@ -16,3 +17,5 @@ success-*.png
desktop.ini desktop.ini
twitch.json twitch.json
terraform/terraform.tfstate
terraform/terraform.tfstate.backup
+1 -1
View File
@@ -1 +1 @@
14.15.0 15.10.0
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
...require('gts/.prettierrc.json')
}
+105
View File
@@ -1,5 +1,110 @@
# Changelog # Changelog
## [3.5.0](https://www.github.com/jef/streetmerchant/compare/v3.4.1...v3.5.0) (2021-03-02)
### Features
* add restart time for leaking Chromium in Ubuntu ([#1880](https://www.github.com/jef/streetmerchant/issues/1880)) ([1009ce6](https://www.github.com/jef/streetmerchant/commit/1009ce6636c21c378121bd83b251a371a1b8568e))
* add terraform infra as code for AWS fargate ([#1987](https://www.github.com/jef/streetmerchant/issues/1987)) ([d341ef7](https://www.github.com/jef/streetmerchant/commit/d341ef72aa6b74e54c11aeb455516b2a69a8a664))
* clean up proxy logging with n/N in each lookup ([#1839](https://www.github.com/jef/streetmerchant/issues/1839)) ([8df4339](https://www.github.com/jef/streetmerchant/commit/8df4339bdb3d96cb448e3acb727fdc534688bfc0))
* **notification:** add simple SmartThings switch activation ([#1902](https://www.github.com/jef/streetmerchant/issues/1902)) ([c22c960](https://www.github.com/jef/streetmerchant/commit/c22c960dc179f5ed74ae41a25178e6d2feed0bf9))
* **notification:** add Streamlabs support ([#1872](https://www.github.com/jef/streetmerchant/issues/1872)) ([edb39f8](https://www.github.com/jef/streetmerchant/commit/edb39f8f05451c3cc1994c0beb2338bae04ab585))
* **nvidia:** updated store for europe ([#1732](https://www.github.com/jef/streetmerchant/issues/1732)) ([2143b15](https://www.github.com/jef/streetmerchant/commit/2143b158090dc065a29bdde4c6dc592a5a745c07))
* **sms:** add US Cellular ([#1874](https://www.github.com/jef/streetmerchant/issues/1874)) ([4455e4e](https://www.github.com/jef/streetmerchant/commit/4455e4ed8df84a37fa16fdc58d130c11a997f9b5))
* **store:** add globaldata ([#2004](https://www.github.com/jef/streetmerchant/issues/2004)) ([5effbae](https://www.github.com/jef/streetmerchant/commit/5effbae882bed9d287f8ccc84e9dd38a6ebdebb1))
* **store:** add ldlc (FR) ([#2037](https://www.github.com/jef/streetmerchant/issues/2037)) ([a7be09d](https://www.github.com/jef/streetmerchant/commit/a7be09d56eda441cb1625ebb642cccab63d71f31))
* **store:** add netonnet-no ([#1989](https://www.github.com/jef/streetmerchant/issues/1989)) ([e6803d4](https://www.github.com/jef/streetmerchant/commit/e6803d4d7c60424c043b540f0cb555bd29b9d7aa))
* **store:** add Norwegian stores ([#1985](https://www.github.com/jef/streetmerchant/issues/1985)) ([5a5927b](https://www.github.com/jef/streetmerchant/commit/5a5927ba1ef5d138f5741b672b1fe2466e5760c2))
* **store:** add novoatalho (PT) ([#2043](https://www.github.com/jef/streetmerchant/issues/2043)) ([a3c726b](https://www.github.com/jef/streetmerchant/commit/a3c726b45c5ab8f0a6c8a239e0de0a913c4e0c55))
* **store:** add PCDiga.com ([#1990](https://www.github.com/jef/streetmerchant/issues/1990)) ([2501f6b](https://www.github.com/jef/streetmerchant/commit/2501f6b5cc46aa05bfe94ca238b5866e4fd60f36))
* **store:** corsair-uk ([#1733](https://www.github.com/jef/streetmerchant/issues/1733)) ([c81282e](https://www.github.com/jef/streetmerchant/commit/c81282ef9fd95c39dc6d338f3d79de16906c89b6))
* use node 15, use package version ([#2066](https://www.github.com/jef/streetmerchant/issues/2066)) ([eee669b](https://www.github.com/jef/streetmerchant/commit/eee669b1b3e54ada1180877fe766aaded9e02936))
### Bug Fixes
* **alternate:** update URLs ([#1814](https://www.github.com/jef/streetmerchant/issues/1814)) ([d63685f](https://www.github.com/jef/streetmerchant/commit/d63685f2905eb7f207f13da7682ad6a81d9d7aca))
* **amazon-ca:** out of stock check was missing ([#1885](https://www.github.com/jef/streetmerchant/issues/1885)) ([0e65f33](https://www.github.com/jef/streetmerchant/commit/0e65f336902dec99aa10a4b4823f4d2411674cae))
* **amazon-ca:** update selector ([#1851](https://www.github.com/jef/streetmerchant/issues/1851)) ([3293184](https://www.github.com/jef/streetmerchant/commit/329318427fc3eb1081751289401269119a252905))
* **amazon-uk:** add label for ps5 ([8ee6815](https://www.github.com/jef/streetmerchant/commit/8ee6815c0fb6ea129d2de600d10e6732e90ce924)), closes [#2036](https://www.github.com/jef/streetmerchant/issues/2036)
* **discord:** ensure first group in list is notified ([#1788](https://www.github.com/jef/streetmerchant/issues/1788)) ([9791568](https://www.github.com/jef/streetmerchant/commit/9791568cd4205b00ce9c5d301937efc17089b769))
* **docs:** nvidia store changes ([#1797](https://www.github.com/jef/streetmerchant/issues/1797)) ([de1427c](https://www.github.com/jef/streetmerchant/commit/de1427c076e5051673635fb9ec7e9880f0e3c260))
* **galaxus:** update selector ([#1730](https://www.github.com/jef/streetmerchant/issues/1730)) ([1015358](https://www.github.com/jef/streetmerchant/commit/1015358b502a30a8cfc9fedfeab2dc09098d9615))
* **microcenter:** properly flag in stock items ([#1754](https://www.github.com/jef/streetmerchant/issues/1754)) ([ce609fb](https://www.github.com/jef/streetmerchant/commit/ce609fb518fa7811a77e3ab7d26ecacf86ac35e6))
* **nvidia:** update inStock text ([#1850](https://www.github.com/jef/streetmerchant/issues/1850)) ([4f57df0](https://www.github.com/jef/streetmerchant/commit/4f57df016ba2ab6fdd5e7ca7e98ea6d9fba463a7))
* remove package-lock.json ([e3d0980](https://www.github.com/jef/streetmerchant/commit/e3d09803ad3d53b5c4310b3e369a69c99515fd8c))
* **vuugo:** add out of stock check ([#1731](https://www.github.com/jef/streetmerchant/issues/1731)) ([9695e29](https://www.github.com/jef/streetmerchant/commit/9695e29a02ea320842954db9f2ea51612b983490))
* **web:** 404 Error / page not visible ([#1825](https://www.github.com/jef/streetmerchant/issues/1825)) ([95b4a15](https://www.github.com/jef/streetmerchant/commit/95b4a153bd8b708cfefd07e3f16e787bb069da48))
* **wipoid:** corrected 3070 / 3080 links ([#1879](https://www.github.com/jef/streetmerchant/issues/1879)) ([2572c8a](https://www.github.com/jef/streetmerchant/commit/2572c8af80685be514ff762f8203e7de7cab8634))
### [3.4.1](https://www.github.com/jef/streetmerchant/compare/v3.4.0...v3.4.1) (2021-01-17)
### Bug Fixes
* **proxy:** build proxyList correctly ([c177aed](https://www.github.com/jef/streetmerchant/commit/c177aedd210e14cb7d401295cb16ece1dfb1ebe7))
## [3.4.0](https://www.github.com/jef/streetmerchant/compare/v3.3.0...v3.4.0) (2021-01-17)
### Features
* add browser opening to test:notification ([f87053c](https://www.github.com/jef/streetmerchant/commit/f87053cb02e04b3cb2c0cf253187a9e9857c9858))
* add c8 and mocha for testing ([f87053c](https://www.github.com/jef/streetmerchant/commit/f87053cb02e04b3cb2c0cf253187a9e9857c9858))
* add command parameter to set custom dotenv conf ([#1590](https://www.github.com/jef/streetmerchant/issues/1590)) ([b03d242](https://www.github.com/jef/streetmerchant/commit/b03d24217f8ff5a56ddf19c019d10b48afec813f))
* add redis ([#1390](https://www.github.com/jef/streetmerchant/issues/1390)) ([fb82526](https://www.github.com/jef/streetmerchant/commit/fb82526a427e503fff1f1cf56b091ff0c8a5a96e))
* **asus:** add outOfStock label ([#1653](https://www.github.com/jef/streetmerchant/issues/1653)) ([d0a4667](https://www.github.com/jef/streetmerchant/commit/d0a4667a643398d836652642b993107ed05619d8)), closes [#368](https://www.github.com/jef/streetmerchant/issues/368)
* **azerty:** add ryzen 5000 series ([#878](https://www.github.com/jef/streetmerchant/issues/878)) ([ca59777](https://www.github.com/jef/streetmerchant/commit/ca59777917777401affc5b72a68238983f286237))
* **caseking:** add 3060ti/3070 cards / add missing 3080/3090 cards ([#1715](https://www.github.com/jef/streetmerchant/issues/1715)) ([b2ebac3](https://www.github.com/jef/streetmerchant/commit/b2ebac36c078d8001501d45e3a2bbf5f91a1a489))
* **galaxus:** update selector, add out of stock check ([#1607](https://www.github.com/jef/streetmerchant/issues/1607)) ([c9cda1e](https://www.github.com/jef/streetmerchant/commit/c9cda1e4e597c7103a32c32c9e5a79824ad44de5))
* **lookup:** add max price for xbox ([f34a808](https://www.github.com/jef/streetmerchant/commit/f34a808451b735c384f4b763cedd816c85ab7abc)), closes [#1436](https://www.github.com/jef/streetmerchant/issues/1436)
* **lookup:** add protection against infinite recursion for Cloudflare ([#1505](https://www.github.com/jef/streetmerchant/issues/1505)) ([1cf618c](https://www.github.com/jef/streetmerchant/commit/1cf618c1c12d3ab94688139a8410bed181af3eb2)), closes [#1459](https://www.github.com/jef/streetmerchant/issues/1459) [#1490](https://www.github.com/jef/streetmerchant/issues/1490)
* **lookup:** handle Cloudflare DDoS protection ([#1434](https://www.github.com/jef/streetmerchant/issues/1434)) ([f86a825](https://www.github.com/jef/streetmerchant/commit/f86a8259f37f0ed25b00e243b29aa28c3e68bdff)), closes [#1297](https://www.github.com/jef/streetmerchant/issues/1297)
* **proshop-de:** add proshop-de inStock selector ([#1633](https://www.github.com/jef/streetmerchant/issues/1633)) ([9c2ea8d](https://www.github.com/jef/streetmerchant/commit/9c2ea8dbe91f46e24eae1e9e717164d99f94d0e1))
* **proxy:** fallback to a global proxy list ([#1388](https://www.github.com/jef/streetmerchant/issues/1388)) ([be1953b](https://www.github.com/jef/streetmerchant/commit/be1953b2069fce72969904c1bc18055df73f4b6b))
* **pushover:** add screenshot to push notification if available ([#1552](https://www.github.com/jef/streetmerchant/issues/1552)) ([f9a3d03](https://www.github.com/jef/streetmerchant/commit/f9a3d03f356d7ed2072772b86c7776f62dcd32b5))
* remove stale user agents, use top 50 ([6e2a162](https://www.github.com/jef/streetmerchant/commit/6e2a16238c54bc448f3ae5243ef8729f384ea59b))
* **store:** add `johnlewis` store, add `shopto` store ([#1481](https://www.github.com/jef/streetmerchant/issues/1481)) ([ec8d357](https://www.github.com/jef/streetmerchant/commit/ec8d3571cfbbd3a028aed9b5650eb8a52c9af587))
* **store:** add equippr & futurex for DE region ([#1501](https://www.github.com/jef/streetmerchant/issues/1501)) ([5b70ff1](https://www.github.com/jef/streetmerchant/commit/5b70ff14cb9ab5e0a72922624d54b40bb0642bcd))
* **store:** add GPU and CPU support for Vuugo ([#1555](https://www.github.com/jef/streetmerchant/issues/1555)) ([8ab6e1f](https://www.github.com/jef/streetmerchant/commit/8ab6e1f1d801c3ae52987fe9e8550adbe2015ea6))
* **store:** add more italian sites ([#1701](https://www.github.com/jef/streetmerchant/issues/1701)) ([cb898c7](https://www.github.com/jef/streetmerchant/commit/cb898c7923ce8a45548807571e734ad232ce0004))
* **store:** add pcking and acompc ([#1470](https://www.github.com/jef/streetmerchant/issues/1470)) ([beee355](https://www.github.com/jef/streetmerchant/commit/beee35556376056b31d6719fb090ce58b7ea985f))
* **store:** add SG Location for Amazon and Newegg ([#1600](https://www.github.com/jef/streetmerchant/issues/1600)) ([ef926d2](https://www.github.com/jef/streetmerchant/commit/ef926d2282cedaef38bc3d4d427820f4aa65dc8d))
* **store:** addition of several australian sites ([#1651](https://www.github.com/jef/streetmerchant/issues/1651)) ([2fa8937](https://www.github.com/jef/streetmerchant/commit/2fa893795f21535e1799116843e0668b669835ab))
* **store:** specify links to navigate to between product searches ([#1542](https://www.github.com/jef/streetmerchant/issues/1542)) ([0982774](https://www.github.com/jef/streetmerchant/commit/09827741aec2158e88c19fd6b0156c32736671c8))
* **twilio:** add support to have multiple numbers ([#1450](https://www.github.com/jef/streetmerchant/issues/1450)) ([83508bc](https://www.github.com/jef/streetmerchant/commit/83508bc5ea509aac0742c525a6434ef8f8001899))
* update Docker and ci ([f87053c](https://www.github.com/jef/streetmerchant/commit/f87053cb02e04b3cb2c0cf253187a9e9857c9858))
* **vsgamers:** add maxPrice selector([#1682](https://www.github.com/jef/streetmerchant/issues/1682)) ([84382de](https://www.github.com/jef/streetmerchant/commit/84382def6f23b1e8b1ad8c14fb4f423f32a35eb7))
* **web:** properly set `for` attribute for labels ([#1626](https://www.github.com/jef/streetmerchant/issues/1626)) ([c0638d2](https://www.github.com/jef/streetmerchant/commit/c0638d2e4b923abacaf81fb09fd80948cd5e7ce9))
### Bug Fixes
* **acompc:** false positives ([#1699](https://www.github.com/jef/streetmerchant/issues/1699)) ([0a1198b](https://www.github.com/jef/streetmerchant/commit/0a1198b69c4e7b22fcf9c9d0ed94ff51da4f8bce))
* **amazon-de-warehouse:** update wrong maxPrice selector ([#1514](https://www.github.com/jef/streetmerchant/issues/1514)) ([90fb430](https://www.github.com/jef/streetmerchant/commit/90fb430b712aa6a89227a17d37a83380326db21b))
* **bandh:** asus cards / out of stock check added ([#1670](https://www.github.com/jef/streetmerchant/issues/1670)) ([b821eab](https://www.github.com/jef/streetmerchant/commit/b821eab273f3d8d4cecc1642467dbbad63f4e763))
* **bestbuy:** shorter pageview urls and missing carturl links ([#1613](https://www.github.com/jef/streetmerchant/issues/1613)) ([8faf320](https://www.github.com/jef/streetmerchant/commit/8faf3202e79825de5289659435c5f93b4e892086)), closes [#1610](https://www.github.com/jef/streetmerchant/issues/1610)
* **computeruniverse:** false positives ([#1698](https://www.github.com/jef/streetmerchant/issues/1698)) ([e0849c4](https://www.github.com/jef/streetmerchant/commit/e0849c4dc2427a9f8be1927847a1fb2609a24600))
* disable redis if not configured ([6bc7737](https://www.github.com/jef/streetmerchant/commit/6bc7737ef04e5592e19b0b6a76e5fb0cd4b048df)), closes [#1516](https://www.github.com/jef/streetmerchant/issues/1516)
* **galaxus:** maxPrice selector ([#1469](https://www.github.com/jef/streetmerchant/issues/1469)) ([7a5bc22](https://www.github.com/jef/streetmerchant/commit/7a5bc22ba8cede51311b80182c18fb0227532cd2))
* **galaxus:** update selector ( 14.01.2020 07:00 ) ([#1664](https://www.github.com/jef/streetmerchant/issues/1664)) ([a768eb4](https://www.github.com/jef/streetmerchant/commit/a768eb4cf54f81657532ae0c5e00588cc167eae2))
* **galaxus:** update selector ([#1578](https://www.github.com/jef/streetmerchant/issues/1578)) ([ad5bd55](https://www.github.com/jef/streetmerchant/commit/ad5bd55c1ad9f54c9c1aa7ae875bd430d6304fac))
* **galaxus:** update selector ([#1599](https://www.github.com/jef/streetmerchant/issues/1599)) ([445a007](https://www.github.com/jef/streetmerchant/commit/445a00728fec1c8b6bded8583d4a6712c195143b))
* **galaxus:** update selector ([#1705](https://www.github.com/jef/streetmerchant/issues/1705)) ([2120d29](https://www.github.com/jef/streetmerchant/commit/2120d2901d03ae2238bd56d46e0c43dcb16af70e))
* **lookup:** check out of stock before price ([#1422](https://www.github.com/jef/streetmerchant/issues/1422)) ([02d29c3](https://www.github.com/jef/streetmerchant/commit/02d29c3c64a7976622da6cbdf099b76b455082d0))
* **lookup:** remove mobile versions of user agent ([96ae818](https://www.github.com/jef/streetmerchant/commit/96ae818e84c99d0597e0ddd7b5ecfe1a0615d1ed))
* **newegg:** false positives (all stores) ([#1714](https://www.github.com/jef/streetmerchant/issues/1714)) ([3f191bb](https://www.github.com/jef/streetmerchant/commit/3f191bbd00e7474fbef71ddd28955672835ef1a0))
* properly pass array entries as separate indices ([#1502](https://www.github.com/jef/streetmerchant/issues/1502)) ([0c6e2d5](https://www.github.com/jef/streetmerchant/commit/0c6e2d587d81041b07a561b3f53b8b1ebcb9f843))
* **proxy:** fix requests with proxies ([#1408](https://www.github.com/jef/streetmerchant/issues/1408)) ([f65df4c](https://www.github.com/jef/streetmerchant/commit/f65df4ce56891c368dab8dd6fe85a584cf9e6f49))
* **proxy:** update proxy module ([#1451](https://www.github.com/jef/streetmerchant/issues/1451)) ([ab03702](https://www.github.com/jef/streetmerchant/commit/ab037029b654f5e169a97c9e7a2c4dfa6cf1e768)), closes [#1437](https://www.github.com/jef/streetmerchant/issues/1437)
* **store:** link builder in UK stores ([#1486](https://www.github.com/jef/streetmerchant/issues/1486)) ([eb59dc3](https://www.github.com/jef/streetmerchant/commit/eb59dc3433c54027695fb68cfe69b1d90fce3fec))
* **store:** Update 30 series links and models for store.asus.com ([#1645](https://www.github.com/jef/streetmerchant/issues/1645)) ([20bea85](https://www.github.com/jef/streetmerchant/commit/20bea85e411277f70b987675b53055b69d450e0f)), closes [#1637](https://www.github.com/jef/streetmerchant/issues/1637)
* **store:** update missing/mislabeled cards for Canadian retailers ([#1574](https://www.github.com/jef/streetmerchant/issues/1574)) ([082776c](https://www.github.com/jef/streetmerchant/commit/082776cfca740ac0a22736f791c62705a62185be))
* **store:** update out of stock detection for MediaMarkt and Saturn ([#1549](https://www.github.com/jef/streetmerchant/issues/1549)) ([4f86d24](https://www.github.com/jef/streetmerchant/commit/4f86d2462e5d1eba6a7d7839585c0fe8c1b70da5)), closes [#1545](https://www.github.com/jef/streetmerchant/issues/1545)
* **webui:** handling of file serving ([#1383](https://www.github.com/jef/streetmerchant/issues/1383)) ([445689e](https://www.github.com/jef/streetmerchant/commit/445689efc49bf8edb0b5a027611f02ea0d0f126f))
* **wipoid:** added 3090/3080/3070/3060ti/ryzen store items ([#1683](https://www.github.com/jef/streetmerchant/issues/1683)) ([be54171](https://www.github.com/jef/streetmerchant/commit/be541713a8855f18b5102917751842e514796e00))
## [3.3.0](https://www.github.com/jef/streetmerchant/compare/v3.2.0...v3.3.0) (2020-12-13) ## [3.3.0](https://www.github.com/jef/streetmerchant/compare/v3.2.0...v3.3.0) (2020-12-13)
+3 -4
View File
@@ -1,4 +1,4 @@
FROM node:14.15.0-alpine3.12 AS builder FROM node:15.10.0-alpine3.12 AS builder
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant" LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
@@ -12,10 +12,10 @@ COPY tsconfig.json tsconfig.json
RUN npm ci RUN npm ci
COPY src/ src/ COPY src/ src/
RUN npm run build RUN npm run compile
RUN npm prune --production RUN npm prune --production
FROM node:14.15.0-alpine3.12 FROM node:15.10.0-alpine3.12
RUN apk add --no-cache chromium RUN apk add --no-cache chromium
@@ -35,7 +35,6 @@ COPY --from=builder /build/node_modules/ node_modules/
COPY --from=builder /build/build/ build/ COPY --from=builder /build/build/ build/
COPY web/ web/ COPY web/ web/
COPY package.json package.json COPY package.json package.json
COPY version.txt version.txt
ENTRYPOINT ["npm", "run"] ENTRYPOINT ["npm", "run"]
CMD ["start:production"] CMD ["start:production"]
+3 -19
View File
@@ -1,28 +1,12 @@
<p align="center"> <p align="center">
<a href="https://jef.codes/streetmerchant" <a href="https://jef.codes/streetmerchant"><img src="https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-banner.png" /></a>
><img
src="https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-banner.png"
alt="streetmerchant"
/></a>
</p> </p>
<p align="center"> <p align="center">
<strong>The world's easiest, most powerful stock checker</strong> <strong>The world's easiest, most powerful stock checker</strong>
</p> </p>
<p align="center"> <p align="center">
<a href="https://github.com/jef/streetmerchant/actions?query=workflow%3Aci" <a href="https://github.com/jef/streetmerchant/actions/workflows/ci.yaml"><img src="https://img.shields.io/github/workflow/status/jef/streetmerchant/ci?color=24292e&label=ci&logo=github&logoColor=tewt&style=flat-square" /></a>
><img src="https://github.com/jef/streetmerchant/workflows/ci/badge.svg" <a href="https://discord.gg/gbVY4vB9JF"><img src="https://img.shields.io/discord/773913070665859073.svg?color=24292e&label=%20&logo=discord&logoColor=ffffff&style=flat-square" /></a>
/></a>
<a href="https://discord.gg/gbVY4vB9JF"
><img
src="https://img.shields.io/discord/773913070665859073.svg?label=chat&logo=discord&logoColor=ffffff&color=7389D8"
alt="Tweet"
/></a>
<a
href="https://twitter.com/intent/tweet?text=Beat%20the%20masses%20with%20streetmerchant&url=https://github.com/jef/streetmerchant&hashtags=typescript,opensource,bot,shopping"
><img
src="https://img.shields.io/badge/twitter-share-green?logo=twitter&style=social"
alt="Tweet"
/></a>
</p> </p>
<p align="center"> <p align="center">
<em>To get started, visit <a href="https://jef.codes/streetmerchant">jef.codes/streetmerchant</a></em> <em>To get started, visit <a href="https://jef.codes/streetmerchant">jef.codes/streetmerchant</a></em>
+1 -1
View File
@@ -64,7 +64,7 @@ To customize streetmerchant, make a copy of `dotenv-example` as `dotenv` and mak
The command `npm run start:dev` can be used instead of `npm run start` to automatically restart the project when filesystem changes are detected in the `src/` folder or `dotenv` file. The command `npm run start:dev` can be used instead of `npm run start` to automatically restart the project when filesystem changes are detected in the `src/` folder or `dotenv` file.
Use `npm run lint` to see any linting uses and `npm run lint:fix` to automatically fix the issues it can. Use `npm run lint` to see any linting uses and `npm run fix` to automatically fix the issues it can.
### Developing in Docker ### Developing in Docker
+1 -1
View File
@@ -130,4 +130,4 @@ This is the main portion:
![image](https://user-images.githubusercontent.com/12074633/101225550-b87e2580-365f-11eb-8be6-48b324b37916.png) ![image](https://user-images.githubusercontent.com/12074633/101225550-b87e2580-365f-11eb-8be6-48b324b37916.png)
Use the full URL that you just copied and set that value to `DISOCRD_WEB_HOOK`. Use the full URL that you just copied and set that value to `DISCORD_WEB_HOOK`.
+6 -6
View File
@@ -1,6 +1,6 @@
app.document$.subscribe(function() { app.document$.subscribe(() => {
var tables = document.querySelectorAll("article table") const tables = document.querySelectorAll('article table');
tables.forEach(function(table) { tables.forEach(table => {
new Tablesort(table) new Tablesort(table);
}) });
}) });
+30
View File
@@ -0,0 +1,30 @@
{% extends "base.html" %}
{% block extrahead %}
{% set title = config.site_name %}
{% if page and page.meta and page.meta.title %}
{% set title = title ~ " - " ~ page.meta.title %}
{% elif page and page.title and not page.is_homepage %}
{% set title = title ~ " - " ~ page.title | striptags %}
{% endif %}
{% set image = config.site_url ~ '/assets/images/streetmerchant-github.png' %}
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:title" content="{{ title }}" />
<meta property="og:description" content="{{ config.site_description }}" />
<meta property="og:url" content="{{ page.canonical_url }}" />
<meta property="og:image" content="{{ image }}" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1280" />
<meta property="og:image:height" content="640" />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@hijxf" />
<meta name="twitter:creator" content="@hijxf" />
<meta name="twitter:title" content="{{ title }}" />
<meta name="twitter:description" content="{{ config.site_description }}" />
<meta name="twitter:image" content="{{ image }}" />
{% endblock %}
+2 -1
View File
@@ -18,11 +18,12 @@
| `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`. Default: `http` | | `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`. Default: `http` |
| `PROXY_ADDRESS` | IP Address or fqdn of proxy server | | `PROXY_ADDRESS` | IP Address or fqdn of proxy server |
| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections. Default: `80` | | `PROXY_PORT` | TCP Port number on which the proxy is listening for connections. Default: `80` |
| `RESTART_TIME` | Restarts chrome after defined milliseconds. `0` for never, default: `0` |
| `SCREENSHOT` | Capture screenshot of page if a card is found. Default: `true` | | `SCREENSHOT` | Capture screenshot of page if a card is found. Default: `true` |
| `WEB_PORT` | Starts a webserver to be able to control the bot while it is running. Setting this value starts this service. | | `WEB_PORT` | Starts a webserver to be able to control the bot while it is running. Setting this value starts this service. |
???+ info ???+ info
You can also have a list of proxies that are rotated while searching stores. Proxies can be read from a file named `STORENAME.proxies` in the format of `socks5://username:password@ip`; one per line. In this case, there is no need to use the `PROXY_*` environments. There is more information on proxy settings in the [Proxy documentation](proxy.md).
???+ tip ???+ tip
- You can also have a list of proxies that are rotated while searching stores. Proxies can be read from a file named `STORENAME.proxies` in the format of `socks5://username:password@ip`; one per line. - You can also have a list of proxies that are rotated while searching stores. Proxies can be read from a file named `STORENAME.proxies` in the format of `socks5://username:password@ip`; one per line.
+99 -60
View File
@@ -1,28 +1,34 @@
# Filter # Filter
| Environment variable | Description | Notes | | Environment variable | Description |
|:---:|---|---| |:---:|---|
| `COUNTRY` | [Supported country](#supported-countries) you want to be scraped | Only used with `nvidia-api`, default: `usa` | | `MAX_PRICE_SERIES_3060` | Maximum price allowed for a match, applies 3060 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) | 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_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | 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) |
| `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) |
| `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) |
| `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_CORSAIR_SF` | Maximum price allowed for a match, applies to Corsair PSUs |
| `MAX_PRICE_SERIES_DARKHERO` | Maximum price allowed for a match, applies to ASUS Dark Hero motherboards | 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_DARKHERO` | Maximum price allowed for a match, applies to ASUS Dark Hero motherboards |
| `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 |
| `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 |
| `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 |
| `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 |
| `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_RX6800` | Maximum price allowed for a match, applies AMD RX 6800 |
| `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_RX6800XT` | Maximum price allowed for a match,applies AMD RX 6800 XT |
| `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. | | `MAX_PRICE_SERIES_RX6900XT` | Maximum price allowed for a match, applies AMD RX 6900 XT |
| `MICROCENTER_LOCATION` | Specific MicroCenter location(s) to search | Comma separated, e.g.: `marietta,duluth`, default: `web` | | `MAX_PRICE_SERIES_SONYPS5C` | Maximum price allowed for a match, applies PS5 console |
| `NVIDIA_ADD_TO_CART_ATTEMPTS` | The maximum number of times the `nvidia-api` add to cart feature will be attempted before failing | Default: `10` | | `MAX_PRICE_SERIES_SONYPS5DE` | Maximum price allowed for a match, applies PS5 digital edition |
| `NVIDIA_SESSION_TTL` | The time in milliseconds to keep the cart active while using `nvidia-api` | Default: `60000` | | `MAX_PRICE_SERIES_XBOXSS` | Maximum price allowed for a match, applies PS5 digital edition |
| `SHOW_ONLY_BRANDS` | Filter to show specified brands | Comma separated, e.g.: `evga,zotac` | | `MAX_PRICE_SERIES_XBOXSX` | Maximum price allowed for a match, applies PS5 digital edition |
| `SHOW_ONLY_MODELS` | Filter to show specified models | Both supported formats are comma separated <br/><br/>1. Standard E.g.: `founders edition,rog strix` <br/><br/> 2. Advanced E.g: `MODEL:SERIES`, E.g: `founders edition:3090,rog strix` | | `MAX_PRICE_SERIES_TEST` | Maximum price allowed for a match, applies `test:series` |
| `SHOW_ONLY_SERIES` | Filter to show specified series | Comma separated, e.g.: `3080,ryzen5900` | | `MICROCENTER_LOCATION` | Specific MicroCenter location(s) to search. Comma separated, e.g.: `marietta,duluth`, default: `web` |
| `STORES` | [Supported stores](#supported-stores) you want to be scraped | Both supported formats are comma separated <br/><br/>1. Standard E.g.: `"nvidia"` <br/><br/> 2. Advanced E.g: `STORE:PAGE_SLEEP_MIN:PAGE_SLEEP_MAX`, E.g: `nvidia:10000:30000` <br/><br/>Default: `nvidia` | | `SHOW_ONLY_BRANDS` | Filter to show specified brands. Comma separated, e.g.: `evga,zotac` |
| `SHOW_ONLY_MODELS` | Filter to show specified models. Comma separated, can include series. E.g.: `founders edition:3090,rog strix` |
| `SHOW_ONLY_SERIES` | Filter to show specified series. Comma separated, e.g.: `3080,ryzen5900` |
| `STORES` | [Supported stores](#supported-stores) you want to be scraped. Default: `amazon,bestbuy`. Comma separated, can include `PAGE_SLEEP_MIN` and `PAGE_SLEEP_MAX` values. E.g.: `amazon:10000:30000,bestbuy,newegg:50000:80000`. |
???+ note
For `MAX_PRICE_SERIES_*` variables: Use whole numbers only (no currency symbol is required). Avoid using any commas or decimal points. Example: `1234`. Merchandise found above this price will be skipped.
## Supported stores ## Supported stores
@@ -30,7 +36,10 @@ Used with the `STORES` variable.
| Stores | Country | Environment variable | | Stores | Country | Environment variable |
|---|---|---| |---|---|---|
| AComPC | DE | `acompc` |
| Adorama | US | `adorama`| | Adorama | US | `adorama`|
| Akinformatica | IT | `akinformatica`|
| Allneeds | AU | `allneeds`|
| Alternate | DE | `alternate`| | Alternate | DE | `alternate`|
| Alternate | NL | `alternate-nl`| | Alternate | NL | `alternate-nl`|
| Amazon | US | `amazon`| | Amazon | US | `amazon`|
@@ -41,11 +50,13 @@ Used with the `STORES` variable.
| Amazon | FR | `amazon-fr`| | Amazon | FR | `amazon-fr`|
| Amazon | IT | `amazon-it`| | Amazon | IT | `amazon-it`|
| Amazon | NL | `amazon-nl`| | Amazon | NL | `amazon-nl`|
| Amazon | SG | `amazon-sg`|
| Amazon | UK | `amazon-uk`| | Amazon | UK | `amazon-uk`|
| AMD | US | `amd`| | AMD | US | `amd`|
| AMD | CA | `amd-ca`| | AMD | CA | `amd-ca`|
| AMD | DE | `amd-de`| | AMD | DE | `amd-de`|
| AMD | IT | `amd-it`| | AMD | IT | `amd-it`|
| AMD | UK | `amd-uk`|
| AntOnline | US | `antonline`| | AntOnline | US | `antonline`|
| Argos | UK | `argos`| | Argos | UK | `argos`|
| Argos | IE | `argos-ie`| | Argos | IE | `argos-ie`|
@@ -53,79 +64,116 @@ Used with the `STORES` variable.
| ARLT | DE | `arlt`| | ARLT | DE | `arlt`|
| ASUS | US | `asus` | | ASUS | US | `asus` |
| ASUS | DE | `asus-de` | | ASUS | DE | `asus-de` |
| AWD-IT | UK | `awd` |
| Azerty | NL | `azerty`| | Azerty | NL | `azerty`|
| B&H | US | `bandh`| | B&H | US | `bandh`|
| Best Buy | US | `bestbuy`| | Best Buy | US | `bestbuy`|
| Best Buy | CA | `bestbuy-ca`| | Best Buy | CA | `bestbuy-ca`|
| Box | UK | `box`| | Box | UK | `box`|
| BPCTech | AU | `bpctech`| | BPCTech | AU | `bpctech`|
| BPM-Power | IT | `bpm-power`|
| CanadaComputers | CA | `canadacomputers` | | CanadaComputers | CA | `canadacomputers` |
| Caseking | DE | `caseking`| | Caseking | DE | `caseking`|
| CCL | UK | `ccl`| | CCL | UK | `ccl`|
| Centrecom | AU | `centrecom`| | Centrecom | AU | `centrecom`|
| Comet | IT | `comet`| | Comet | IT | `comet`|
| ComputerAlliance | AU | `computeralliance`|
| Computeruniverse | DE | `computeruniverse` | | Computeruniverse | DE | `computeruniverse` |
| Coolblue | NL | `coolblue`| | Coolblue | NL | `coolblue`|
| Coolmod | ES | `coolmod`| | Coolmod | ES | `coolmod`|
| Corsair | US | `corsair`| | Corsair | US | `corsair`|
| Corsair | UK | `corsair-uk`|
| CPL | AU | `cpl`| | CPL | AU | `cpl`|
| Currys | UK | `currys`| | Currys | UK | `currys`|
| Cyberport | DE | `cyberport` | | Cyberport | DE | `cyberport` |
| DComp | AU | `dcomp`|
| Drako | IT | `drako` |
| DustinHome | NO | `dustinhome-no` |
| EBGames | CA | `ebgames`| | EBGames | CA | `ebgames`|
| eBuyer | UK | `ebuyer`| | eBuyer | UK | `ebuyer`|
| El Corte Inglés | ES | `elcorteingles`| | El Corte Inglés | ES | `elcorteingles`|
| Elkjop | NO | `elkjop`|
| ePrice | IT | `eprice`| | ePrice | IT | `eprice`|
| Equippr | DE | `equippr`|
| Euronics | IT | `euronics`| | Euronics | IT | `euronics`|
| Euronics | DE | `euronics-de`| | Euronics | DE | `euronics-de`|
| Evatech | AU | `evatech`|
| EVGA | US | `evga`| | EVGA | US | `evga`|
| EVGA | EU | `evga-eu`| | EVGA | EU | `evga-eu`|
| Expert | DE | `expert`| | Expert | DE | `expert`|
| Futurex | DE | `futurex`|
| Galaxus | DE | `galaxus`| | Galaxus | DE | `galaxus`|
| Game | UK | `game`| | Game | UK | `game`|
| Gamestop | US | `gamestop`| | Gamestop | US | `gamestop`|
| Gamestop | DE | `gamestop-de`| | Gamestop | DE | `gamestop-de`|
| Gamestop | IE | `gamestop-ie`| | Gamestop | IE | `gamestop-ie`|
| Harvey Normans | IE | | `harveynorman-ie` | | Gamestop | IT | `gamestop-it`|
| Globaldata | PT | `globaldata`|
| Hardware Planet | IT | | `hardware-planet` |
| HarrisTechnology | AU | `harristechnology`|
| Harvey Normans | IE | `harveynorman-ie` |
| iGame Computer | AU | `igame-computer`|
| John Lewis | UK | `johnlewis`|
| Kabum | BR | `kabum`| | Kabum | BR | `kabum`|
| Komplett | NO | `komplett-no`|
| Landmark Computers | AU | `landmark-computers`|
| Ldlc | FR | `ldlc`|
| Mediamarkt | DE | `mediamarkt`| | Mediamarkt | DE | `mediamarkt`|
| Medimax | DE | `medimax`| | Medimax | DE | `medimax`|
| Megekko | NL | `megekko`| | Megekko | NL | `megekko`|
| MemoryExpress | CA | `memoryexpress`| | MemoryExpress | CA | `memoryexpress`|
| Micro Center | US | `microcenter`| | Micro Center | US | `microcenter`|
| Mindfactory | DE | `mindfactory` | | Mindfactory | DE | `mindfactory` |
| MSY | AU | `msy`|
| Mwave | AU | `mwave`| | Mwave | AU | `mwave`|
| Netonnet | NO | `netonnet-no`|
| Newegg | US | `newegg`| | Newegg | US | `newegg`|
| Newegg | CA | `newegg-ca`| | Newegg | CA | `newegg-ca`|
| Newegg | SG | `newegg-sg`|
| Notebooksbilliger | DE |`notebooksbilliger`| | Notebooksbilliger | DE |`notebooksbilliger`|
| Novatech | UK | `novatech`| | Novatech | UK | `novatech`|
| Nvidia | US | `nvidia`| | Novo Atalho | PT | `novoatalho`|
| Nvidia API | | `nvidia-api`| | Nvidia | EU/UK | [See below](#nvidia-store-reference) |
| Office Depot | US | `officedepot`| | Office Depot | US | `officedepot`|
| Ollo | IT | `ollo`|
| Otto | DE | `otto`| | Otto | DE | `otto`|
| Overclockers | UK | `overclockers`| | Overclockers | UK | `overclockers`|
| PBTech | AU | `pbtech`|
| PCByte | AU | `pcbyte`|
| PCCG | AU | `pccg`| | PCCG | AU | `pccg`|
| PCComponentes | ES | `pccomponentes`| | PCComponentes | ES | `pccomponentes`|
| PCDiga | PT | `pcdiga`|
| PCKing | DE | `pcking` |
| PlayStation | US | `playstation`| | PlayStation | US | `playstation`|
| PNY | US | `pny`| | PNY | US | `pny`|
| Power | NO | `power-no`|
| Proshop | DE | `proshop-de`| | Proshop | DE | `proshop-de`|
| Proshop | DK | `proshop-dk`| | Proshop | DK | `proshop-dk`|
| Proshop | NO | `proshop-no`|
| Rosman | AU | `rosman`|
| Rosman-Melb | AU | `rosman-melb`|
| Saturn | DE | `saturn`| | Saturn | DE | `saturn`|
| Save On It | AU | `saveonit`|
| Scan | UK | `scan`| | Scan | UK | `scan`|
| Scorptec | AU | `scorptec`| | Scorptec | AU | `scorptec`|
| ShopTo | UK | `shopto`|
| Smyths Toys | UK | `smythstoys`| | Smyths Toys | UK | `smythstoys`|
| Smyths Toys | IE | `smythstoys-ie`| | Smyths Toys | IE | `smythstoys-ie`|
| Spielegrotte | DE | `spielegrotte`| | Spielegrotte | DE | `spielegrotte`|
| Storm Computers | AU | `storm-computer`|
| Target | US | `target`| | Target | US | `target`|
| Tesco | IE | `tesco-ie`| | Tesco | IE | `tesco-ie`|
| TopAchat | GR | `topachat`|
| Toys R Us | US | `toysrus` | | Toys R Us | US | `toysrus` |
| Umart | AU | `umart`| | Umart | AU | `umart`|
| Unieuro | IT | `unieuro`| | Unieuro | IT | `unieuro`|
| Very | UK | `very`| | Very | UK | `very`|
| Vuugo | CA | `vuugo` |
| Walmart | US | `walmart`| | Walmart | US | `walmart`|
| Walmart | CA | `walmart-ca`| | Walmart | CA | `walmart-ca`|
| Wells Technology | AU | `wellstechnology`|
| Wipoid | ES | `wipoid`| | Wipoid | ES | `wipoid`|
| Zotac | US | `zotac`| | Zotac | US | `zotac`|
| TopAchat | GR | `topachat`|
### Micro Center stores ### Micro Center stores
@@ -151,24 +199,24 @@ Used with the `SHOW_ONLY_BRANDS` and `SHOW_ONLY_MODELS` variables.
| Brand | Model | | Brand | Model |
|:---:|---| |:---:|---|
| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` | | `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` |
| `asus` | `crosshair viii`, `dual`, `dual oc`, `strix`, `strix oc`, `tuf`, `tuf oc` | | `asus` | `crosshair viii`, `dual`, `dual oc`, `ekwb`, `strix`, `strix oc`, `strix white`, `tuf`, `tuf oc` |
| `corsair` | `750 platinum`, `600 platinum` | | `corsair` | `750 platinum`, `600 platinum`, `600 gold` |
| `colorful` | `igame advanced oc`, `igame vulcan oc` | | `colorful` | `igame advanced oc`, `igame vulcan oc` |
| `evga` | `ftw3`, `ftw3 ultra`, `ftw3 ultra hydro copper`, `xc3`, `xc3 black`, `xc3 ultra` | | `evga` | `ftw3`, `ftw3 black`, `ftw3 ultra`, `ftw3 ultra hybrid`, `ftw3 ultra hydro copper`, `xc3`, `xc black`, `xc gaming`, `xc3 black`, `xc3 ultra`, `xc3 ultra hybrid` |
| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` | | `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
| `gigabyte` | `aorus master`, `aorus xtreme`, `aorus xtreme waterforce`, `aorus xtreme waterforce wb`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `turbo`, `vision`, `vision oc` | | `gigabyte` | `aorus master`, `aorus xtreme`, `aorus xtreme waterforce`, `aorus xtreme waterforce wb`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `gaming oc pro`, `turbo`, `vision`, `vision oc` |
| `galax` | `sg`, `sg oc` | | `galax` | `sg`, `sg oc` |
| `inno3d` | `gaming x3`, `ichill x3`, `ichill x4`, `ichill frostbite`, `twin x2 oc` | | `inno3d` | `gaming x3`, `ichill x3`, `ichill x4`, `ichill frostbite`, `twin x2`, `twin x2 oc` |
| `kfa2` | `sg`, `sg oc` | | `kfa2` | `sg`, `sg oc` |
| `leadtek` | `hurricane` | | `leadtek` | `hurricane` |
| `microsoft` | `xbox series x`, `xbox series s` | | `microsoft` | `xbox series x`, `xbox series s` |
| `msi` | `gaming x trio`, `suprim x`, `ventus 2x oc`, `ventus 3x`, `ventus 3x oc` | | `msi` | `gaming x trio`, `suprim`, `suprim x`, `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 epic x`, `xlr8 revel`, `xlr8 uprising` |
| `sony` | `ps5 console`, `ps5 digital` | | `sony` | `ps5 console`, `ps5 digital` |
| `xfx` | `merc`, `amd reference` | | `xfx` | `merc`, `amd reference` |
| `zotac` | `amp holo`, `amp extreme holo`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc` | | `zotac` | `amp holo`, `amp extreme holo`, `amp white`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc`, `twin edge oc white` |
## Supported series ## Supported series
@@ -183,6 +231,7 @@ Used with the `SHOW_ONLY_SERIES` variable.
| AMD RX 6800 | `rx6800` | | AMD RX 6800 | `rx6800` |
| AMD RX 6800XT | `rx6800xt` | | AMD RX 6800XT | `rx6800xt` |
| AMD RX 6900XT | `rx6900xt` | | AMD RX 6900XT | `rx6900xt` |
| Nvidia RTX 3060 | `3060` |
| Nvidia RTX 3060 Ti | `3060ti` | | Nvidia RTX 3060 Ti | `3060ti` |
| Nvidia RTX 3070 | `3070` | | Nvidia RTX 3070 | `3070` |
| Nvidia RTX 3080 | `3080` | | Nvidia RTX 3080 | `3080` |
@@ -194,31 +243,21 @@ Used with the `SHOW_ONLY_SERIES` variable.
| Xbox Series S | `xboxss` | | Xbox Series S | `xboxss` |
| Xbox Series X | `xboxsx` | | Xbox Series X | `xboxsx` |
## Supported countries ## Nvidia Store Reference
Used with the `COUNTRY` variable. ???+ note
Use the Nvidia Store to check stock for Founders Edition cards only (3060 Ti/3070/3080/3090). For USA use `bestbuy` instead.
???+ attention ???+ info
Used _only_ with `nvidia` and `nvidia-api`. Use the `STORE` variable for your chosen country. For example, to check for a FE card in Belgium you would use the `nvidia-fr` store.
| Country | 3080 FE | 3090 FE | Test Card | Notes | | Country | Store | Retailer
|:---:|:---:|:---:|:---:|:---:| |:---:|:---:|:---:|
| `austria` | `` | `✔` | `✔` | | | Austria | `nvidia-de`| NBB |
| `belgium` | `✔` | `✔` | `✔` | | | Belgium | `nvidia-fr` | LDLC |
| `canada` | `✔` | `✔` | `✔` | | | France | `nvidia-fr` | LDLC |
| `czechia` | `✔` | `✔` | `✔` | | | Germany | `nvidia-de` | NBB |
| `denmark` | `✔` | | `✔` | Missing RTX 3090 | | Ireland | `nvidia-gb` | Scan |
| `finland` | `✔` | | `✔` | Missing RTX 3090 | | Luxembourg | `nvidia-fr` | LDLC |
| `france` | `✔` | `✔` | `✔` | | | Spain | `nvidia-es` | LDLC |
| `germany` | `✔` | `✔` | `✔` | | | United Kingdom | `nvidia-gb` | Scan |
| `great_britain` | `✔` | `✔` | `✔` | |
| `ireland` | `✔` | `✔` | `✔` | |
| `italy` | `✔` | `✔` | `✔` | |
| `luxembourg` | `✔` | `✔` | `✔` | |
| `netherlands` | `✔` | `✔` | `✔` | |
| `norway` | `✔` | `✔` | `✔` | |
| `poland` | `✔` | `✔` | `✔` | |
| `portugal` | `✔` | | | RTX 3080 only |
| `spain` | `✔` | `✔` | `✔` | |
| `sweden` | `✔` | `✔` | `✔` | |
| `usa` | `✔` | `✔` | `✔` | |
+37 -5
View File
@@ -18,6 +18,7 @@ You can test your notification configuration by running `npm run test:notificati
| Environment variable | Description | | Environment variable | Description |
|:---:|---| |:---:|---|
| `DISCORD_NOTIFY_GROUP` | Discord group you would like to notify | | `DISCORD_NOTIFY_GROUP` | Discord group you would like to notify |
| `DISCORD_NOTIFY_GROUP_3060` | Discord group to notify on 3060 stock |
| `DISCORD_NOTIFY_GROUP_3060TI` | Discord group to notify on 3060 Ti stock | | `DISCORD_NOTIFY_GROUP_3060TI` | Discord group to notify on 3060 Ti stock |
| `DISCORD_NOTIFY_GROUP_3070` | Discord group to notify on 3070 stock | | `DISCORD_NOTIFY_GROUP_3070` | Discord group to notify on 3070 stock |
| `DISCORD_NOTIFY_GROUP_3080` | Discord group to notify on 3080 stock | | `DISCORD_NOTIFY_GROUP_3080` | Discord group to notify on 3080 stock |
@@ -36,7 +37,7 @@ You can test your notification configuration by running `npm run test:notificati
| `DISCORD_WEB_HOOK` | Discord Web Hook URL. Can be comma separated. Use whole webhook URL | | `DISCORD_WEB_HOOK` | Discord Web Hook URL. Can be comma separated. Use whole webhook URL |
???+ note ???+ note
All ground can be comma separated. `DISCORD_NOTIFY_GROUP` is always used if set. All groups can be comma separated. `DISCORD_NOTIFY_GROUP` is always used if set.
- If you're using a role, please use `<@&2834729847239842>` - If you're using a role, please use `<@&2834729847239842>`
- If you're using a user, please use `<@2834729847239842>` - If you're using a user, please use `<@2834729847239842>`
@@ -73,6 +74,7 @@ Default provider is Gmail. If you use a different email provider, you must provi
| Sprint | `sprint`| | Sprint | `sprint`|
| Telus | `telus`| | Telus | `telus`|
| T-Mobile | `tmobile`| | T-Mobile | `tmobile`|
| USCC | `uscc`|
| Verizon | `verizon`| | Verizon | `verizon`|
| Virgin | `virgin`| | Virgin | `virgin`|
| Virgin (CA) | `virgin-ca`| | Virgin (CA) | `virgin-ca`|
@@ -121,7 +123,7 @@ For cloud only usage, instructions to generate are located [here](https://develo
## Pushbullet ## Pushbullet
Generate token at https://www.pushbullet.com/#settings/account. Generate token at [pushbullet.com/#settings/account](https://pushbullet.com/#settings/account).
| Environment variable | Description | | Environment variable | Description |
|:---:|---| |:---:|---|
@@ -129,7 +131,7 @@ Generate token at https://www.pushbullet.com/#settings/account.
## Pushover ## Pushover
Generate token at https://pushover.net/apps/build. Generate token at [pushover.net/apps/build](https://pushover.net/apps/build).
| Environment variable | Description | | Environment variable | Description |
|:---:|---| |:---:|---|
@@ -142,6 +144,12 @@ Generate token at https://pushover.net/apps/build.
???+ note ???+ note
`PUSHOVER_EXPIRE` and `PUSHOVER_RETRY` are only used when `PUSHOVER_PRIORITY="2"` `PUSHOVER_EXPIRE` and `PUSHOVER_RETRY` are only used when `PUSHOVER_PRIORITY="2"`
## Redis
| Environment variable | Description |
|:---:|---|
| `REDIS_URL` | Connection string in format (redis://[username]:[password]@[host][:port]/[database-id]) (redis://localhost:6379/1) |
## Slack ## Slack
| Environment variable | Description | | Environment variable | Description |
@@ -149,6 +157,15 @@ Generate token at https://pushover.net/apps/build.
| `SLACK_CHANNEL` | Channel for posting | | `SLACK_CHANNEL` | Channel for posting |
| `SLACK_TOKEN` | API token | | `SLACK_TOKEN` | API token |
## SmartThings
Generate token at [account.smartthings.com/tokens](https://account.smartthings.com/tokens).
| Environment variable | Description |
|:---:|---|
| `SMARTTHINGS_TOKEN` | Access token |
| `SMARTTHINGS_SWITCH_LABEL` | Switch Label of switch to activate|
## Telegram ## Telegram
| Environment variable | Description | | Environment variable | Description |
@@ -158,7 +175,7 @@ Generate token at https://pushover.net/apps/build.
## Twilio ## Twilio
Token generation can be found at https://twilio.com/console. Token generation can be found at [twilio.com/console](https://twilio.com/console).
| Environment variable | Description | | Environment variable | Description |
|:---:|---| |:---:|---|
@@ -172,7 +189,7 @@ Token generation can be found at https://twilio.com/console.
## Twitter ## Twitter
Generate all Twitter keys at: https://developer.twitter.com/ Generate all Twitter keys at [developer.twitter.com](https://developer.twitter.com).
| Environment variable | Description | | Environment variable | Description |
|:---:|---| |:---:|---|
@@ -184,6 +201,8 @@ Generate all Twitter keys at: https://developer.twitter.com/
## Twitch ## Twitch
Instructions on how to set up tokens can be found at [d-fischer.github.io/twitch-chat-client/docs/examples/basic-bot](https://d-fischer.github.io/twitch-chat-client/docs/examples/basic-bot).
| Environment variable | Description | | Environment variable | Description |
|:---:|---| |:---:|---|
| `TWITCH_CLIENT_ID` | Twitch client ID | | `TWITCH_CLIENT_ID` | Twitch client ID |
@@ -191,3 +210,16 @@ Generate all Twitter keys at: https://developer.twitter.com/
| `TWITCH_ACCESS_TOKEN` | Twitch access token | | `TWITCH_ACCESS_TOKEN` | Twitch access token |
| `TWITCH_REFRESH_TOKEN` | Twitch refresh token | | `TWITCH_REFRESH_TOKEN` | Twitch refresh token |
| `TWITCH_CHANNEL` | Twitch channel | | `TWITCH_CHANNEL` | Twitch channel |
## StreamLabs
Instructions on how to set up tokens can be found at [dev.streamlabs.com](https://dev.streamlabs.com/docs/register-your-application).
You don't need to submit your application for review, just whitelist yourself!
| Environment variable | Description |
|:---:|---|
| `STREAMLABS_ACCESS_TOKEN` | StreamLabs access token |
| `STREAMLABS_TYPE` | StreamLabs alert type |
| `STREAMLABS_IMAGE`| Custom image to display. Leave it blank for default |
| `STREAMLABS_SOUND` | Custom image to play. Leave it blank for default |
| `STREAMLABS_DURATION` | StreamLabs alert duration (in milliseconds) |
+20
View File
@@ -0,0 +1,20 @@
# Proxy
## Filename
Proxy configuration can be set either per store in a file called `storename.proxies` or globally in `global.proxies` in the streetmerchant root directory.
If both exist, the store specific file will take precedence.
## Format
The format is one proxy per line with the following structure:
`protocol://[user:password@]ip[:port]`
Supported protocols are `http` and `socks5`.
Valid examples include:
- `socks5://1.2.3.4:3180`
- `socks5://abcd:efgh@1.2.3.4:5678`
- `http://1.2.3.4:80`
- `http://abcd:efgh@1.2.3.4:8080`
+1
View File
@@ -0,0 +1 @@
../../terraform/README.md
+12 -3
View File
@@ -7,9 +7,9 @@ ASCII_BANNER=
ASCII_COLOR= ASCII_COLOR=
AUTO_ADD_TO_CART= AUTO_ADD_TO_CART=
BROWSER_TRUSTED= BROWSER_TRUSTED=
COUNTRY=
DESKTOP_NOTIFICATIONS= DESKTOP_NOTIFICATIONS=
DISCORD_NOTIFY_GROUP= DISCORD_NOTIFY_GROUP=
DISCORD_NOTIFY_GROUP_3060=
DISCORD_NOTIFY_GROUP_3060TI= DISCORD_NOTIFY_GROUP_3060TI=
DISCORD_NOTIFY_GROUP_3070= DISCORD_NOTIFY_GROUP_3070=
DISCORD_NOTIFY_GROUP_3080= DISCORD_NOTIFY_GROUP_3080=
@@ -35,6 +35,7 @@ HEADLESS=
IN_STOCK_WAIT_TIME= IN_STOCK_WAIT_TIME=
LOG_LEVEL= LOG_LEVEL=
LOW_BANDWIDTH= LOW_BANDWIDTH=
MAX_PRICE_SERIES_3060=
MAX_PRICE_SERIES_3060TI= MAX_PRICE_SERIES_3060TI=
MAX_PRICE_SERIES_3070= MAX_PRICE_SERIES_3070=
MAX_PRICE_SERIES_3080= MAX_PRICE_SERIES_3080=
@@ -49,6 +50,8 @@ MAX_PRICE_SERIES_RYZEN5900=
MAX_PRICE_SERIES_RYZEN5950= MAX_PRICE_SERIES_RYZEN5950=
MAX_PRICE_SERIES_SONYPS5C= MAX_PRICE_SERIES_SONYPS5C=
MAX_PRICE_SERIES_SONYPS5DE= MAX_PRICE_SERIES_SONYPS5DE=
MAX_PRICE_SERIES_XBOXSS=
MAX_PRICE_SERIES_XBOXSX=
MAX_PRICE_SERIES_TEST= MAX_PRICE_SERIES_TEST=
MICROCENTER_LOCATION= MICROCENTER_LOCATION=
MQTT_BROKER_ADDRESS= MQTT_BROKER_ADDRESS=
@@ -58,8 +61,6 @@ MQTT_PASSWORD=
MQTT_QOS= MQTT_QOS=
MQTT_TOPIC= MQTT_TOPIC=
MQTT_USERNAME= MQTT_USERNAME=
NVIDIA_ADD_TO_CART_ATTEMPTS=
NVIDIA_SESSION_TTL=
OPEN_BROWSER= OPEN_BROWSER=
PAGE_BACKOFF_MIN= PAGE_BACKOFF_MIN=
PAGE_BACKOFF_MAX= PAGE_BACKOFF_MAX=
@@ -89,12 +90,15 @@ PUSHOVER_RETRY=
PUSHOVER_TOKEN= PUSHOVER_TOKEN=
PUSHOVER_USER= PUSHOVER_USER=
PUSHOVER_PRIORITY= PUSHOVER_PRIORITY=
RESTART_TIME=
SCREENSHOT= SCREENSHOT=
SHOW_ONLY_BRANDS= SHOW_ONLY_BRANDS=
SHOW_ONLY_MODELS= SHOW_ONLY_MODELS=
SHOW_ONLY_SERIES= SHOW_ONLY_SERIES=
SLACK_CHANNEL= SLACK_CHANNEL=
SLACK_TOKEN= SLACK_TOKEN=
SMARTTHINGS_TOKEN=
SMARTTHINGS_SWITCH_LABEL=
SMTP_ADDRESS= SMTP_ADDRESS=
SMTP_PORT= SMTP_PORT=
STORES= STORES=
@@ -114,4 +118,9 @@ TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_CONSUMER_KEY= TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET= TWITTER_CONSUMER_SECRET=
TWITTER_TWEET_TAGS= TWITTER_TWEET_TAGS=
STREAMLABS_ACCESS_TOKEN=
STREAMLABS_TYPE=
STREAMLABS_IMAGE=
STREAMLABS_SOUND=
STREAMLABS_DURATION=
WEB_PORT= WEB_PORT=
+7 -4
View File
@@ -2,7 +2,7 @@
site_name: streetmerchant site_name: streetmerchant
site_url: https://jef.codes/streetmerchant site_url: https://jef.codes/streetmerchant
site_author: Jef LeCompte site_author: Jef LeCompte
site_description: The world's easiest, most powerful stock checker site_description: 🤖 The world's easiest, most powerful stock checker
# Repository # Repository
repo_name: jef/streetmerchant repo_name: jef/streetmerchant
@@ -13,12 +13,13 @@ copyright: Copyright &copy; 2016 - 2020 Jef LeCompte
# Configuration # Configuration
theme: theme:
custom_dir: docs/overrides
favicon: https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-logo.png favicon: https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-logo.png
features: features:
- search.suggest - search.suggest
font: font:
text: Noto Sans text: Roboto
code: JetBrains Mono code: Fira Code
icon: icon:
repo: octicons/octoface-24 repo: octicons/octoface-24
logo: assets/images/streetmerchant-logo.png logo: assets/images/streetmerchant-logo.png
@@ -43,7 +44,7 @@ extra:
- icon: fontawesome/brands/twitter - icon: fontawesome/brands/twitter
link: https://twitter.com/hijxf link: https://twitter.com/hijxf
- icon: fontawesome/brands/linkedin - icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/jeflecompte/ link: https://www.linkedin.com/in/jeflecompte
extra_javascript: extra_javascript:
- https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js - https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js
@@ -83,6 +84,8 @@ nav:
- Application: reference/application.md - Application: reference/application.md
- Filter: reference/filter.md - Filter: reference/filter.md
- Notification: reference/notification.md - Notification: reference/notification.md
- Proxy: reference/proxy.md
- Terraform: reference/terraform.md
- Help: - Help:
- General: help/general.md - General: help/general.md
- Troubleshoot: help/troubleshoot.md - Troubleshoot: help/troubleshoot.md
+16002 -4792
View File
File diff suppressed because it is too large Load Diff
+50 -46
View File
@@ -1,17 +1,25 @@
{ {
"name": "streetmerchant", "name": "streetmerchant",
"description": "🔮 For all your Nvidia needs", "version": "3.5.0",
"description": "The world's easiest, most powerful stock checker",
"main": "src/index.ts", "main": "src/index.ts",
"scripts": { "scripts": {
"all": "npm run build && npm run lint", "fix": "gts fix",
"build": "tsc", "lint": "gts lint",
"lint": "xo", "clean": "gts clean",
"lint:fix": "xo --fix", "compile": "tsc",
"start": "npm run build && node build/index.js", "pretest": "npm run compile",
"posttest": "npm run lint",
"prestart": "npm run compile",
"start": "node build/src/index.js",
"start:dev": "nodemon --config nodemon.json", "start:dev": "nodemon --config nodemon.json",
"start:production": "node build/index.js", "start:production": "node build/src/index.js",
"test:notification": "npm run build && node build/__test__/notification-test.js", "test": "c8 mocha 'build/test/**/test-*.js' --exclude 'build/test/functional/**/test-*.js'",
"test:notification:production": "node build/__test__/notification-test.js" "test:notification": "npm run compile && node build/test/functional/test-notification.js",
"test:notification:production": "node build/test/functional/test-notification.js"
},
"engines": {
"node": ">=12.0.0"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@@ -25,60 +33,56 @@
}, },
"homepage": "https://github.com/jef/streetmerchant#readme", "homepage": "https://github.com/jef/streetmerchant#readme",
"dependencies": { "dependencies": {
"@bridgerakol/samsung-smart-api": "^2.8.1",
"@doridian/puppeteer-page-proxy": "^1.2.11",
"@jef/pushbullet": "^2.4.3", "@jef/pushbullet": "^2.4.3",
"@slack/web-api": "^5.14.0", "@slack/web-api": "^6.0.0",
"@types/random-useragent": "^0.3.0",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"cheerio": "^1.0.0-rc.3", "cheerio": "^1.0.0-rc.5",
"discord.js": "^12.5.1", "discord.js": "^12.5.1",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"messaging-api-telegram": "^1.0.1", "messaging-api-telegram": "^1.0.4",
"mqtt": "^4.2.6", "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.10",
"node-notifier": "^8.0.0", "node-notifier": "^9.0.0",
"node-pagerduty": "^1.3.6", "node-pagerduty": "^1.3.6",
"nodemailer": "^6.4.16", "nodemailer": "^6.5.0",
"open": "^7.3.0", "open": "^7.4.2",
"play-sound": "^1.1.3", "play-sound": "^1.1.3",
"puppeteer": "^5.5.0", "puppeteer": "^8.0.0",
"puppeteer-extra": "^3.1.15", "puppeteer-extra": "^3.1.17",
"puppeteer-extra-plugin-adblocker": "^2.11.9", "puppeteer-extra-plugin-adblocker": "^2.11.10",
"puppeteer-extra-plugin-block-resources": "^2.2.7", "puppeteer-extra-plugin-block-resources": "^2.2.8",
"puppeteer-extra-plugin-stealth": "^2.6.5", "puppeteer-extra-plugin-stealth": "^2.7.5",
"puppeteer-page-proxy": "^1.2.8",
"pushover-notifications": "^1.2.2", "pushover-notifications": "^1.2.2",
"random-useragent": "^0.5.0", "redis": "^3.0.2",
"twilio": "^3.54.0", "top-user-agents": "^1.0.21",
"twitch": "^4.3.5", "twilio": "^3.57.0",
"twitch-auth": "^4.3.5", "twitch": "^4.4.12",
"twitch-chat-client": "^4.3.6", "twitch-auth": "^4.4.12",
"twitch-chat-client": "^4.4.12",
"twitter": "^1.7.1", "twitter": "^1.7.1",
"winston": "^3.3.3" "winston": "^3.3.3"
}, },
"devDependencies": { "devDependencies": {
"@types/async": "^3.2.5", "@types/async": "^3.2.5",
"@types/cheerio": "^0.22.23", "@types/cheerio": "^0.22.24",
"@types/node": "^14.14.12", "@types/mocha": "^8.2.1",
"@types/node-fetch": "^2.5.7", "@types/node": "^14.14.31",
"@types/node-fetch": "^2.5.8",
"@types/node-notifier": "^8.0.0", "@types/node-notifier": "^8.0.0",
"@types/nodemailer": "^6.4.0", "@types/nodemailer": "^6.4.0",
"@types/puppeteer": "^5.4.2", "@types/redis": "^2.8.28",
"@types/sinon": "^9.0.10",
"@types/twitter": "^1.7.0", "@types/twitter": "^1.7.0",
"nodemon": "^2.0.6", "c8": "^7.6.0",
"gts": "^3.1.0",
"mocha": "^8.3.0",
"nodemon": "^2.0.7",
"sinon": "^9.2.4",
"ts-node": "^9.1.1", "ts-node": "^9.1.1",
"typescript": "^4.1.2", "typescript": "^4.2.2",
"webpack": "^5.10.0", "webpack": "^5.24.2"
"xo": "^0.36.1"
},
"xo": {
"prettier": true,
"ignores": "docs/javascripts",
"rules": {
"no-warning-comments": "off",
"sort-imports": "error",
"sort-keys": "error",
"sort-vars": "error"
}
} }
} }
-28
View File
@@ -1,28 +0,0 @@
import {Link, Store} from '../store/model';
import {sendNotification} from '../notification';
const link: Link = {
brand: 'test:brand',
cartUrl: 'https://www.example.com/cartUrl',
model: 'test:model',
price: 100,
series: 'test:series',
url: 'https://www.example.com/url'
};
const store: Store = {
currency: '',
labels: {
inStock: {
container: 'test:container',
text: ['test:text']
}
},
links: [link],
name: 'test:name'
};
/**
* Send test email.
*/
sendNotification(link, store);
+1 -1
View File
@@ -2,7 +2,7 @@ import {Page} from 'puppeteer';
import {PuppeteerExtraPluginAdblocker} from 'puppeteer-extra-plugin-adblocker'; import {PuppeteerExtraPluginAdblocker} from 'puppeteer-extra-plugin-adblocker';
export const adBlocker = new PuppeteerExtraPluginAdblocker({ export const adBlocker = new PuppeteerExtraPluginAdblocker({
blockTrackers: true blockTrackers: true,
}); });
export async function enableBlockerInPage(page: Page) { export async function enableBlockerInPage(page: Page) {
+2 -5
View File
@@ -1,7 +1,4 @@
import chalk from 'chalk'; import chalk from 'chalk';
import {readFileSync} from 'fs';
const version = readFileSync('version.txt', 'utf8');
export const banner = { export const banner = {
asciiVersion: ` asciiVersion: `
@@ -14,12 +11,12 @@ export const banner = {
░ ░▒ ░ ░ ░ ░▒ ░ ▒░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░ ░ ▒ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░ ░ ░▒ ░ ░ ░ ░▒ ░ ▒░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░▒ ░ ▒░ ░ ▒ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░░ ░ ▒░ ░
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
${version}`, ${process.env.npm_package_version}`,
render(ascii: boolean, hexColor: string) { render(ascii: boolean, hexColor: string) {
return chalk return chalk
.hex(hexColor) .hex(hexColor)
.bold(ascii ? this.asciiVersion : this.stringVersion); .bold(ascii ? this.asciiVersion : this.stringVersion);
}, },
stringVersion: `STREETMERCHANT stringVersion: `STREETMERCHANT
${version}` ${process.env.npm_package_version}`,
}; };
+86 -42
View File
@@ -2,11 +2,22 @@ import {existsSync, readFileSync} from 'fs';
import {banner} from './banner'; import {banner} from './banner';
import dotenv from 'dotenv'; import dotenv from 'dotenv';
import path from 'path'; import path from 'path';
import * as console from 'console';
if (existsSync(path.resolve(__dirname, '../dotenv'))) { if (process.env.npm_config_conf) {
dotenv.config({path: path.resolve(__dirname, '../dotenv')}); if (
existsSync(path.resolve(__dirname, '../../' + process.env.npm_config_conf))
) {
dotenv.config({
path: path.resolve(__dirname, '../../' + process.env.npm_config_conf),
});
} else {
dotenv.config({path: path.resolve(__dirname, '../../.env')});
}
} else if (existsSync(path.resolve(__dirname, '../../dotenv'))) {
dotenv.config({path: path.resolve(__dirname, '../../dotenv')});
} else { } else {
dotenv.config({path: path.resolve(__dirname, '../.env')}); dotenv.config({path: path.resolve(__dirname, '../../.env')});
} }
console.info( console.info(
@@ -31,7 +42,7 @@ function envOrArray(
? environment.split('\n') ? environment.split('\n')
: environment.split(',') : environment.split(',')
: array ?? [] : array ?? []
).map((s) => s.trim()); ).map(s => s.trim());
} }
/** /**
@@ -147,6 +158,18 @@ function envOrNumberMax(
return number ?? 0; return number ?? 0;
} }
function loadProxyList(filename: string): string[] | undefined {
try {
return readFileSync(`${filename}.proxies`)
.toString()
.trim()
.split('\n')
.map(x => x.trim());
} catch {
return undefined;
}
}
const browser = { const browser = {
isHeadless: envOrBoolean(process.env.HEADLESS), isHeadless: envOrBoolean(process.env.HEADLESS),
isIncognito: envOrBoolean(process.env.INCOGNITO, false), isIncognito: envOrBoolean(process.env.INCOGNITO, false),
@@ -173,7 +196,7 @@ const browser = {
5000 5000
), ),
open: envOrBoolean(process.env.OPEN_BROWSER), open: envOrBoolean(process.env.OPEN_BROWSER),
userAgent: '' userAgent: '',
}; };
const docker = envOrBoolean(process.env.DOCKER, false); const docker = envOrBoolean(process.env.DOCKER, false);
@@ -185,10 +208,12 @@ const notifications = {
discord: { discord: {
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP), notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
notifyGroupSeries: { notifyGroupSeries: {
3060: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060),
'3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI), '3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI),
3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070), 3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070),
3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080), 3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080),
3090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3090), 3090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3090),
'captcha-deterrent': [],
darkhero: envOrArray(process.env.DISCORD_NOTIFY_GROUP_DARKHERO), darkhero: envOrArray(process.env.DISCORD_NOTIFY_GROUP_DARKHERO),
rx6800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800), rx6800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800),
rx6800xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800XT), rx6800xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800XT),
@@ -202,9 +227,9 @@ const notifications = {
sonyps5de: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5DE), sonyps5de: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5DE),
'test:series': envOrArray(process.env.DISCORD_NOTIFY_GROUP_TEST), 'test:series': envOrArray(process.env.DISCORD_NOTIFY_GROUP_TEST),
xboxss: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSS), xboxss: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSS),
xboxsx: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSX) xboxsx: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSX),
}, },
webhooks: 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),
@@ -214,7 +239,7 @@ const notifications = {
process.env.EMAIL_TO, process.env.EMAIL_TO,
envOrString(process.env.EMAIL_USERNAME) envOrString(process.env.EMAIL_USERNAME)
), ),
username: envOrString(process.env.EMAIL_USERNAME) username: envOrString(process.env.EMAIL_USERNAME),
}, },
mqtt: { mqtt: {
broker: envOrString(process.env.MQTT_BROKER_ADDRESS), broker: envOrString(process.env.MQTT_BROKER_ADDRESS),
@@ -223,11 +248,11 @@ const notifications = {
port: envOrNumber(process.env.MQTT_BROKER_PORT, 1883), port: envOrNumber(process.env.MQTT_BROKER_PORT, 1883),
qos: envOrNumber(process.env.MQTT_QOS, 0), qos: envOrNumber(process.env.MQTT_QOS, 0),
topic: envOrString(process.env.MQTT_TOPIC, 'streetmerchant/alert'), topic: envOrString(process.env.MQTT_TOPIC, 'streetmerchant/alert'),
username: envOrString(process.env.MQTT_USERNAME) username: envOrString(process.env.MQTT_USERNAME),
}, },
pagerduty: { pagerduty: {
integrationKey: envOrString(process.env.PAGERDUTY_INTEGRATION_KEY), integrationKey: envOrString(process.env.PAGERDUTY_INTEGRATION_KEY),
severity: envOrString(process.env.PAGERDUTY_SEVERITY, 'info') severity: envOrString(process.env.PAGERDUTY_SEVERITY, 'info'),
}, },
philips_hue: { philips_hue: {
accessToken: envOrString(process.env.PHILIPS_HUE_CLOUD_ACCESS_TOKEN), accessToken: envOrString(process.env.PHILIPS_HUE_CLOUD_ACCESS_TOKEN),
@@ -239,7 +264,7 @@ const notifications = {
lightIds: envOrString(process.env.PHILIPS_HUE_LIGHT_IDS), lightIds: envOrString(process.env.PHILIPS_HUE_LIGHT_IDS),
lightPattern: envOrString(process.env.PHILIPS_HUE_LIGHT_PATTERN), lightPattern: envOrString(process.env.PHILIPS_HUE_LIGHT_PATTERN),
refreshToken: envOrString(process.env.PHILIPS_HUE_CLOUD_REFRESH_TOKEN), refreshToken: envOrString(process.env.PHILIPS_HUE_CLOUD_REFRESH_TOKEN),
remoteApiUsername: envOrString(process.env.PHILIPS_HUE_API_KEY) remoteApiUsername: envOrString(process.env.PHILIPS_HUE_API_KEY),
}, },
phone: { phone: {
availableCarriers: new Map([ availableCarriers: new Map([
@@ -254,13 +279,14 @@ const notifications = {
['sprint', 'messaging.sprintpcs.com'], ['sprint', 'messaging.sprintpcs.com'],
['telus', 'msg.telus.com'], ['telus', 'msg.telus.com'],
['tmobile', 'tmomail.net'], ['tmobile', 'tmomail.net'],
['uscc', 'mms.uscc.net'],
['verizon', 'vtext.com'], ['verizon', 'vtext.com'],
['virgin', 'vmobl.com'], ['virgin', 'vmobl.com'],
['virgin-ca', 'vmobile.ca'], ['virgin-ca', 'vmobile.ca'],
['visible', 'vtext.com'] ['visible', 'vtext.com'],
]), ]),
carrier: envOrArray(process.env.PHONE_CARRIER), carrier: envOrArray(process.env.PHONE_CARRIER),
number: envOrArray(process.env.PHONE_NUMBER) number: envOrArray(process.env.PHONE_NUMBER),
}, },
playSound: envOrString(process.env.PLAY_SOUND), playSound: envOrString(process.env.PLAY_SOUND),
pushbullet: envOrString(process.env.PUSHBULLET), pushbullet: envOrString(process.env.PUSHBULLET),
@@ -269,42 +295,56 @@ const notifications = {
priority: envOrNumber(process.env.PUSHOVER_PRIORITY), priority: envOrNumber(process.env.PUSHOVER_PRIORITY),
retry: envOrNumber(process.env.PUSHOVER_RETRY), retry: envOrNumber(process.env.PUSHOVER_RETRY),
token: envOrString(process.env.PUSHOVER_TOKEN), token: envOrString(process.env.PUSHOVER_TOKEN),
username: envOrString(process.env.PUSHOVER_USER) username: envOrString(process.env.PUSHOVER_USER),
},
redis: {
url: envOrString(process.env.REDIS_URL),
}, },
slack: { slack: {
channel: envOrString(process.env.SLACK_CHANNEL), channel: envOrString(process.env.SLACK_CHANNEL),
token: envOrString(process.env.SLACK_TOKEN) token: envOrString(process.env.SLACK_TOKEN),
},
smartthings: {
token: envOrString(process.env.SMARTTHINGS_TOKEN),
device: envOrString(process.env.SMARTTHINGS_SWITCH_LABEL),
}, },
soundPlayer: envOrString(process.env.SOUND_PLAYER), soundPlayer: envOrString(process.env.SOUND_PLAYER),
telegram: { telegram: {
accessToken: envOrString(process.env.TELEGRAM_ACCESS_TOKEN), accessToken: envOrString(process.env.TELEGRAM_ACCESS_TOKEN),
chatId: envOrArray(process.env.TELEGRAM_CHAT_ID) chatId: envOrArray(process.env.TELEGRAM_CHAT_ID),
}, },
twilio: { twilio: {
accountSid: envOrString(process.env.TWILIO_ACCOUNT_SID), accountSid: envOrString(process.env.TWILIO_ACCOUNT_SID),
authToken: envOrString(process.env.TWILIO_AUTH_TOKEN), authToken: envOrString(process.env.TWILIO_AUTH_TOKEN),
from: envOrString(process.env.TWILIO_FROM_NUMBER), from: envOrString(process.env.TWILIO_FROM_NUMBER),
to: envOrString(process.env.TWILIO_TO_NUMBER) to: envOrString(process.env.TWILIO_TO_NUMBER),
}, },
twitch: { twitch: {
accessToken: envOrString(process.env.TWITCH_ACCESS_TOKEN), accessToken: envOrString(process.env.TWITCH_ACCESS_TOKEN),
channel: envOrString(process.env.TWITCH_CHANNEL), channel: envOrString(process.env.TWITCH_CHANNEL),
clientId: envOrString(process.env.TWITCH_CLIENT_ID), clientId: envOrString(process.env.TWITCH_CLIENT_ID),
clientSecret: envOrString(process.env.TWITCH_CLIENT_SECRET), clientSecret: envOrString(process.env.TWITCH_CLIENT_SECRET),
refreshToken: envOrString(process.env.TWITCH_REFRESH_TOKEN) refreshToken: envOrString(process.env.TWITCH_REFRESH_TOKEN),
}, },
twitter: { twitter: {
accessTokenKey: envOrString(process.env.TWITTER_ACCESS_TOKEN_KEY), accessTokenKey: envOrString(process.env.TWITTER_ACCESS_TOKEN_KEY),
accessTokenSecret: envOrString(process.env.TWITTER_ACCESS_TOKEN_SECRET), accessTokenSecret: envOrString(process.env.TWITTER_ACCESS_TOKEN_SECRET),
consumerKey: envOrString(process.env.TWITTER_CONSUMER_KEY), consumerKey: envOrString(process.env.TWITTER_CONSUMER_KEY),
consumerSecret: envOrString(process.env.TWITTER_CONSUMER_SECRET), consumerSecret: envOrString(process.env.TWITTER_CONSUMER_SECRET),
tweetTags: envOrString(process.env.TWITTER_TWEET_TAGS) tweetTags: envOrString(process.env.TWITTER_TWEET_TAGS),
} },
streamlabs: {
accessToken: envOrString(process.env.STREAMLABS_ACCESS_TOKEN),
type: envOrString(process.env.STREAMLABS_TYPE),
imageHref: envOrString(process.env.STREAMLABS_IMAGE),
soundHref: envOrString(process.env.STREAMLABS_SOUND),
duration: envOrNumber(process.env.STREAMLABS_DURATION),
},
}; };
const nvidia = { const nvidia = {
addToCardAttempts: envOrNumber(process.env.NVIDIA_ADD_TO_CART_ATTEMPTS, 10), addToCardAttempts: envOrNumber(process.env.NVIDIA_ADD_TO_CART_ATTEMPTS, 10),
sessionTtl: envOrNumber(process.env.NVIDIA_SESSION_TTL, 60000) sessionTtl: envOrNumber(process.env.NVIDIA_SESSION_TTL, 60000),
}; };
const page = { const page = {
@@ -312,13 +352,13 @@ const page = {
inStockWaitTime: envOrNumber(process.env.IN_STOCK_WAIT_TIME), inStockWaitTime: envOrNumber(process.env.IN_STOCK_WAIT_TIME),
screenshot: envOrBoolean(process.env.SCREENSHOT), screenshot: envOrBoolean(process.env.SCREENSHOT),
timeout: envOrNumber(process.env.PAGE_TIMEOUT, 30000), timeout: envOrNumber(process.env.PAGE_TIMEOUT, 30000),
width: 1920 width: 1920,
}; };
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') protocol: envOrString(process.env.PROXY_PROTOCOL, 'http'),
}; };
// Check for deprecated configuration values // Check for deprecated configuration values
@@ -333,10 +373,12 @@ const store = {
country: envOrString(process.env.COUNTRY, 'usa'), country: envOrString(process.env.COUNTRY, 'usa'),
maxPrice: { maxPrice: {
series: { series: {
3060: envOrNumber(process.env.MAX_PRICE_SERIES_3060),
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI), '3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070), 3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080), 3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090), 3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
'captcha-deterrent': 0,
darkhero: envOrNumber(process.env.MAX_PRICE_SERIES_DARKHERO), darkhero: envOrNumber(process.env.MAX_PRICE_SERIES_DARKHERO),
rx6800: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800), rx6800: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800),
rx6800xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800XT), rx6800xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800XT),
@@ -349,20 +391,21 @@ const store = {
sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C), sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C),
sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE), sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE),
'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST), 'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST),
xboxss: -1, xboxss: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSS),
xboxsx: -1 xboxsx: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSX),
} },
}, },
microCenterLocation: envOrArray(process.env.MICROCENTER_LOCATION, ['web']), microCenterLocation: envOrArray(process.env.MICROCENTER_LOCATION, ['web']),
showOnlyBrands: envOrArray(process.env.SHOW_ONLY_BRANDS), showOnlyBrands: envOrArray(process.env.SHOW_ONLY_BRANDS),
showOnlyModels: envOrArray(process.env.SHOW_ONLY_MODELS).map((entry) => { showOnlyModels: envOrArray(process.env.SHOW_ONLY_MODELS).map(entry => {
const [name, series] = entry.match(/[^:]+/g) ?? []; const [name, series] = entry.match(/[^:]+/g) ?? [];
return { return {
name: envOrString(name), name: envOrString(name),
series: envOrString(series) series: envOrString(series),
}; };
}), }),
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [ showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
'3060',
'3060ti', '3060ti',
'3070', '3070',
'3080', '3080',
@@ -374,22 +417,20 @@ const store = {
'ryzen5800', 'ryzen5800',
'ryzen5900', 'ryzen5900',
'ryzen5950', 'ryzen5950',
'sf',
'sonyps5c', 'sonyps5c',
'sonyps5de', 'sonyps5de',
'xboxss', 'xboxss',
'xboxsx' 'xboxsx',
]), ]),
stores: envOrArray(process.env.STORES, ['nvidia']).map((entry) => { stores: envOrArray(process.env.STORES, ['amazon', 'bestbuy']).map(entry => {
const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? []; const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? [];
let proxyList; let proxyList = loadProxyList(name);
try {
proxyList = readFileSync(`${name}.proxies`) if (!proxyList) {
.toString() proxyList = loadProxyList('global');
.trim() }
.split('\n')
.map((x) => x.trim());
} catch {}
return { return {
maxPageSleep: envOrNumberMax( maxPageSleep: envOrNumberMax(
@@ -403,14 +444,16 @@ const store = {
browser.minSleep browser.minSleep
), ),
name: envOrString(name), name: envOrString(name),
proxyList proxyList,
}; };
}) }),
}; };
const restartTime = envOrNumber(process.env.RESTART_TIME, 0);
export const defaultStoreData = { export const defaultStoreData = {
maxPageSleep: browser.maxSleep, maxPageSleep: browser.maxSleep,
minPageSleep: browser.minSleep minPageSleep: browser.minSleep,
}; };
export const config = { export const config = {
@@ -421,7 +464,8 @@ export const config = {
nvidia, nvidia,
page, page,
proxy, proxy,
store store,
restartTime,
}; };
export function setConfig(newConfig: any) { export function setConfig(newConfig: any) {
+23 -11
View File
@@ -1,17 +1,29 @@
import * as Process from 'process';
import {config} from './config'; // Needs to be loaded first import {config} from './config'; // Needs to be loaded first
import {startAPIServer, stopAPIServer} from './web'; // eslint-disable-line sort-imports import {startAPIServer, stopAPIServer} from './web';
import {Browser} from 'puppeteer'; import {Browser, launch} from 'puppeteer';
import {getSleepTime} from './util'; import {getSleepTime} from './util';
import {logger} from './logger'; import {logger} from './logger';
import puppeteer from 'puppeteer-extra';
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
import {storeList} from './store/model'; import {storeList} from './store/model';
import {tryLookupAndLoop} from './store'; import {tryLookupAndLoop} from './store';
puppeteer.use(stealthPlugin());
let browser: Browser | undefined; let browser: Browser | undefined;
async function sleep(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/**
* Schedules a restart of the bot
*/
async function restartMain() {
if (config.restartTime > 0) {
await sleep(config.restartTime);
await stop();
loopMain();
}
}
/** /**
* Starts the bot. * Starts the bot.
*/ */
@@ -47,13 +59,13 @@ async function main() {
} }
await stop(); await stop();
browser = await puppeteer.launch({ browser = await launch({
args, args,
defaultViewport: { defaultViewport: {
height: config.page.height, height: config.page.height,
width: config.page.width width: config.page.width,
}, },
headless: config.browser.isHeadless headless: config.browser.isHeadless,
}); });
config.browser.userAgent = await browser.userAgent(); config.browser.userAgent = await browser.userAgent();
@@ -83,8 +95,7 @@ async function stop() {
async function stopAndExit() { async function stopAndExit() {
await stop(); await stop();
// eslint-disable-next-line unicorn/no-process-exit Process.exit(0);
process.exit(0);
} }
/** /**
@@ -92,6 +103,7 @@ async function stopAndExit() {
*/ */
async function loopMain() { async function loopMain() {
try { try {
restartMain();
await main(); await main();
} catch (error: unknown) { } catch (error: unknown) {
logger.error( logger.error(
+47 -11
View File
@@ -3,7 +3,7 @@ import chalk from 'chalk';
import {config} from './config'; import {config} from './config';
import winston from 'winston'; import winston from 'winston';
const prettyJson = winston.format.printf((info) => { const prettyJson = winston.format.printf(info => {
const timestamp = new Date().toLocaleTimeString(); const timestamp = new Date().toLocaleTimeString();
let out = `${chalk.grey(`[${timestamp}]`)} ${info.level} ${chalk.grey( let out = `${chalk.grey(`[${timestamp}]`)} ${info.level} ${chalk.grey(
@@ -21,12 +21,12 @@ export const logger = winston.createLogger({
format: winston.format.combine( format: winston.format.combine(
winston.format.colorize(), winston.format.colorize(),
winston.format.metadata({ winston.format.metadata({
fillExcept: ['level', 'message', 'timestamp'] fillExcept: ['level', 'message', 'timestamp'],
}), }),
prettyJson prettyJson
), ),
level: config.logLevel, level: config.logLevel,
transports: [new winston.transports.Console({})] transports: [new winston.transports.Console({})],
}); });
export const Print = { export const Print = {
@@ -95,6 +95,18 @@ export const Print = {
return `${buildProductString(link, store)} :: CAPTCHA`; return `${buildProductString(link, store)} :: CAPTCHA`;
}, },
cloudflare(link: Link, store: Store, color?: boolean): string {
if (color) {
return (
'✖ ' +
buildProductString(link, store, true) +
' :: ' +
chalk.yellow('CLOUDFLARE, WAITING')
);
}
return `${buildProductString(link, store)} :: CLOUDFLARE, WAITING`;
},
inStock(link: Link, store: Store, color?: boolean, sms?: boolean): string { inStock(link: Link, store: Store, color?: boolean, sms?: boolean): string {
const productString = `${buildProductString(link, store)} :: IN STOCK`; const productString = `${buildProductString(link, store)} :: IN STOCK`;
@@ -131,9 +143,7 @@ export const Print = {
'✖ ' + '✖ ' +
buildProductString(link, store, true) + buildProductString(link, store, true) +
' :: ' + ' :: ' +
chalk.yellow( chalk.yellow(`PRICE ${link.price ?? ''} EXCEEDS LIMIT ${maxPrice}`)
`PRICE ${link.price ?? ''} EXCEEDS LIMIT ${maxPrice}`
)
); );
} }
@@ -184,8 +194,7 @@ export const Print = {
}, },
productInStock(link: Link): string { productInStock(link: Link): string {
let productString = `Product Page: ${link.url}`; let productString = `Product Page: ${link.url}`;
if (link.cartUrl) if (link.cartUrl) productString += `\nAdd To Cart Link: ${link.cartUrl}`;
productString += `\nAdd To Cart Link: ${link.cartUrl}`;
return productString; return productString;
}, },
@@ -200,7 +209,22 @@ export const Print = {
} }
return `${buildProductString(link, store)} :: RATE LIMIT EXCEEDED`; return `${buildProductString(link, store)} :: RATE LIMIT EXCEEDED`;
},
recursionLimit(link: Link, store: Store, color?: boolean): string {
if (color) {
return (
'✖ ' +
buildProductString(link, store, true) +
' :: ' +
chalk.yellow('CLOUDFLARE RETRY LIMIT REACHED, ABORT')
);
} }
return `${buildProductString(
link,
store
)} :: CLOUDFLARE RETRY LIMIT REACHED, ABORT`;
},
}; };
function buildSetupString( function buildSetupString(
@@ -209,9 +233,7 @@ function buildSetupString(
color?: boolean color?: boolean
): string { ): string {
if (color) { if (color) {
return ( return chalk.cyan(`[${store.name}]`) + chalk.grey(` [setup (${topic})]`);
chalk.cyan(`[${store.name}]`) + chalk.grey(` [setup (${topic})]`)
);
} }
return `[${store.name}] [setup (${topic})]`; return `[${store.name}] [setup (${topic})]`;
@@ -219,11 +241,25 @@ function buildSetupString(
function buildProductString(link: Link, store: Store, color?: boolean): string { function buildProductString(link: Link, store: Store, color?: boolean): string {
if (color) { if (color) {
if (store.currentProxyIndex !== undefined && store.proxyList) {
const proxy = `${store.currentProxyIndex + 1}/${store.proxyList.length}`;
return (
chalk.gray(`[${proxy}]`) +
chalk.cyan(` [${store.name}]`) +
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
);
} else {
return ( return (
chalk.cyan(`[${store.name}]`) + chalk.cyan(`[${store.name}]`) +
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`) chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
); );
} }
}
if (store.currentProxyIndex !== undefined && store.proxyList) {
const proxy = `${store.currentProxyIndex + 1}/${store.proxyList.length}`;
return `[${proxy}] [${store.name}] [${link.brand} (${link.series})] ${link.model}`;
} else {
return `[${store.name}] [${link.brand} (${link.series})] ${link.model}`; return `[${store.name}] [${link.brand} (${link.series})] ${link.model}`;
}
} }
+8 -2
View File
@@ -1,17 +1,23 @@
import {Link, Store} from '../store/model'; import {Link, Store} from '../store/model';
import {Print, logger} from '../logger'; import {Print, logger} from '../logger';
import {config} from '../config'; import {config} from '../config';
import {join} from 'path';
import notifier from 'node-notifier'; import notifier from 'node-notifier';
const desktop = config.notifications.desktop; const {desktop} = config.notifications;
export function sendDesktopNotification(link: Link, store: Store) { export function sendDesktopNotification(link: Link, store: Store) {
if (desktop) { if (desktop) {
logger.debug('↗ sending desktop notification'); logger.debug('↗ sending desktop notification');
(async () => { (async () => {
notifier.notify({ notifier.notify({
icon: join(
__dirname,
'../../../docs/assets/images/streetmerchant-logo.png'
),
message: link.cartUrl ? link.cartUrl : link.url, message: link.cartUrl ? link.cartUrl : link.url,
title: Print.inStock(link, store) open: link.cartUrl ? link.cartUrl : link.url,
title: Print.inStock(link, store),
}); });
logger.info('✔ desktop notification sent'); logger.info('✔ desktop notification sent');
+8 -17
View File
@@ -3,8 +3,7 @@ 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 {notifyGroup, webhooks, notifyGroupSeries} = config.notifications.discord;
const {notifyGroup, webhooks, notifyGroupSeries} = discord;
function getIdAndToken(webhook: string) { function getIdAndToken(webhook: string) {
const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook); const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook);
@@ -15,7 +14,7 @@ function getIdAndToken(webhook: string) {
return { return {
id: match[1], id: match[1],
token: match[2] token: match[2],
}; };
} }
@@ -38,11 +37,7 @@ export function sendDiscordMessage(link: Link, store: Store) {
embed.addField('Store', store.name, true); embed.addField('Store', store.name, true);
if (link.price) if (link.price)
embed.addField( embed.addField('Price', `${store.currency}${link.price}`, true);
'Price',
`${store.currency}${link.price}`,
true
);
embed.addField('Product Page', link.url); embed.addField('Product Page', link.url);
if (link.cartUrl) embed.addField('Add to Cart', link.cartUrl); if (link.cartUrl) embed.addField('Add to Cart', link.cartUrl);
embed.addField('Brand', link.brand, true); embed.addField('Brand', link.brand, true);
@@ -57,10 +52,8 @@ export function sendDiscordMessage(link: Link, store: Store) {
notifyText = notifyText.concat(notifyGroup); notifyText = notifyText.concat(notifyGroup);
} }
if (Object.keys(notifyGroupSeries).indexOf(link.series) !== 0) { if (Object.keys(notifyGroupSeries).indexOf(link.series) !== -1) {
notifyText = notifyText.concat( notifyText = notifyText.concat(notifyGroupSeries[link.series]);
notifyGroupSeries[link.series]
);
} }
const promises = []; const promises = [];
@@ -72,14 +65,12 @@ export function sendDiscordMessage(link: Link, store: Store) {
client, client,
message: client.send(notifyText.join(' '), { message: client.send(notifyText.join(' '), {
embeds: [embed], embeds: [embed],
username: 'streetmerchant' username: 'streetmerchant',
}) }),
}); });
} }
(await Promise.all(promises)).forEach(({client}) => (await Promise.all(promises)).forEach(({client}) => client.destroy());
client.destroy()
);
logger.info('✔ discord message sent'); logger.info('✔ discord message sent');
} catch (error: unknown) { } catch (error: unknown) {
+6 -6
View File
@@ -4,7 +4,7 @@ import Mail from 'nodemailer/lib/mailer';
import {config} from '../config'; import {config} from '../config';
import nodemailer from 'nodemailer'; import nodemailer from 'nodemailer';
const email = config.notifications.email; const {email} = config.notifications;
const transportOptions: any = {}; const transportOptions: any = {};
@@ -22,7 +22,7 @@ if (email.smtpAddress) {
} }
export const transporter = nodemailer.createTransport({ export const transporter = nodemailer.createTransport({
...transportOptions ...transportOptions,
}); });
export function sendEmail(link: Link, store: Store) { export function sendEmail(link: Link, store: Store) {
@@ -34,17 +34,17 @@ export function sendEmail(link: Link, store: Store) {
? [ ? [
{ {
filename: link.screenshot, filename: link.screenshot,
path: `./${link.screenshot}` path: `./${link.screenshot}`,
} },
] ]
: undefined, : undefined,
from: email.username, from: email.username,
subject: Print.inStock(link, store), subject: Print.inStock(link, store),
text: Print.productInStock(link), text: Print.productInStock(link),
to: email.to to: email.to,
}; };
transporter.sendMail(mailOptions, (error) => { transporter.sendMail(mailOptions, error => {
if (error) { if (error) {
logger.error("✖ couldn't send email", error); logger.error("✖ couldn't send email", error);
} else { } else {
+3 -3
View File
@@ -3,7 +3,7 @@ import MqttClient, {IClientOptions, IClientPublishOptions} from 'mqtt';
import {Print, logger} from '../logger'; import {Print, logger} from '../logger';
import {config} from '../config'; import {config} from '../config';
const mqtt = config.notifications.mqtt; const {mqtt} = config.notifications;
let client: MqttClient.Client; let client: MqttClient.Client;
if (mqtt.broker) { if (mqtt.broker) {
@@ -16,7 +16,7 @@ if (mqtt.broker) {
clean: mqtt.clientId === '', clean: mqtt.clientId === '',
clientId: mqtt.clientId === '' ? undefined : mqtt.clientId, clientId: mqtt.clientId === '' ? undefined : mqtt.clientId,
password: mqtt.password === '' ? undefined : mqtt.password, password: mqtt.password === '' ? undefined : mqtt.password,
username: mqtt.username === '' ? undefined : mqtt.username username: mqtt.username === '' ? undefined : mqtt.username,
}; };
client = MqttClient.connect( client = MqttClient.connect(
`mqtt://${mqtt.broker}:${mqtt.port}`, `mqtt://${mqtt.broker}:${mqtt.port}`,
@@ -38,7 +38,7 @@ export function sendMqttMessage(link: Link, store: Store) {
const topic = generateTopic(link, store, mqtt.topic); const topic = generateTopic(link, store, mqtt.topic);
const pubOptions: IClientPublishOptions = { const pubOptions: IClientPublishOptions = {
qos: mqtt.qos as 0 | 1 | 2, qos: mqtt.qos as 0 | 1 | 2,
retain: false retain: false,
}; };
try { try {
+6
View File
@@ -14,6 +14,9 @@ import {sendTelegramMessage} from './telegram';
import {sendTweet} from './twitter'; import {sendTweet} from './twitter';
import {sendTwilioMessage} from './twilio'; import {sendTwilioMessage} from './twilio';
import {sendTwitchMessage} from './twitch'; import {sendTwitchMessage} from './twitch';
import {updateRedis} from './redis';
import {activateSmartthingsSwitch} from './smartthings';
import {sendStreamLabsAlert} from './streamlabs';
export function sendNotification(link: Link, store: Store) { export function sendNotification(link: Link, store: Store) {
// Priority // Priority
@@ -23,6 +26,7 @@ export function sendNotification(link: Link, store: Store) {
sendEmail(link, store); sendEmail(link, store);
sendSms(link, store); sendSms(link, store);
// Non-priority // Non-priority
activateSmartthingsSwitch();
adjustPhilipsHueLights(); adjustPhilipsHueLights();
sendMqttMessage(link, store); sendMqttMessage(link, store);
sendPagerDutyNotification(link, store); sendPagerDutyNotification(link, store);
@@ -33,4 +37,6 @@ export function sendNotification(link: Link, store: Store) {
sendTweet(link, store); sendTweet(link, store);
sendTwilioMessage(link, store); sendTwilioMessage(link, store);
sendTwitchMessage(link, store); sendTwitchMessage(link, store);
updateRedis(link, store);
sendStreamLabsAlert(link, store);
} }
+3 -3
View File
@@ -12,7 +12,7 @@ export function sendPagerDutyNotification(link: Link, store: Store) {
if (link.cartUrl) { if (link.cartUrl) {
links.push({ links.push({
href: link.cartUrl, href: link.cartUrl,
text: 'Add to Cart' text: 'Add to Cart',
}); });
} }
@@ -23,9 +23,9 @@ export function sendPagerDutyNotification(link: Link, store: Store) {
links, links,
severity: config.notifications.pagerduty.severity, severity: config.notifications.pagerduty.severity,
source: store.name, source: store.name,
summary: Print.inStock(link, store) summary: Print.inStock(link, store),
}, },
routing_key: config.notifications.pagerduty.integrationKey routing_key: config.notifications.pagerduty.integrationKey,
}); });
} }
} }
+31 -42
View File
@@ -3,18 +3,19 @@ import {config} from '../config';
import {v3 as hueAPI} from 'node-hue-api'; import {v3 as hueAPI} from 'node-hue-api';
import {logger} from '../logger'; import {logger} from '../logger';
const hue = config.notifications.philips_hue; const {LightState} = hueAPI.lightStates;
const apiKey = hue.apiKey; const {
const bridgeIp = hue.bridgeIp; apiKey,
const lightIds = hue.lightIds; bridgeIp,
const lightColor = hue.lightColor; lightIds,
const lightPattern = hue.lightPattern; lightColor,
const LightState = hueAPI.lightStates.LightState; lightPattern,
const clientId = hue.clientId; clientId,
const clientSecret = hue.clientSecret; clientSecret,
const accessToken = hue.accessToken; accessToken,
const refreshToken = hue.refreshToken; refreshToken,
const remoteApiUsername = hue.remoteApiUsername; remoteApiUsername,
} = config.notifications.philips_hue;
// Default Light State // Default Light State
const lightState = new LightState() const lightState = new LightState()
@@ -43,16 +44,15 @@ const adjustLightsWithAPI = (hueBridge: Api) => {
// If we've been given light IDs, then only adjust those IDs // If we've been given light IDs, then only adjust those IDs
if (lightIds) { if (lightIds) {
const arrayOfIDs = lightIds.split(','); const arrayOfIDs = lightIds.split(',');
arrayOfIDs.forEach((light) => { arrayOfIDs.forEach(light => {
logger.debug('adjusting all hue lights'); logger.debug('adjusting specified lights');
(hueBridge.lights.setLightState( (hueBridge.lights.setLightState(light, lightState) as Promise<any>).catch(
light, (error: Error) => {
lightState logger.error('Failed to adjust specified lights.');
) as Promise<any>).catch((error: Error) => {
logger.error('Failed to adjust all lights.');
logger.error(error); logger.error(error);
throw error; throw error;
}); }
);
}); });
} else { } else {
// Adjust all light IDs // Adjust all light IDs
@@ -60,12 +60,12 @@ const adjustLightsWithAPI = (hueBridge: Api) => {
.getAll() .getAll()
.then((allLights: any[]) => { .then((allLights: any[]) => {
allLights.forEach((light: any) => { allLights.forEach((light: any) => {
logger.debug('adjusting specified lights'); logger.debug('adjusting all hue lights');
(hueBridge.lights.setLightState( (hueBridge.lights.setLightState(
light, light,
lightState lightState
) as Promise<any>).catch((error: Error) => { ) as Promise<any>).catch((error: Error) => {
logger.error('Failed to adjust specified lights.'); logger.error('Failed to adjust all lights.');
logger.error(error); logger.error(error);
throw error; throw error;
}); });
@@ -81,7 +81,7 @@ const adjustLightsWithAPI = (hueBridge: Api) => {
export function adjustPhilipsHueLights() { export function adjustPhilipsHueLights() {
// Check if the required variables have been set // Check if the required variables have been set
if (hue.apiKey && hue.bridgeIp) { if (apiKey && bridgeIp) {
logger.info('↗ adjusting Philips Hue lights over LAN'); logger.info('↗ adjusting Philips Hue lights over LAN');
(async () => { (async () => {
logger.debug( logger.debug(
@@ -91,7 +91,7 @@ export function adjustPhilipsHueLights() {
.createLocal(bridgeIp) .createLocal(bridgeIp)
.connect(apiKey) .connect(apiKey)
.then( .then(
(hueBridge) => { hueBridge => {
adjustLightsWithAPI(hueBridge); adjustLightsWithAPI(hueBridge);
logger.info('✔ adjusted Philips Hue lights over LAN'); logger.info('✔ adjusted Philips Hue lights over LAN');
}, },
@@ -100,29 +100,18 @@ export function adjustPhilipsHueLights() {
} }
); );
})(); })();
} else if (hue.apiKey && hue.clientId && hue.clientSecret) { } else if (apiKey && clientId && clientSecret) {
logger.info('↗ adjusting Philips Hue lights over cloud'); logger.info('↗ adjusting Philips Hue lights over cloud');
(async () => { (async () => {
logger.debug( logger.debug('Attempting to connect to Philips Hue bridge over cloud');
'Attempting to connect to Philips Hue bridge over cloud' const remoteBootstrap = hueAPI.api.createRemote(clientId, clientSecret);
); if (accessToken && refreshToken) {
const remoteBootstrap = hueAPI.api.createRemote(
clientId,
clientSecret
);
if (hue.accessToken && hue.refreshToken) {
remoteBootstrap remoteBootstrap
.connectWithTokens( .connectWithTokens(accessToken, refreshToken, remoteApiUsername)
accessToken,
refreshToken,
remoteApiUsername
)
.then( .then(
(hueBridge) => { hueBridge => {
adjustLightsWithAPI(hueBridge); adjustLightsWithAPI(hueBridge);
logger.info( logger.info('✔ adjusted Philips Hue lights over cloud');
'✔ adjusted Philips Hue lights over cloud'
);
}, },
(error: Error) => { (error: Error) => {
logger.error( logger.error(
+1 -1
View File
@@ -3,7 +3,7 @@ import {Print, logger} from '../logger';
import PushBullet from '@jef/pushbullet'; import PushBullet from '@jef/pushbullet';
import {config} from '../config'; import {config} from '../config';
const pushbullet = config.notifications.pushbullet; const {pushbullet} = config.notifications;
export function sendPushbulletNotification(link: Link, store: Store) { export function sendPushbulletNotification(link: Link, store: Store) {
if (pushbullet) { if (pushbullet) {
+6 -4
View File
@@ -3,7 +3,7 @@ import {Print, logger} from '../logger';
import Push, {PushoverMessage} from 'pushover-notifications'; import Push, {PushoverMessage} from 'pushover-notifications';
import {config} from '../config'; import {config} from '../config';
const pushover = config.notifications.pushover; const {pushover} = config.notifications;
export function sendPushoverNotification(link: Link, store: Store) { export function sendPushoverNotification(link: Link, store: Store) {
if (pushover.token && pushover.username) { if (pushover.token && pushover.username) {
@@ -11,7 +11,7 @@ export function sendPushoverNotification(link: Link, store: Store) {
const push = new Push({ const push = new Push({
token: pushover.token, token: pushover.token,
user: pushover.username user: pushover.username,
}); });
const message: PushoverMessage = const message: PushoverMessage =
@@ -19,14 +19,16 @@ export function sendPushoverNotification(link: Link, store: Store) {
? { ? {
message: link.cartUrl ? link.cartUrl : link.url, message: link.cartUrl ? link.cartUrl : link.url,
priority: pushover.priority, priority: pushover.priority,
title: Print.inStock(link, store) title: Print.inStock(link, store),
...(link.screenshot && {file: `./${link.screenshot}`}),
} }
: { : {
expire: pushover.expire, expire: pushover.expire,
message: link.cartUrl ? link.cartUrl : link.url, message: link.cartUrl ? link.cartUrl : link.url,
priority: pushover.priority, priority: pushover.priority,
retry: pushover.retry, retry: pushover.retry,
title: Print.inStock(link, store) title: Print.inStock(link, store),
...(link.screenshot && {file: `./${link.screenshot}`}),
}; };
push.send(message, (error: Error) => { push.send(message, (error: Error) => {
+45
View File
@@ -0,0 +1,45 @@
import {Link, Store} from '../store/model';
import redis, {RedisClient} from 'redis';
import {config} from '../config';
import {logger} from '../logger';
const {url} = config.notifications.redis;
let client: RedisClient;
function initRedis(): RedisClient | null {
if (url) {
client = redis.createClient({url});
}
return null;
}
export function updateRedis(link: Link, store: Store) {
try {
if (client) {
const key = `${store.name}:${link.brand}:${link.model}`
.split(' ')
.join('-');
const value = {
...link,
labels: store.labels,
links: store.links,
name: store.name,
updatedAt: new Date().toUTCString(),
};
const redisUpdated = client.set(key, JSON.stringify(value));
if (redisUpdated) {
logger.info('✔ redis updated');
} else {
logger.error(`✖ couldn't update redis for key (${key})`);
}
}
} catch (error: unknown) {
logger.error("✖ couldn't update redis", error);
}
}
initRedis();
+4 -6
View File
@@ -3,13 +3,11 @@ import {Print, logger} from '../logger';
import {WebClient} from '@slack/web-api'; import {WebClient} from '@slack/web-api';
import {config} from '../config'; import {config} from '../config';
const slack = config.notifications.slack; const {channel, token} = config.notifications.slack;
const channel = slack.channel.replace('#', '');
const token = slack.token;
const web = new WebClient(token); const web = new WebClient(token);
export function sendSlackMessage(link: Link, store: Store) { export function sendSlackMessage(link: Link, store: Store) {
if (slack.channel && slack.token) { if (channel && token) {
logger.debug('↗ sending slack message'); logger.debug('↗ sending slack message');
(async () => { (async () => {
@@ -17,8 +15,8 @@ export function sendSlackMessage(link: Link, store: Store) {
try { try {
const result = await web.chat.postMessage({ const result = await web.chat.postMessage({
channel, channel: channel.replace('#', ''),
text: `${Print.inStock(link, store)}\n${givenUrl}` text: `${Print.inStock(link, store)}\n${givenUrl}`,
}); });
if (!result.ok) { if (!result.ok) {
+41
View File
@@ -0,0 +1,41 @@
import {SmartThings} from '@bridgerakol/samsung-smart-api';
import {logger} from '../logger';
import {config} from '../config';
const {smartthings} = config.notifications;
export async function activateSmartthingsSwitch() {
if (!smartthings.token || !smartthings.device) {
return;
}
const st = new SmartThings(smartthings.token);
let match = false;
try {
await st.devices.getList().then(res => {
res.data.items.forEach(
async (item: {label: string; deviceId: string}) => {
if (smartthings.device === item.label) {
match = true;
const device_status = (await st.devices.getStatus(item.deviceId))
.data.components.main.switch.switch.value;
if (device_status !== 'on') {
logger.debug(`Turning on ${smartthings.device}`);
st.devices.commands(item.deviceId, 'on');
}
}
}
);
});
} catch (TypeError) {
logger.warn(
'SmartThings : Problem getting data from hub, check SMARTTHINGS_TOKEN'
);
return;
}
if (!match) {
logger.warn(
`SmartThings : No switch called ${smartthings.device}, check SMARTTHINGS_SWITCH_LABEL`
);
return;
}
}
+8 -6
View File
@@ -4,7 +4,7 @@ import Mail from 'nodemailer/lib/mailer';
import {config} from '../config'; import {config} from '../config';
import {transporter} from './email'; import {transporter} from './email';
const [email, phone] = [config.notifications.email, config.notifications.phone]; const {email, phone} = config.notifications;
if (phone.number.length > 0 && (!email.username || !email.password)) { if (phone.number.length > 0 && (!email.username || !email.password)) {
logger.warn( logger.warn(
@@ -48,17 +48,17 @@ export function sendSms(link: Link, store: Store) {
? [ ? [
{ {
filename: link.screenshot, filename: link.screenshot,
path: `./${link.screenshot}` path: `./${link.screenshot}`,
} },
] ]
: undefined, : undefined,
from: email.username, from: email.username,
subject: Print.inStock(link, store, false, true), subject: Print.inStock(link, store, false, true),
text: link.cartUrl ? link.cartUrl : link.url, text: link.cartUrl ? link.cartUrl : link.url,
to: generateAddress(currentNumber, currentCarrier) to: generateAddress(currentNumber, currentCarrier),
}; };
transporter.sendMail(mailOptions, (error) => { transporter.sendMail(mailOptions, error => {
if (error) { if (error) {
logger.error( logger.error(
`✖ couldn't send sms to ${currentNumber} for carrier ${currentCarrier}`, `✖ couldn't send sms to ${currentNumber} for carrier ${currentCarrier}`,
@@ -71,8 +71,10 @@ export function sendSms(link: Link, store: Store) {
} }
} }
function generateAddress(number: string, carrier: string) { function generateAddress(number: string, carrier: string): string {
if (carrier && phone.availableCarriers.has(carrier)) { if (carrier && phone.availableCarriers.has(carrier)) {
return [number, phone.availableCarriers.get(carrier)].join('@'); return [number, phone.availableCarriers.get(carrier)].join('@');
} }
return '';
} }
+3 -9
View File
@@ -22,14 +22,9 @@ export function playSound() {
if (config.notifications.playSound && player.player !== null) { if (config.notifications.playSound && player.player !== null) {
logger.debug('↗ playing sound'); logger.debug('↗ playing sound');
fs.access( fs.access(config.notifications.playSound, fs.constants.F_OK, error => {
config.notifications.playSound,
fs.constants.F_OK,
(error) => {
if (error) { if (error) {
logger.error( logger.error(`✖ error opening sound file: ${error.message}`);
`✖ error opening sound file: ${error.message}`
);
return; return;
} }
@@ -40,7 +35,6 @@ export function playSound() {
logger.info('✔ played sound'); logger.info('✔ played sound');
}); });
} });
);
} }
} }
+42
View File
@@ -0,0 +1,42 @@
import {Link, Store} from '../store/model';
import {Print, logger} from '../logger';
import {config} from '../config';
import {URLSearchParams} from 'url';
import fetch from 'node-fetch';
const {streamlabs} = config.notifications;
let requestParams: URLSearchParams;
if (streamlabs.accessToken && streamlabs.type) {
requestParams = new URLSearchParams();
requestParams.append('access_token', streamlabs.accessToken);
requestParams.append('type', streamlabs.type);
requestParams.append('image_href', streamlabs.imageHref);
requestParams.append('sound_href', streamlabs.soundHref);
requestParams.append('duration', streamlabs.duration.toString());
}
export function sendStreamLabsAlert(link: Link, store: Store) {
if (requestParams) {
logger.debug('↗ sending StreamLabs alert');
(async () => {
const message = `${Print.inStock(link, store)}`;
requestParams.set('message', message);
try {
const response = await fetch('https://streamlabs.com/api/v1.0/alerts', {
method: 'POST',
body: requestParams,
});
const json = await response.json();
if (!json.success) throw Error(JSON.stringify(json));
logger.info('✔ StreamLabs alert sent');
} catch (error: unknown) {
logger.error("✖ couldn't send StreamLabs alert", error);
}
})();
}
}
+2 -2
View File
@@ -3,10 +3,10 @@ import {Print, logger} from '../logger';
import {TelegramClient} from 'messaging-api-telegram'; import {TelegramClient} from 'messaging-api-telegram';
import {config} from '../config'; import {config} from '../config';
const telegram = config.notifications.telegram; const {telegram} = config.notifications;
const client = new TelegramClient({ const client = new TelegramClient({
accessToken: telegram.accessToken accessToken: telegram.accessToken,
}); });
export function sendTelegramMessage(link: Link, store: Store) { export function sendTelegramMessage(link: Link, store: Store) {
+12 -5
View File
@@ -3,7 +3,7 @@ import {Print, logger} from '../logger';
import {Twilio} from 'twilio'; import {Twilio} from 'twilio';
import {config} from '../config'; import {config} from '../config';
const twilio = config.notifications.twilio; const {twilio} = config.notifications;
let client: Twilio; let client: Twilio;
if (twilio.accountSid && twilio.authToken) { if (twilio.accountSid && twilio.authToken) {
@@ -17,17 +17,24 @@ export function sendTwilioMessage(link: Link, store: Store) {
(async () => { (async () => {
const givenUrl = link.cartUrl ? link.cartUrl : link.url; const givenUrl = link.cartUrl ? link.cartUrl : link.url;
const message = `${Print.inStock(link, store)}\n${givenUrl}`; const message = `${Print.inStock(link, store)}\n${givenUrl}`;
const numbers = twilio.to.split(',');
const results = [];
for (const number of numbers) {
try { try {
await client.messages.create({ results.push(
client.messages.create({
body: message, body: message,
from: twilio.from, from: twilio.from,
to: twilio.to to: number,
}); })
);
logger.info('✔ twilio message sent'); logger.info('✔ twilio message sent');
} catch (error: unknown) { } catch (error: unknown) {
logger.error("✖ couldn't send twilio message", error); logger.error("✖ couldn't send twilio message", error);
} }
}
await Promise.all(results);
})(); })();
} }
} }
+9 -13
View File
@@ -5,7 +5,7 @@ import {existsSync, promises, readFileSync} from 'fs';
import {ChatClient} from 'twitch-chat-client'; import {ChatClient} from 'twitch-chat-client';
import {config} from '../config'; import {config} from '../config';
const twitch = config.notifications.twitch; const {twitch} = config.notifications;
const messages: string[] = []; const messages: string[] = [];
let alreadySaying = false; let alreadySaying = false;
@@ -13,13 +13,13 @@ let alreadySaying = false;
let tokenData = { let tokenData = {
accessToken: twitch.accessToken, accessToken: twitch.accessToken,
expiryTimestamp: 0, expiryTimestamp: 0,
refreshToken: twitch.refreshToken refreshToken: twitch.refreshToken,
}; };
if (existsSync('./twitch.json')) { if (existsSync('./twitch.json')) {
tokenData = { tokenData = {
...JSON.parse(readFileSync('./twitch.json', 'utf-8')), ...JSON.parse(readFileSync('./twitch.json', 'utf-8')),
...tokenData ...tokenData,
}; };
} }
@@ -39,10 +39,8 @@ const chatClient: ChatClient = new ChatClient(
{ {
accessToken, accessToken,
expiryTimestamp: expiryTimestamp:
expiryDate === null expiryDate === null ? null : expiryDate.getTime(),
? null refreshToken,
: expiryDate.getTime(),
refreshToken
}, },
null, null,
4 4
@@ -50,11 +48,11 @@ const chatClient: ChatClient = new ChatClient(
'utf-8' 'utf-8'
); );
}, },
refreshToken: tokenData.refreshToken refreshToken: tokenData.refreshToken,
} }
), ),
{ {
channels: [twitch.channel] channels: [twitch.channel],
} }
); );
@@ -65,7 +63,7 @@ chatClient.onJoin((channel: string, user: string) => {
if (message !== undefined) { if (message !== undefined) {
try { try {
chatClient.say(channel, message); void chatClient.say(channel, message);
logger.info('✔ twitch message sent'); logger.info('✔ twitch message sent');
} catch (error: unknown) { } catch (error: unknown) {
logger.error("✖ couldn't send twitch message", error); logger.error("✖ couldn't send twitch message", error);
@@ -92,9 +90,7 @@ export function sendTwitchMessage(link: Link, store: Store) {
logger.debug('↗ sending twitch message'); logger.debug('↗ sending twitch message');
messages.push( messages.push(
`${Print.inStock(link, store)}\n${ `${Print.inStock(link, store)}\n${link.cartUrl ? link.cartUrl : link.url}`
link.cartUrl ? link.cartUrl : link.url
}`
); );
if (!alreadySaying) { if (!alreadySaying) {
+3 -3
View File
@@ -3,13 +3,13 @@ import {Print, logger} from '../logger';
import Twitter from 'twitter'; import Twitter from 'twitter';
import {config} from '../config'; import {config} from '../config';
const twitter = config.notifications.twitter; const {twitter} = config.notifications;
const client = new Twitter({ const client = new Twitter({
access_token_key: twitter.accessTokenKey, access_token_key: twitter.accessTokenKey,
access_token_secret: twitter.accessTokenSecret, access_token_secret: twitter.accessTokenSecret,
consumer_key: twitter.consumerKey, consumer_key: twitter.consumerKey,
consumer_secret: twitter.consumerSecret consumer_secret: twitter.consumerSecret,
}); });
export function sendTweet(link: Link, store: Store) { export function sendTweet(link: Link, store: Store) {
@@ -29,7 +29,7 @@ export function sendTweet(link: Link, store: Store) {
status += `\n\n${twitter.tweetTags}`; status += `\n\n${twitter.tweetTags}`;
} }
client.post('statuses/update', {status}, (error) => { client.post('statuses/update', {status}, error => {
if (error) { if (error) {
logger.error("✖ couldn't send twitter notification", error); logger.error("✖ couldn't send twitter notification", error);
} else { } else {
+10 -23
View File
@@ -7,27 +7,20 @@ import {usingResponse} from '../util';
function addNewLinks(store: Store, links: Link[], series: Series) { function addNewLinks(store: Store, links: Link[], series: Series) {
if (links.length === 0) { if (links.length === 0) {
logger.debug( logger.debug(Print.message('NO STORE LINKS FOUND', series, store, true));
Print.message('NO STORE LINKS FOUND', series, store, true)
);
return; return;
} }
const existingUrls = new Set(store.links.map((link) => link.url)); const existingUrls = new Set(store.links.map(link => link.url));
const newLinks = links.filter((link) => !existingUrls.has(link.url)); const newLinks = links.filter(link => !existingUrls.has(link.url));
if (newLinks.length === 0) { if (newLinks.length === 0) {
return; return;
} }
logger.debug( logger.debug(
Print.message( Print.message(`FOUND ${newLinks.length} STORE LINKS`, series, store, true)
`FOUND ${newLinks.length} STORE LINKS`,
series,
store,
true
)
); );
logger.debug(JSON.stringify(newLinks, null, 2)); logger.debug(JSON.stringify(newLinks, null, 2));
@@ -41,36 +34,30 @@ export async function fetchLinks(store: Store, browser: Browser) {
const promises: Array<Promise<void>> = []; const promises: Array<Promise<void>> = [];
// eslint-disable-next-line prefer-const
for (let {series, url} of store.linksBuilder.urls) { for (let {series, url} of store.linksBuilder.urls) {
if (!filterSeries(series)) { if (!filterSeries(series)) {
continue; continue;
} }
logger.debug( logger.debug(Print.message('DETECTING STORE LINKS', series, store, true));
Print.message('DETECTING STORE LINKS', series, store, true)
);
if (!Array.isArray(url)) { if (!Array.isArray(url)) {
url = [url]; url = [url];
} }
url.map((x) => url.map(x =>
promises.push( promises.push(
usingResponse(browser, x, async (response) => { usingResponse(browser, x, async response => {
const text = await response?.text(); const text = await response?.text();
if (!text) { if (!text) {
logger.error( logger.error(Print.message('NO RESPONSE', series, store, true));
Print.message('NO RESPONSE', series, store, true)
);
return; return;
} }
const docElement = cheerio.load(text).root(); const docElement = cheerio.load(text).root();
const links = store.linksBuilder!.builder( const links = store.linksBuilder!.builder(docElement, series);
docElement,
series
);
addNewLinks(store, links, series); addNewLinks(store, links, series);
}) })
+1 -4
View File
@@ -29,10 +29,7 @@ function filterModel(model: Link['model'], series: Link['series']): boolean {
const sanitizedSeries = series.replace(/\s/g, ''); const sanitizedSeries = series.replace(/\s/g, '');
for (const configModelEntry of config.store.showOnlyModels) { for (const configModelEntry of config.store.showOnlyModels) {
const sanitizedConfigModel = configModelEntry.name.replace(/\s/g, ''); const sanitizedConfigModel = configModelEntry.name.replace(/\s/g, '');
const sanitizedConfigSeries = configModelEntry.series.replace( const sanitizedConfigSeries = configModelEntry.series.replace(/\s/g, '');
/\s/g,
''
);
if (sanitizedConfigSeries) { if (sanitizedConfigSeries) {
if ( if (
sanitizedSeries === sanitizedConfigSeries && sanitizedSeries === sanitizedConfigSeries &&
+8 -8
View File
@@ -19,9 +19,9 @@ function getQueryAsElementArray(
defaultContainer: string defaultContainer: string
): Array<Required<Element>> { ): Array<Required<Element>> {
if (isElementArray(query)) { if (isElementArray(query)) {
return query.map((x) => ({ return query.map(x => ({
container: x.container ?? defaultContainer, container: x.container ?? defaultContainer,
text: x.text text: x.text,
})); }));
} }
@@ -29,16 +29,16 @@ function getQueryAsElementArray(
return [ return [
{ {
container: defaultContainer, container: defaultContainer,
text: query text: query,
} },
]; ];
} }
return [ return [
{ {
container: query.container ?? defaultContainer, container: query.container ?? defaultContainer,
text: query.text text: query.text,
} },
]; ];
} }
@@ -50,7 +50,7 @@ export async function pageIncludesLabels(
const elementQueries = getQueryAsElementArray(query, options.selector); const elementQueries = getQueryAsElementArray(query, options.selector);
const resolved = await Promise.all( const resolved = await Promise.all(
elementQueries.map(async (query) => { elementQueries.map(async query => {
const selector = {...options, selector: query.container}; const selector = {...options, selector: query.container};
const contents = (await extractPageContents(page, selector)) ?? ''; const contents = (await extractPageContents(page, selector)) ?? '';
@@ -111,7 +111,7 @@ export function includesLabels(
searchLabels: string[] searchLabels: string[]
): boolean { ): boolean {
const domTextLowerCase = domText.toLowerCase(); const domTextLowerCase = domText.toLowerCase();
return searchLabels.some((label) => return searchLabels.some(label =>
domTextLowerCase.includes(label.toLowerCase()) domTextLowerCase.includes(label.toLowerCase())
); );
} }
+202 -78
View File
@@ -1,10 +1,9 @@
import { import {
Browser, Browser,
Page, Page,
PageEventObj, HTTPRequest,
Request, HTTPResponse,
RespondOptions, ResponseForRequest,
Response
} from 'puppeteer'; } from 'puppeteer';
import {Link, Store, getStores} from './model'; import {Link, Store, getStores} from './model';
import {Print, logger} from '../logger'; import {Print, logger} from '../logger';
@@ -14,7 +13,8 @@ import {
delay, delay,
getRandomUserAgent, getRandomUserAgent,
getSleepTime, getSleepTime,
isStatusCodeInRange isStatusCodeInRange,
noop,
} from '../util'; } from '../util';
import {disableBlockerInPage, enableBlockerInPage} from '../adblocker'; import {disableBlockerInPage, enableBlockerInPage} from '../adblocker';
import {config} from '../config'; import {config} from '../config';
@@ -23,7 +23,7 @@ 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'; import useProxy from '@doridian/puppeteer-page-proxy';
const inStock: Record<string, boolean> = {}; const inStock: Record<string, boolean> = {};
@@ -36,21 +36,24 @@ function nextProxy(store: Store) {
if (store.currentProxyIndex === undefined) { if (store.currentProxyIndex === undefined) {
store.currentProxyIndex = 0; store.currentProxyIndex = 0;
} else {
store.currentProxyIndex++;
} }
store.currentProxyIndex++;
if (store.currentProxyIndex >= store.proxyList.length) { if (store.currentProxyIndex >= store.proxyList.length) {
store.currentProxyIndex = 0; store.currentProxyIndex = 0;
} }
logger.info( logger.debug(
` [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${store.proxyList.length}` ` [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${
store.proxyList.length
} (${store.proxyList[store.currentProxyIndex]})`
); );
return store.proxyList[store.currentProxyIndex]; return store.proxyList[store.currentProxyIndex];
} }
async function handleLowBandwidth(request: Request) { async function handleLowBandwidth(request: HTTPRequest) {
if (!config.browser.lowBandwidth) { if (!config.browser.lowBandwidth) {
return false; return false;
} }
@@ -59,7 +62,9 @@ async function handleLowBandwidth(request: Request) {
if (typ === 'font' || typ === 'image') { if (typ === 'font' || typ === 'image') {
try { try {
await request.abort(); await request.abort();
} catch {} } catch {
logger.debug('Failed to abort request.');
}
return true; return true;
} }
@@ -67,7 +72,7 @@ async function handleLowBandwidth(request: Request) {
return false; return false;
} }
async function handleProxy(request: Request, proxy?: string) { async function handleProxy(request: HTTPRequest, proxy?: string) {
if (!proxy) { if (!proxy) {
return false; return false;
} }
@@ -75,21 +80,23 @@ async function handleProxy(request: Request, proxy?: string) {
try { try {
await useProxy(request, proxy); await useProxy(request, proxy);
} catch (error: unknown) { } catch (error: unknown) {
logger.error(error); logger.error('handleProxy', error);
try { try {
await request.abort(); await request.abort();
} catch {} } catch {
logger.debug('Failed to abort request.');
}
} }
return true; return true;
} }
async function handleAdBlock(request: Request, adBlockRequestHandler: any) { async function handleAdBlock(request: HTTPRequest, adBlockRequestHandler: any) {
if (!adBlockRequestHandler) { if (!adBlockRequestHandler) {
return false; return false;
} }
return new Promise((resolve) => { return new Promise(resolve => {
const continueFunc = async () => { const continueFunc = async () => {
resolve(false); resolve(false);
}; };
@@ -97,15 +104,19 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
const abortFunc = async () => { const abortFunc = async () => {
try { try {
await request.abort(); await request.abort();
} catch {} } catch {
logger.debug('Failed to abort request.');
}
resolve(true); resolve(true);
}; };
const respondFunc = async (response: RespondOptions) => { const respondFunc = async (response: ResponseForRequest) => {
try { try {
await request.respond(response); await request.respond(response);
} catch {} } catch {
logger.debug('Failed to abort request.');
}
resolve(true); resolve(true);
}; };
@@ -125,7 +136,7 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
} }
return Reflect.get(target, prop, receiver); return Reflect.get(target, prop, receiver);
} },
}); });
adBlockRequestHandler(requestProxy); adBlockRequestHandler(requestProxy);
@@ -172,8 +183,7 @@ async function lookup(browser: Browser, store: Store) {
const proxy = nextProxy(store); const proxy = nextProxy(store);
const useAdBlock = const useAdBlock = !config.browser.lowBandwidth && !store.disableAdBlocker;
!config.browser.lowBandwidth && !store.disableAdBlocker;
const customContext = config.browser.isIncognito; const customContext = config.browser.isIncognito;
const context = customContext const context = customContext
@@ -188,7 +198,7 @@ async function lookup(browser: Browser, store: Store) {
let adBlockRequestHandler: any; let adBlockRequestHandler: any;
let pageProxy; let pageProxy;
if (useAdBlock) { if (useAdBlock) {
const onProxyFunc = (event: keyof PageEventObj, handler: any) => { const onProxyFunc = (event: string, handler: any) => {
if (event !== 'request') { if (event !== 'request') {
page.on(event, handler); page.on(event, handler);
return; return;
@@ -203,14 +213,19 @@ async function lookup(browser: Browser, store: Store) {
return onProxyFunc; return onProxyFunc;
} }
return Reflect.get(target, prop, receiver); // Give dummy setRequestInterception to avoid AdBlock from messing with it
if (prop === 'setRequestInterception') {
return noop;
} }
return Reflect.get(target, prop, receiver);
},
}); });
await enableBlockerInPage(pageProxy); await enableBlockerInPage(pageProxy);
} }
await page.setRequestInterception(true); await page.setRequestInterception(true);
page.on('request', async (request) => { page.on('request', async request => {
if (await handleLowBandwidth(request)) { if (await handleLowBandwidth(request)) {
return; return;
} }
@@ -225,19 +240,36 @@ async function lookup(browser: Browser, store: Store) {
try { try {
await request.continue(); await request.continue();
} catch {} } catch {
logger.debug('Failed to continue request.');
}
}); });
if (store.captchaDeterrent) {
await runCaptchaDeterrent(browser, store, page);
}
let statusCode = 0; let statusCode = 0;
try { try {
statusCode = await lookupCard(browser, store, page, link); statusCode = await lookupCard(browser, store, page, link);
} catch (error: unknown) { } catch (error: unknown) {
if (store.currentProxyIndex !== undefined && store.proxyList) {
const proxy = `${store.currentProxyIndex + 1}/${
store.proxyList.length
}`;
logger.error( logger.error(
` [${store.name}] ${link.brand} ${link.series} ${ `✖ [${proxy}] [${store.name}] ${link.brand} ${link.series} ${
link.model link.model
} - ${(error as Error).message}` } - ${(error as Error).message}`
); );
} else {
logger.error(
`✖ [${store.name}] ${link.brand} ${link.series} ${link.model} - ${
(error as Error).message
}`
);
}
const client = await page.target().createCDPSession(); const client = await page.target().createCDPSession();
await client.send('Network.clearBrowserCookies'); await client.send('Network.clearBrowserCookies');
} }
@@ -265,31 +297,20 @@ async function lookupCard(
link: Link link: Link
): Promise<number> { ): Promise<number> {
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0'; const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
const response: Response | null = await page.goto(link.url, { const response: HTTPResponse | null = await page.goto(link.url, {
waitUntil: givenWaitFor waitUntil: givenWaitFor,
}); });
if (!response) {
logger.debug(Print.noResponse(link, store, true));
}
const successStatusCodes = store.successStatusCodes ?? [[0, 399]]; const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
const statusCode = response?.status() ?? 0; const statusCode = await handleResponse(browser, store, page, link, response);
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
if (statusCode === 429) {
logger.warn(Print.rateLimit(link, store, true));
} else {
logger.warn(Print.badStatusCode(link, store, statusCode, true));
}
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
return statusCode; return statusCode;
} }
if (await lookupCardInStock(store, page, link)) { if (await lookupCardInStock(store, page, link)) {
const givenUrl = const givenUrl =
link.cartUrl && config.store.autoAddToCart link.cartUrl && config.store.autoAddToCart ? link.cartUrl : link.url;
? link.cartUrl
: link.url;
logger.info(`${Print.inStock(link, store, true)}\n${givenUrl}`); logger.info(`${Print.inStock(link, store, true)}\n${givenUrl}`);
if (config.browser.open) { if (config.browser.open) {
@@ -319,11 +340,78 @@ async function lookupCard(
return statusCode; return statusCode;
} }
// eslint-disable-next-line max-params
async function handleResponse(
browser: Browser,
store: Store,
page: Page,
link: Link,
response?: HTTPResponse | null,
recursionDepth = 0
) {
if (!response) {
logger.debug(Print.noResponse(link, store, true));
}
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
let statusCode = response?.status() ?? 0;
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
if (statusCode === 429) {
logger.warn(Print.rateLimit(link, store, true));
} else if (statusCode === 503) {
if (await checkIsCloudflare(store, page, link)) {
if (recursionDepth > 4) {
logger.warn(Print.recursionLimit(link, store, true));
} else {
const response: HTTPResponse | null = await page.waitForNavigation({
waitUntil: 'networkidle0',
});
recursionDepth++;
statusCode = await handleResponse(
browser,
store,
page,
link,
response,
recursionDepth
);
}
} else {
logger.warn(Print.badStatusCode(link, store, statusCode, true));
}
} else {
logger.warn(Print.badStatusCode(link, store, statusCode, true));
}
}
return statusCode;
}
async function checkIsCloudflare(store: Store, page: Page, link: Link) {
const baseOptions: Selector = {
requireVisible: true,
selector: 'body',
type: 'textContent',
};
const cloudflareLabel = {
container: 'div[class="attribution"] a[rel="noopener noreferrer"]',
text: ['Cloudflare'],
};
if (await pageIncludesLabels(page, cloudflareLabel, baseOptions)) {
logger.warn(Print.cloudflare(link, store, true));
return true;
}
return false;
}
async function lookupCardInStock(store: Store, page: Page, link: Link) { async function lookupCardInStock(store: Store, page: Page, link: Link) {
const baseOptions: Selector = { const baseOptions: Selector = {
requireVisible: false, requireVisible: false,
selector: store.labels.container ?? 'body', selector: store.labels.container ?? 'body',
type: 'textContent' type: 'textContent',
}; };
if (store.labels.captcha) { if (store.labels.captcha) {
@@ -336,17 +424,20 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
if (store.labels.bannedSeller) { if (store.labels.bannedSeller) {
if ( if (
await pageIncludesLabels( await pageIncludesLabels(page, store.labels.bannedSeller, baseOptions)
page,
store.labels.bannedSeller,
baseOptions
)
) { ) {
logger.warn(Print.bannedSeller(link, store, true)); logger.warn(Print.bannedSeller(link, store, true));
return false; return false;
} }
} }
if (store.labels.outOfStock) {
if (await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)) {
logger.info(Print.outOfStock(link, store, true));
return false;
}
}
if (store.labels.maxPrice) { if (store.labels.maxPrice) {
const maxPrice = config.store.maxPrice.series[link.series]; const maxPrice = config.store.maxPrice.series[link.series];
@@ -358,19 +449,14 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
} }
} }
// Fixme: currently causing issues if (link.labels?.inStock) {
// Do API inventory validation in realtime (no cache) if available const options = {
// if ( ...baseOptions,
// store.realTimeInventoryLookup !== undefined && requireVisible: true,
// link.itemNumber !== undefined type: 'outerHTML' as const,
// ) { };
// return store.realTimeInventoryLookup(link.itemNumber);
// }
if (store.labels.outOfStock) { if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
if (
await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)
) {
logger.info(Print.outOfStock(link, store, true)); logger.info(Print.outOfStock(link, store, true));
return false; return false;
} }
@@ -380,7 +466,7 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
const options = { const options = {
...baseOptions, ...baseOptions,
requireVisible: true, requireVisible: true,
type: 'outerHTML' as const type: 'outerHTML' as const,
}; };
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) { if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
@@ -389,27 +475,65 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
} }
} }
if (link.labels?.inStock) {
const options = {
...baseOptions,
requireVisible: true,
type: 'outerHTML' as const
};
if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
logger.info(Print.outOfStock(link, store, true));
return false;
}
}
return true; return true;
} }
async function runCaptchaDeterrent(browser: Browser, store: Store, page: Page) {
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
let statusCode = 0;
let deterrentLinks: string[] = [];
logger.debug(`[${store.name}] Navigating to random anti-captcha page...`);
if (store.captchaDeterrent?.hardLinks?.length) {
deterrentLinks = deterrentLinks.concat(store.captchaDeterrent.hardLinks);
}
if (store.captchaDeterrent?.searchUrl) {
if (store.captchaDeterrent.searchTerms) {
store.captchaDeterrent.searchTerms.forEach(element =>
deterrentLinks.push(
store.captchaDeterrent?.searchUrl
? store.captchaDeterrent.searchUrl.replace('%%s', element)
: ''
)
);
}
}
if (deterrentLinks.length > 0) {
const link: Link = {
brand: 'captcha-deterrent',
model: 'captcha-deterrent',
series: 'captcha-deterrent',
url: deterrentLinks[Math.floor(Math.random() * deterrentLinks.length)],
};
logger.debug(`Selected captcha-deterrent link: ${link.url}`);
try {
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
const response: HTTPResponse | null = await page.goto(link.url, {
waitUntil: givenWaitFor,
});
statusCode = await handleResponse(browser, store, page, link, response);
setTimeout(() => {
// Do nothing
}, 3000);
} catch (error: unknown) {
logger.error(error);
}
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
logger.warn(
`✖ [${store.name}] - Failed to navigate to anti-captcha target: ${link.url}`
);
}
}
}
export async function tryLookupAndLoop(browser: Browser, store: Store) { export async function tryLookupAndLoop(browser: Browser, store: Store) {
if (!browser.isConnected()) { if (!browser.isConnected()) {
logger.debug( logger.debug(`[${store.name}] Ending this loop as browser is disposed...`);
`[${store.name}] Ending this loop as browser is disposed...`
);
return; return;
} }
+234
View File
@@ -0,0 +1,234 @@
import {Store} from './store';
export const AComPC: Store = {
currency: '€',
labels: {
inStock: {
container: '.filial_stock',
text: ['lagernd', 'im Zulauf'],
},
maxPrice: {
container: '.price',
euroFormat: true,
},
outOfStock: [
{
container: '.filial_stock',
text: ['nicht lieferbar'],
},
],
},
links: [
{
brand: 'asus',
model: 'strix',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3080-10G-GAMING-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html',
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3080-O10G-GAMING-OC-Edition-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html',
},
{
brand: 'asus',
model: 'tuf',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3080-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3080-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-AORUS-GeForce-RTX-3080-MASTER-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-3-x-DisplayPort-3-x-HDMI.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-AORUS-GeForce-RTX-3080-XTREME-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-3-x-DisplayPort-3-x-HDMI.html',
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Eagle-OC-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Eagle-10G-Grafikkarte-10.240-MB.html',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-GAMING-OC-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Vision-OC-10G-Grafikkarten-GF-RTX-3080-10GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DP-weiss.html',
},
{
brand: 'inno3d',
model: 'twin x2 oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Inno3D-GeForce-RTX-3080-Twin-X2-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3080-Gaming-X-Trio-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-HDMI-3x-DisplayPort.html',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3080-Ventus-3X-10G-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
},
{
brand: 'zotac',
model: 'amp holo',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-AMP-Holo-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3-x-DisplayPort.html',
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-Trinity-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3-x-DisplayPort.html',
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-Trinity-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html',
},
{
brand: 'asus',
model: 'strix',
series: '3090',
url:
'https://www.acom-pc.de/Peripherie-Zubehoer/noch-nicht-kategorisierte-Artikel/ASUS-ROG-Strix-GeForce-RTX-3090-ROG-STRIX-RTX3090-24G-GAMING-24GB-GDDR6X-2x-HDMI-3x-DP-90YV0F90-M0NM00-.html',
},
{
brand: 'asus',
model: 'strix oc',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3090-O24G-GAMING-OC-Edition-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html',
},
{
brand: 'asus',
model: 'tuf',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3090-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3090-OC-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-Aorus-GeForce-RTX-3090-Master-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3090-Eagle-OC-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3090-Gaming-OC-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-RTX-3090-GAMING-X-TRIO-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3090-Ventus-3X-24G-OC-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
},
{
brand: 'zotac',
model: 'trinity',
series: '3090',
url:
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3090-Trinity-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html',
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-5-5600X-4.60GHZ-6-CORE-SKT-AM4-35MB-65W-PIB.html',
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-7-5800X-4.70GHZ-8-CORE-SKT-AM4-36MB-105W-WOF.html',
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-Ryzen-9-5900X-AMD-Ryzen-9-Socket-AM4-PC-7nm-AMD-3-7-GHz-AM4.html',
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-9-5950X-4.90GHZ-16-CORE-SKT-AM4-72MB-105W-WOF.html',
},
],
name: 'acompc',
};
+24 -24
View File
@@ -5,126 +5,126 @@ export const Adorama: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['please verify you are a human'] text: ['please verify you are a human'],
}, },
inStock: { inStock: {
container: '.buy-section.purchase', container: '.buy-section.purchase',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: '.your-price', container: '.your-price',
euroFormat: false euroFormat: false,
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.adorama.com/ev08gp43067k.html' url: 'https://www.adorama.com/ev08gp43067k.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: 'https://www.adorama.com/pnv301tfxmpb.html' url: 'https://www.adorama.com/pnv301tfxmpb.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.adorama.com/msig380gxt1.html' url: 'https://www.adorama.com/msig380gxt1.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.adorama.com/ev10g53897kr.html' url: 'https://www.adorama.com/ev10g53897kr.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.adorama.com/ev10g53885kr.html' url: 'https://www.adorama.com/ev10g53885kr.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.adorama.com/ev10g53895kr.html' url: 'https://www.adorama.com/ev10g53895kr.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.adorama.com/ev10g53883kr.html' url: 'https://www.adorama.com/ev10g53883kr.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.adorama.com/ev10g53881kr.html' url: 'https://www.adorama.com/ev10g53881kr.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.adorama.com/msig38v3x10c.html' url: 'https://www.adorama.com/msig38v3x10c.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: 'https://www.adorama.com/png30801tfxb.html' url: 'https://www.adorama.com/png30801tfxb.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: 'https://www.adorama.com/asrx3080o10g.html' url: 'https://www.adorama.com/asrx3080o10g.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.adorama.com/astr3080o10g.html' url: 'https://www.adorama.com/astr3080o10g.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.adorama.com/astrx308010g.html' url: 'https://www.adorama.com/astrx308010g.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: 'https://www.adorama.com/msig390gxt24.html' url: 'https://www.adorama.com/msig390gxt24.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: 'https://www.adorama.com/msig39v3x24c.html' url: 'https://www.adorama.com/msig39v3x24c.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: 'https://www.adorama.com/asrtx309024g.html' url: 'https://www.adorama.com/asrtx309024g.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.adorama.com/ast3090o24g.html' url: 'https://www.adorama.com/ast3090o24g.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: 'https://www.adorama.com/asrx3090o24g.html' url: 'https://www.adorama.com/asrx3090o24g.html',
} },
], ],
name: 'adorama' name: 'adorama',
}; };
+329
View File
@@ -0,0 +1,329 @@
import {Store} from './store';
export const Akinformatica: Store = {
currency: '€',
labels: {
inStock: [
{
container: '#dispOnLine .available',
text: ['Disponibile Online'],
},
{
container: '#addCartLinkButton',
text: ['Aggiungi al carrello'],
},
],
maxPrice: {
container: '#PrezzoListinoIvatoLabel',
euroFormat: true,
},
outOfStock: [
{
container: '#dispOnLine .available .disabled',
text: ['Disponibile Online'],
},
{
container: '#preOrderPanel > label',
text: ['PRE-ORDINI APERTI'],
},
],
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://shop.akinformatica.it/catalogo/adata-xpg/mouse-gaming-adata-xpg-primer---wired--rgb_4710273777139.aspx',
},
{
brand: 'palit',
model: 'gaming pro',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-palit-geforce-rtx3070-gamingpro-oc-8gb-gddr6x_4710562242089.aspx',
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-zotac-gaming-geforce-rtx-3070-twin-edge-8g_4895173622472.aspx',
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-ventus-2x-oc-8g_4719072763091.aspx',
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-dual-o8g-8g_4718017927864.aspx',
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-eagle-8gb_4719331307738.aspx',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-ventus-3x-oc-8g_4719072763084.aspx',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-gaming-x-trio-8g_4719072763053.aspx',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-zotac-gaming-geforce-rtx-3070-twin-edge-oc-8g_4895173622489.aspx',
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-eagle-oc-8gb_4719331307677.aspx',
},
{
brand: 'asus',
model: 'tuf',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-tuf-o8g-8g_4718017948678.aspx',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-gaming-oc-8gb_4719331307691.aspx',
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-rog-strix-gaming-oc-8g_4718017938150.aspx',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-gaming-x-trio-24g_4719072762506.aspx',
},
{
brand: 'zotac',
model: 'trinity',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-zotac-geforce-rtx-3090-trinity-24g_4895173622427.aspx',
},
{
brand: 'msi',
model: 'suprim x',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-suprim-x-24g_4719072762490.aspx',
},
{
brand: 'pny',
model: 'xlr8 epic x',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-pny-geforce-rtx-3090-epic-x-xlr8-gaming-24g_0751492639536.aspx',
},
{
brand: 'msi',
model: 'ventus 3x',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-ventus-3x-24g-oc--consegne-da-marzo_4719072762476.aspx',
},
{
brand: 'palit',
model: 'gamerock',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamerock-24gb-gddr6x_4710562242041.aspx',
},
{
brand: 'palit',
model: 'gaming pro',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamingpro-24gb-gddr6x_4710562241969.aspx',
},
{
brand: 'palit',
model: 'gamerock oc',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamerock-oc-24gb-gddr6x_4710562242065.aspx',
},
{
brand: 'palit',
model: 'gaming pro oc',
series: '3090',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamingpro-oc-24gb-gddr6x_4710562242027.aspx',
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-5-5600x---6-core--max-boost-4-60-ghz--socket-am4_0730143312042.aspx',
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-7-5800x---8-core--max-boost-4-70-ghz--socket-am4_0730143312714.aspx',
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-9-5950x---16-core--max-boost-4-90-ghz--socket-am4_0730143312745.aspx',
},
{
brand: 'sapphire',
model: 'nitro+ se',
series: 'rx6800',
url:
'https://shop.akinformatica.it/catalogo/amd-rx-6800-6800-xt/vga-sapphire-radeon-rx-6800-xt-nitro--oc-se-16g_4895106289901.aspx',
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6800',
url:
'https://shop.akinformatica.it/catalogo/amd-rx-6800-6800-xt/vga-sapphire-radeon-rx-6800-xt-nitro--16g_4895106289925.aspx',
},
{
brand: 'sapphire',
model: 'amd reference',
series: 'rx6900xt',
url:
'https://shop.akinformatica.it/catalogo/amd-rx-6900-xt/vga-sapphire-radeon-rx-6900-xt-16g_4895106290136.aspx',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-msi-geforce-rtx-3080-ventus-3x-10g-oc--consegne-da-marzo_4719072762520.aspx',
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-zotac-geforce-rtx-3080-trinity-10g_4895173622403.aspx',
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-asus-geforce-rtx-3080-rog-strix-gaming-oc-10g_4718017928786.aspx',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-msi-geforce-rtx-3080-gaming-x-trio-10g_4719072762544.aspx',
},
{
brand: 'asus',
model: 'strix',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-asus-geforce-rtx-3080-rog-strix-gaming-10g_4718017909150.aspx',
},
{
brand: 'pny',
model: 'xlr8 epic x',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-pny-geforce-rtx-3080-epic-x-xlr8-gaming-10g_0751492639567.aspx',
},
{
brand: 'pny',
model: 'xlr8 epic x',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-pny-geforce-rtx-3080-epic-x-xlr8-gaming-10g_0751492639550.aspx',
},
{
brand: 'palit',
model: 'gaming pro oc',
series: '3080',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-palit-geforce-rtx3080-gamingpro-oc-10gb-gddr6x_4710562242003.aspx',
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3060ti',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-ventus-2x-oc-8g-_4719072763121.aspx',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3060ti',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-gaming-x-trio-8g-_4719072763145.aspx',
},
{
brand: 'palit',
model: 'dual oc',
series: '3060ti',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-palit-geforce-rtx-3060ti-dual-oc-8g-gddr6-256bit-3xdp--hdmi-_4710562242287.aspx',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3060ti',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-ventus-3x-oc-8g_4719072763152.aspx',
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-zotac-gaming-geforce-rtx-3060ti-twin-edge-8g_4895173622502.aspx',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060ti',
url:
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-zotac-gaming-geforce-rtx-3060ti-twin-edge-oc-8g_4895173622519.aspx',
},
],
name: 'akinformatica',
successStatusCodes: [[0, 399], 404],
};
+64
View File
@@ -0,0 +1,64 @@
import {Store} from './store';
export const Allneeds: Store = {
backoffStatusCodes: [403, 429],
currency: '$',
labels: {
inStock: {
container: '.amstockstatus',
text: ['In Stock'],
},
maxPrice: {
container: 'span.price',
euroFormat: false,
},
outOfStock: {
container: '.amstockstatus',
text: ['sold out'],
},
},
links: [
{
brand: 'asus',
model: 'strix oc white',
series: '3080',
url:
'https://allneeds.com.au/asus-geforce-rtx-3080-rog-strix-gaming-oc-10gb-video-card-white-edition-limited-edition',
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6900xt',
url:
'https://allneeds.com.au/sapphire-nitro-radeon-rx-6900-xt-16gb-video-card-11308-01-20g',
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://allneeds.com.au/amd-ryzen-9-5950x-processor-100-100000059wof',
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://allneeds.com.au/amd-ryzen-9-5900x-processor-100-100000061wof',
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url: 'https://allneeds.com.au/amd-ryzen-7-5800x-processor',
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://allneeds.com.au/amd-ryzen-5-5600x-with-wraith-stealth-100-100000065box',
},
],
name: 'allneeds',
};
+31 -31
View File
@@ -5,168 +5,168 @@ export const AlternateNL: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.stockStatus', container: '.stockStatus',
text: ['Direct leverbaar'] text: ['Direct leverbaar'],
}, },
maxPrice: { maxPrice: {
container: 'div.price > span', container: 'div.price > span',
euroFormat: true euroFormat: true,
}, },
outOfStock: { outOfStock: {
container: '.stockStatus', container: '.stockStatus',
text: ['Levertermijn onbekend', 'pre-order'] text: ['Levertermijn onbekend', 'pre-order'],
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.alternate.nl/product/1516616' url: 'https://www.alternate.nl/product/1516616',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672756' url: 'https://www.alternate.nl/product/1672756',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672345' url: 'https://www.alternate.nl/product/1672345',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672251' url: 'https://www.alternate.nl/product/1672251',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672753' url: 'https://www.alternate.nl/product/1672753',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672343' url: 'https://www.alternate.nl/product/1672343',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672634' url: 'https://www.alternate.nl/product/1672634',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672867' url: 'https://www.alternate.nl/product/1672867',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673512' url: 'https://www.alternate.nl/product/1673512',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672612' url: 'https://www.alternate.nl/product/1672612',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1674164' url: 'https://www.alternate.nl/product/1674164',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1672868' url: 'https://www.alternate.nl/product/1672868',
}, },
{ {
brand: 'palit', brand: 'palit',
model: 'gaming pro oc', model: 'gaming pro oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673431' url: 'https://www.alternate.nl/product/1673431',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity oc', model: 'trinity oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1677989' url: 'https://www.alternate.nl/product/1677989',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'vision oc', model: 'vision oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1681134' url: 'https://www.alternate.nl/product/1681134',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673520' url: 'https://www.alternate.nl/product/1673520',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phoenix gs', model: 'phoenix gs',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673442' url: 'https://www.alternate.nl/product/1673442',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673136' url: 'https://www.alternate.nl/product/1673136',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673524' url: 'https://www.alternate.nl/product/1673524',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1680168' url: 'https://www.alternate.nl/product/1680168',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673517' url: 'https://www.alternate.nl/product/1673517',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'amp holo', model: 'amp holo',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1677985' url: 'https://www.alternate.nl/product/1677985',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'amp extreme holo', model: 'amp extreme holo',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1677982' url: 'https://www.alternate.nl/product/1677982',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'twin x2 oc', model: 'twin x2 oc',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673137' url: 'https://www.alternate.nl/product/1673137',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3080', series: '3080',
url: 'https://www.alternate.nl/product/1673134' url: 'https://www.alternate.nl/product/1673134',
} },
], ],
name: 'alternate-nl' name: 'alternate-nl',
}; };
+81 -75
View File
@@ -9,421 +9,427 @@ export const Alternate: Store = {
'auf lager', 'auf lager',
'ware neu eingetroffen', 'ware neu eingetroffen',
'in kürze versandfertig', 'in kürze versandfertig',
'ware im zulauf' 'ware im zulauf',
] ],
}, },
maxPrice: { maxPrice: {
container: 'div.price > span', container: 'div.price > span',
euroFormat: true euroFormat: true,
}, },
outOfStock: [ outOfStock: [
{ {
container: '.stockStatus', container: '.stockStatus',
text: ['liefertermin unbekannt'] text: ['liefertermin unbekannt'],
}, },
{ {
container: '.stockStatus', container: '.stockStatus',
text: ['Artikel kann nicht gekauft werden'] 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/1662088' url: 'https://www.alternate.de/html/product/1662088',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672868' url: 'https://www.alternate.de/html/product/1672868',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672867' url: 'https://www.alternate.de/html/product/1672867',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672251' url: 'https://www.alternate.de/html/product/1672251',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672634' url: 'https://www.alternate.de/html/product/1672634',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673517' url: 'https://www.alternate.de/html/product/1673517',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673524' url: 'https://www.alternate.de/html/product/1673524',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673512' url: 'https://www.alternate.de/html/product/1673512',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673520' url: 'https://www.alternate.de/html/product/1673520',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1674164' url: 'https://www.alternate.de/html/product/1674164',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phantom gs', model: 'phantom gs',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1688597' url: 'https://www.alternate.de/html/product/1688597',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phoenix gs', model: 'phoenix gs',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673442' url: 'https://www.alternate.de/html/product/1673442',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1680168' url: 'https://www.alternate.de/html/product/1680168',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus xtreme', model: 'aorus xtreme',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1680168' url: 'https://www.alternate.de/html/product/1680168',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672756' url: 'https://www.alternate.de/html/product/1672756',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672753' url: 'https://www.alternate.de/html/product/1672753',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'vision oc', model: 'vision oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1681134' url: 'https://www.alternate.de/html/product/1681134',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673136' url: 'https://www.alternate.de/html/product/1673136',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673134' url: 'https://www.alternate.de/html/product/1673134',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'twin x2 oc', model: 'twin x2 oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673137' url: 'https://www.alternate.de/html/product/1673137',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672343' url: 'https://www.alternate.de/html/product/1672343',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672345' url: 'https://www.alternate.de/html/product/1672345',
}, },
{ {
brand: 'palit', brand: 'palit',
model: 'gamerock oc', model: 'gamerock oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1688594' url: 'https://www.alternate.de/html/product/1688594',
}, },
{ {
brand: 'palit', brand: 'palit',
model: 'gaming pro oc', model: 'gaming pro oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1673431' url: 'https://www.alternate.de/html/product/1673431',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'amp extreme holo', model: 'amp extreme holo',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1677982' url: 'https://www.alternate.de/html/product/1677982',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'amp holo', model: 'amp holo',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1677985' url: 'https://www.alternate.de/html/product/1677985',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity oc', model: 'trinity oc',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1677989' url: 'https://www.alternate.de/html/product/1677989',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.alternate.de/product/1672612' url: 'https://www.alternate.de/html/product/1672612',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672870' url: 'https://www.alternate.de/html/product/1672870',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672872' url: 'https://www.alternate.de/html/product/1672872',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672259' url: 'https://www.alternate.de/html/product/1672259',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672629' url: 'https://www.alternate.de/html/product/1672629',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673530' url: 'https://www.alternate.de/html/product/1673530',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673531' url: 'https://www.alternate.de/html/product/1673531',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673521' url: 'https://www.alternate.de/html/product/1673521',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673525' url: 'https://www.alternate.de/html/product/1673525',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673529' url: 'https://www.alternate.de/html/product/1673529',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phoenix gs', model: 'phoenix gs',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673440' url: 'https://www.alternate.de/html/product/1673440',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus xtreme', model: 'aorus xtreme',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1680670' url: 'https://www.alternate.de/html/product/1680670',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus master', model: 'aorus master',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1687793' url: 'https://www.alternate.de/html/product/1687793',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672744' url: 'https://www.alternate.de/html/product/1672744',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672749' url: 'https://www.alternate.de/html/product/1672749',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'turbo', model: 'turbo',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1687703' url: 'https://www.alternate.de/html/product/1687703',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'gaming x3', model: 'gaming x3',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673131' url: 'https://www.alternate.de/html/product/1673131',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673135' url: 'https://www.alternate.de/html/product/1673135',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673129' url: 'https://www.alternate.de/html/product/1673129',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672341' url: 'https://www.alternate.de/html/product/1672341',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672346' url: 'https://www.alternate.de/html/product/1672346',
}, },
{ {
brand: 'palit', brand: 'palit',
model: 'gaming pro oc', model: 'gaming pro oc',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1673434' url: 'https://www.alternate.de/html/product/1673434',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: 'https://www.alternate.de/product/1672611' url: 'https://www.alternate.de/html/product/1672611',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.alternate.de/product/1685588' url: 'https://www.alternate.de/html/product/1685588',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.alternate.de/product/1685585' url: 'https://www.alternate.de/html/product/1685585',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.alternate.de/product/1685590' url: 'https://www.alternate.de/html/product/1685590',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.alternate.de/product/1685584' url: 'https://www.alternate.de/html/product/1685584',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.alternate.de/product/1651220' url: 'https://www.alternate.de/html/product/1651220',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.alternate.de/product/1651221' url: 'https://www.alternate.de/html/product/1651221',
}, },
{ {
brand: 'xfx', brand: 'xfx',
model: 'merc', model: 'merc',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.alternate.de/product/1698792' url: 'https://www.alternate.de/html/product/1698792',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
model: 'nitro oc se', model: 'nitro oc se',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.alternate.de/product/1696478' url: 'https://www.alternate.de/html/product/1696478',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
model: 'nitro oc', model: 'nitro oc',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.alternate.de/product/1696482' url: 'https://www.alternate.de/html/product/1696482',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix lc', model: 'strix lc',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.alternate.de/product/1695392' url: 'https://www.alternate.de/html/product/1695392',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.alternate.de/product/1697044' url: 'https://www.alternate.de/html/product/1697044',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: 'rx6900xt', series: 'rx6900xt',
url: 'https://www.alternate.de/product/1702773' url: 'https://www.alternate.de/html/product/1702773',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'amd reference', model: 'amd reference',
series: 'rx6900xt', series: 'rx6900xt',
url: 'https://www.alternate.de/product/1700508' url: 'https://www.alternate.de/html/product/1700508',
},
{
brand: 'xfx',
model: 'merc',
series: 'rx6900xt',
url: 'https://www.alternate.de/html/product/1704614',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.alternate.de/product/1675115' url: 'https://www.alternate.de/html/product/1675115',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.alternate.de/product/1675117' url: 'https://www.alternate.de/html/product/1675117',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.alternate.de/product/1676874' url: 'https://www.alternate.de/html/product/1651220',
} },
], ],
name: 'alternate' name: 'alternate',
}; };
+58 -38
View File
@@ -5,15 +5,19 @@ export const AmazonCa: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['enter the characters you see below'] text: ['enter the characters you see below'],
}, },
inStock: { inStock: {
container: '#desktop_buybox', container: '#desktop_buybox',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: '#priceblock_ourprice' container: '.a-color-price',
} },
outOfStock: {
container: '.a-color-price',
text: ['currently unavailable.'],
},
}, },
links: [ links: [
{ {
@@ -22,7 +26,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B07PBLD2MX&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B07PBLD2MX&Quantity.1=1',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amazon.ca/dp/B07PBLD2MX' url: 'https://www.amazon.ca/dp/B07PBLD2MX',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -30,7 +34,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3070', series: '3070',
url: 'https://www.amazon.ca/dp/B08KWN2LZG' url: 'https://www.amazon.ca/dp/B08KWN2LZG',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -38,7 +42,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.ca/dp/B08KWLMZV4' url: 'https://www.amazon.ca/dp/B08KWLMZV4',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -46,7 +50,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3070', series: '3070',
url: 'https://www.amazon.ca/dp/B08LW46GH2' url: 'https://www.amazon.ca/dp/B08LW46GH2',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -54,7 +58,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.ca/dp/B08L8L71SM' url: 'https://www.amazon.ca/dp/B08L8L71SM',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -62,7 +66,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.ca/dp/B08L8L9TCZ' url: 'https://www.amazon.ca/dp/B08L8L9TCZ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -70,7 +74,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR7SV3M' url: 'https://www.amazon.ca/dp/B08HR7SV3M',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -78,7 +82,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR5SXPS' url: 'https://www.amazon.ca/dp/B08HR5SXPS',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -86,7 +90,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR3DPGW' url: 'https://www.amazon.ca/dp/B08HR3DPGW',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -94,7 +98,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR3Y5GQ' url: 'https://www.amazon.ca/dp/B08HR3Y5GQ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -102,7 +106,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR55YB5' url: 'https://www.amazon.ca/dp/B08HR55YB5',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -110,7 +114,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR4RJ3Q' url: 'https://www.amazon.ca/dp/B08HR4RJ3Q',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -118,7 +122,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HR6FMF3' url: 'https://www.amazon.ca/dp/B08HR6FMF3',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -126,7 +130,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HJTH61J' url: 'https://www.amazon.ca/dp/B08HJTH61J',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -134,7 +138,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HJS2JLJ' url: 'https://www.amazon.ca/dp/B08HJS2JLJ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -142,7 +146,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HHDP9DW' url: 'https://www.amazon.ca/dp/B08HHDP9DW',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -150,7 +154,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HH5WF97' url: 'https://www.amazon.ca/dp/B08HH5WF97',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -158,7 +162,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.amazon.ca/dp/B08HJNKT3P' url: 'https://www.amazon.ca/dp/B08HJNKT3P',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -166,7 +170,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: 'https://www.amazon.ca/dp/B08HJQ182D' url: 'https://www.amazon.ca/dp/B08HJQ182D',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -174,7 +178,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: 'https://www.amazon.ca/dp/B08HR9D2JS' url: 'https://www.amazon.ca/dp/B08HR9D2JS',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -182,7 +186,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: 'https://www.amazon.ca/dp/B08HJRF2CN' url: 'https://www.amazon.ca/dp/B08HJRF2CN',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -190,7 +194,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: 'https://www.amazon.ca/dp/B08HJPDJTY' url: 'https://www.amazon.ca/dp/B08HJPDJTY',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -198,7 +202,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: 'https://www.amazon.ca/dp/B08HJGNJ81' url: 'https://www.amazon.ca/dp/B08HJGNJ81',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -206,7 +210,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.ca/dp/B08HJLLF7G' url: 'https://www.amazon.ca/dp/B08HJLLF7G',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -214,7 +218,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.ca/dp/B08166SLDF' url: 'https://www.amazon.ca/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -222,7 +226,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.ca/dp/B0815XFSGK' url: 'https://www.amazon.ca/dp/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -230,7 +234,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.ca/dp/B08164VTWH' url: 'https://www.amazon.ca/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -238,7 +242,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.ca/dp/B0815Y8J9N' url: 'https://www.amazon.ca/dp/B0815Y8J9N',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -246,7 +250,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GSC5D9G&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GSC5D9G&Quantity.1=1',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.amazon.ca/dp/B08GSC5D9G' url: 'https://www.amazon.ca/dp/B08GSC5D9G',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -254,7 +258,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GS1N24H&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GS1N24H&Quantity.1=1',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.amazon.ca/dp/B08GS1N24H' url: 'https://www.amazon.ca/dp/B08GS1N24H',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -262,7 +266,7 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08H75RTZ8&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08H75RTZ8&Quantity.1=1',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.ca/dp/B08H75RTZ8' url: 'https://www.amazon.ca/dp/B08H75RTZ8',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -270,8 +274,24 @@ export const AmazonCa: Store = {
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08G9J44ZN&Quantity.1=1', 'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08G9J44ZN&Quantity.1=1',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.ca/dp/B08G9J44ZN' url: 'https://www.amazon.ca/dp/B08G9J44ZN',
} },
{
brand: 'xfx',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
model: 'merc',
series: 'rx6800xt',
url: 'https://www.amazon.ca/dp/B08NX14LV1',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08PQ585CX&Quantity.1=1',
model: 'pulse',
series: 'rx6800xt',
url: 'https://www.amazon.ca/dp/B08PQ585CX',
},
], ],
name: 'amazon-ca' name: 'amazon-ca',
}; };
+16 -16
View File
@@ -8,57 +8,57 @@ export const AmazonDeWarehouse: Store = {
container: 'body', container: 'body',
text: [ text: [
'geben sie die unten angezeigten zeichen ein', 'geben sie die unten angezeigten zeichen ein',
'geben sie die zeichen unten ein' 'geben sie die zeichen unten ein',
] ],
}, },
inStock: { inStock: {
container: '#a-autoid-0-announce', container: '#a-autoid-0-announce',
text: ['In den Einkaufswagen'] text: ['In den Einkaufswagen'],
}, },
maxPrice: { maxPrice: {
container: 'a-size-large a-color-price olpOfferPrice a-text-bold', container: '.olpOfferPrice',
euroFormat: true euroFormat: true,
}, },
outOfStock: [ outOfStock: [
{ {
container: '.a-size-medium', container: '.a-size-medium',
text: [ text: [
'Derzeit gibt es keine Verkäufer, die diesen Artikel an Ihren Standort liefern können' 'Derzeit gibt es keine Verkäufer, die diesen Artikel an Ihren Standort liefern können',
] ],
} },
] ],
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amazon.de/gp/offer-listing/B07PW9VBK5' url: 'https://www.amazon.de/gp/offer-listing/B07PW9VBK5',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRK9' url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRK9',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.amazon.de/gp/offer-listing/B08H98GVK8' url: 'https://www.amazon.de/gp/offer-listing/B08H98GVK8',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.de/gp/offer-listing/B087VM5XC6' url: 'https://www.amazon.de/gp/offer-listing/B087VM5XC6',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRLL' url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRLL',
} },
], ],
name: 'amazon-de-warehouse' name: 'amazon-de-warehouse',
}; };
+77 -77
View File
@@ -8,23 +8,23 @@ export const AmazonDe: Store = {
container: 'body', container: 'body',
text: [ text: [
'geben sie die unten angezeigten zeichen ein', 'geben sie die unten angezeigten zeichen ein',
'geben sie die zeichen unten ein' 'geben sie die zeichen unten ein',
] ],
}, },
inStock: { inStock: {
container: '#add-to-cart-button', container: '#add-to-cart-button',
text: ['in den einkaufswagen'] text: ['in den einkaufswagen'],
}, },
maxPrice: { maxPrice: {
container: '#priceblock_ourprice', container: '#priceblock_ourprice',
euroFormat: true euroFormat: true,
}, },
outOfStock: [ outOfStock: [
{ {
container: '#availability', container: '#availability',
text: ['Derzeit nicht verfügbar'] text: ['Derzeit nicht verfügbar'],
} },
] ],
}, },
links: [ links: [
{ {
@@ -33,7 +33,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&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/B07PW9VBK5' url: 'https://www.amazon.de/dp/B07PW9VBK5',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -41,7 +41,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HN7VVLJ' url: 'https://www.amazon.de/dp/B08HN7VVLJ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -49,7 +49,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HN6KYS3' url: 'https://www.amazon.de/dp/B08HN6KYS3',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -57,7 +57,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HN37VQK' url: 'https://www.amazon.de/dp/B08HN37VQK',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -65,7 +65,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HN4DSTC' url: 'https://www.amazon.de/dp/B08HN4DSTC',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -73,7 +73,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HGBYWQ6' url: 'https://www.amazon.de/dp/B08HGBYWQ6',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -81,7 +81,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HGYXP4C' url: 'https://www.amazon.de/dp/B08HGYXP4C',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -89,7 +89,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HGLN78Q' url: 'https://www.amazon.de/dp/B08HGLN78Q',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -97,7 +97,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HH1BMQQ' url: 'https://www.amazon.de/dp/B08HH1BMQQ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -105,7 +105,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HJ9XFNM' url: 'https://www.amazon.de/dp/B08HJ9XFNM',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -113,7 +113,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHLDS72&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHLDS72&Quantity.1=1',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08KHLDS72' url: 'https://www.amazon.de/dp/B08KHLDS72',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -121,7 +121,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HHZVZ3N' url: 'https://www.amazon.de/dp/B08HHZVZ3N',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -129,7 +129,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HLZXHZY' url: 'https://www.amazon.de/dp/B08HLZXHZY',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -137,7 +137,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KH7RL89&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KH7RL89&Quantity.1=1',
model: 'vision oc', model: 'vision oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08KH7RL89' url: 'https://www.amazon.de/dp/B08KH7RL89',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
@@ -145,7 +145,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JD6QPXD&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JD6QPXD&Quantity.1=1',
model: 'twin x2 oc', model: 'twin x2 oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08JD6QPXD' url: 'https://www.amazon.de/dp/B08JD6QPXD',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -153,7 +153,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HM4V2DH' url: 'https://www.amazon.de/dp/B08HM4V2DH',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -161,7 +161,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HM4M621' url: 'https://www.amazon.de/dp/B08HM4M621',
}, },
{ {
brand: 'palit', brand: 'palit',
@@ -169,7 +169,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JCVWTQY&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JCVWTQY&Quantity.1=1',
model: 'gaming pro', model: 'gaming pro',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08JCVWTQY' url: 'https://www.amazon.de/dp/B08JCVWTQY',
}, },
{ {
brand: 'palit', brand: 'palit',
@@ -177,7 +177,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JCKYYL8&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JCKYYL8&Quantity.1=1',
model: 'gaming pro oc', model: 'gaming pro oc',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08JCKYYL8' url: 'https://www.amazon.de/dp/B08JCKYYL8',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -185,7 +185,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.amazon.de/dp/B08HR1NPPQ' url: 'https://www.amazon.de/dp/B08HR1NPPQ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -193,7 +193,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN642LY&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN642LY&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HN642LY' url: 'https://www.amazon.de/dp/B08HN642LY',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -201,7 +201,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN51T8Q&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN51T8Q&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HN51T8Q' url: 'https://www.amazon.de/dp/B08HN51T8Q',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -209,7 +209,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN4FLFJ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN4FLFJ&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HN4FLFJ' url: 'https://www.amazon.de/dp/B08HN4FLFJ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -217,7 +217,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN5B8FJ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN5B8FJ&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HN5B8FJ' url: 'https://www.amazon.de/dp/B08HN5B8FJ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -225,7 +225,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGFNPJQ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGFNPJQ&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HGFNPJQ' url: 'https://www.amazon.de/dp/B08HGFNPJQ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -233,7 +233,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08J5NMDP7&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08J5NMDP7&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08J5NMDP7' url: 'https://www.amazon.de/dp/B08J5NMDP7',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -241,7 +241,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGS1SXH&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGS1SXH&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HGS1SXH' url: 'https://www.amazon.de/dp/B08HGS1SXH',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -249,7 +249,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGZ4XSZ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGZ4XSZ&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HGZ4XSZ' url: 'https://www.amazon.de/dp/B08HGZ4XSZ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -257,7 +257,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGKQ527&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGKQ527&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HGKQ527' url: 'https://www.amazon.de/dp/B08HGKQ527',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -265,7 +265,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGTNDL4&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGTNDL4&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HGTNDL4' url: 'https://www.amazon.de/dp/B08HGTNDL4',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -273,7 +273,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KH7R4FQ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KH7R4FQ&Quantity.1=1',
model: 'aorus master', model: 'aorus master',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08KH7R4FQ' url: 'https://www.amazon.de/dp/B08KH7R4FQ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -281,7 +281,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HJPDJTY' url: 'https://www.amazon.de/dp/B08HJPDJTY',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -289,7 +289,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHKDTSJ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHKDTSJ&Quantity.1=1',
model: 'turbo', model: 'turbo',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08KHKDTSJ' url: 'https://www.amazon.de/dp/B08KHKDTSJ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -297,7 +297,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HJRF2CN' url: 'https://www.amazon.de/dp/B08HJRF2CN',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -305,7 +305,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HRBW6VB' url: 'https://www.amazon.de/dp/B08HRBW6VB',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -313,7 +313,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM661YM&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM661YM&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HM661YM' url: 'https://www.amazon.de/dp/B08HM661YM',
}, },
{ {
brand: 'palit', brand: 'palit',
@@ -321,7 +321,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JQQ1VD1&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JQQ1VD1&Quantity.1=1',
model: 'gaming pro', model: 'gaming pro',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08JQQ1VD1' url: 'https://www.amazon.de/dp/B08JQQ1VD1',
}, },
{ {
brand: 'nvidia', brand: 'nvidia',
@@ -329,7 +329,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HR6ZBYJ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HR6ZBYJ&Quantity.1=1',
model: 'founders edition', model: 'founders edition',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HR6ZBYJ' url: 'https://www.amazon.de/dp/B08HR6ZBYJ',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -337,7 +337,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: 'https://www.amazon.de/dp/B08HJQ182D' url: 'https://www.amazon.de/dp/B08HJQ182D',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -345,7 +345,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HSJ1622&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HSJ1622&Quantity.1=1',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08HSJ1622' url: 'https://www.amazon.de/dp/B08HSJ1622',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -353,7 +353,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
model: 'dual oc', model: 'dual oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08KHFZN9P' url: 'https://www.amazon.de/dp/B08KHFZN9P',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -361,7 +361,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HT7PR9Y&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HT7PR9Y&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08HT7PR9Y' url: 'https://www.amazon.de/dp/B08HT7PR9Y',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -369,7 +369,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08L8JNTXQ' url: 'https://www.amazon.de/dp/B08L8JNTXQ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -377,7 +377,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08KWPDXJZ' url: 'https://www.amazon.de/dp/B08KWPDXJZ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -385,7 +385,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L6PCZTR&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L6PCZTR&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08L6PCZTR' url: 'https://www.amazon.de/dp/B08L6PCZTR',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -393,7 +393,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08KWN2LZG' url: 'https://www.amazon.de/dp/B08KWN2LZG',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -401,7 +401,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc', model: 'vision oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08M13DXSZ' url: 'https://www.amazon.de/dp/B08M13DXSZ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -409,7 +409,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHL21CV&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHL21CV&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08KHL21CV' url: 'https://www.amazon.de/dp/B08KHL21CV',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -417,7 +417,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHL2J5X&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHL2J5X&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08KHL2J5X' url: 'https://www.amazon.de/dp/B08KHL2J5X',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -425,7 +425,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3QCZKZ&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3QCZKZ&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08L3QCZKZ' url: 'https://www.amazon.de/dp/B08L3QCZKZ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -433,7 +433,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3QZP7W&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3QZP7W&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08L3QZP7W' url: 'https://www.amazon.de/dp/B08L3QZP7W',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -441,7 +441,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3Q41SM&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3Q41SM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08L3Q41SM' url: 'https://www.amazon.de/dp/B08L3Q41SM',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -449,7 +449,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HRBR7K9&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HRBR7K9&Quantity.1=1',
model: 'twin edge', model: 'twin edge',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08HRBR7K9' url: 'https://www.amazon.de/dp/B08HRBR7K9',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -457,7 +457,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08LBVNKT1&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08LBVNKT1&Quantity.1=1',
model: 'twin edge oc', model: 'twin edge oc',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08LBVNKT1' url: 'https://www.amazon.de/dp/B08LBVNKT1',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -465,7 +465,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'dual fan', model: 'dual fan',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08HBF5L3K' url: 'https://www.amazon.de/dp/B08HBF5L3K',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -473,7 +473,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3070', series: '3070',
url: 'https://www.amazon.de/dp/B08HBJB7YD' url: 'https://www.amazon.de/dp/B08HBJB7YD',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -481,7 +481,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.de/dp/B08166SLDF' url: 'https://www.amazon.de/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -489,7 +489,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.de/dp/B0815XFSGK' url: 'https://www.amazon.de/dp/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -497,7 +497,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.de/dp/B08164VTWH' url: 'https://www.amazon.de/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -505,7 +505,7 @@ export const AmazonDe: Store = {
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1', 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.de/dp/B0815Y8J9N' url: 'https://www.amazon.de/dp/B0815Y8J9N',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -514,12 +514,12 @@ export const AmazonDe: Store = {
labels: { labels: {
inStock: { inStock: {
container: '#productTitle', container: '#productTitle',
text: ['sony playstation 5'] 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',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -528,12 +528,12 @@ export const AmazonDe: Store = {
labels: { labels: {
inStock: { inStock: {
container: '#productTitle', container: '#productTitle',
text: ['sony playstation 5'] 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', brand: 'microsoft',
@@ -542,7 +542,7 @@ export const AmazonDe: Store = {
// 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1', // 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.de/dp/B08H93ZRLL' url: 'https://www.amazon.de/dp/B08H93ZRLL',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -551,8 +551,8 @@ export const AmazonDe: Store = {
// 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1', // 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.de/dp/B087VM5XC6' url: 'https://www.amazon.de/dp/B087VM5XC6',
} },
], ],
name: 'amazon-de' name: 'amazon-de',
}; };
+30 -30
View File
@@ -6,21 +6,21 @@ export const AmazonEs: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['introduzca los caracteres que ve a continuación'] text: ['introduzca los caracteres que ve a continuación'],
}, },
inStock: { inStock: {
container: '#desktop_buybox', container: '#desktop_buybox',
text: ['añadir a la cesta'] text: ['añadir a la cesta'],
}, },
maxPrice: { maxPrice: {
container: '#priceblock_ourprice' container: '#priceblock_ourprice',
}, },
outOfStock: [ outOfStock: [
{ {
container: '#availability', container: '#availability',
text: ['No disponible'] text: ['No disponible'],
} },
] ],
}, },
links: [ links: [
{ {
@@ -29,7 +29,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&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/B07PW9VBK5' url: 'https://www.amazon.es/dp/B07PW9VBK5',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -37,7 +37,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HM4V2DH' url: 'https://www.amazon.es/dp/B08HM4V2DH',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -45,7 +45,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HGYXP4C' url: 'https://www.amazon.es/dp/B08HGYXP4C',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -53,7 +53,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HJ9XFNM' url: 'https://www.amazon.es/dp/B08HJ9XFNM',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -61,7 +61,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HGBYWQ6' url: 'https://www.amazon.es/dp/B08HGBYWQ6',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -69,7 +69,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HGLN78Q' url: 'https://www.amazon.es/dp/B08HGLN78Q',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -77,7 +77,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HH1BMQQ' url: 'https://www.amazon.es/dp/B08HH1BMQQ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -85,7 +85,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HLZXHZY' url: 'https://www.amazon.es/dp/B08HLZXHZY',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -93,7 +93,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HHZVZ3N' url: 'https://www.amazon.es/dp/B08HHZVZ3N',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -101,7 +101,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HN37VQK' url: 'https://www.amazon.es/dp/B08HN37VQK',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -109,7 +109,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HN4DSTC' url: 'https://www.amazon.es/dp/B08HN4DSTC',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -117,7 +117,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HN6KYS3' url: 'https://www.amazon.es/dp/B08HN6KYS3',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -125,7 +125,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HM4M621' url: 'https://www.amazon.es/dp/B08HM4M621',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -133,7 +133,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.amazon.es/dp/B08HR1NPPQ' url: 'https://www.amazon.es/dp/B08HR1NPPQ',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -141,7 +141,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.es/dp/B08166SLDF' url: 'https://www.amazon.es/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -149,7 +149,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.es/dp/B0815XFSGK' url: 'https://www.amazon.es/dp/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -157,7 +157,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.es/dp/B08164VTWH' url: 'https://www.amazon.es/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -165,7 +165,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.es/dp/B0815Y8J9N' url: 'https://www.amazon.es/dp/B0815Y8J9N',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -173,7 +173,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.amazon.es/dp/B08KKJ37F7' url: 'https://www.amazon.es/dp/B08KKJ37F7',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -181,7 +181,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.amazon.es/dp/B08KJF2D25' url: 'https://www.amazon.es/dp/B08KJF2D25',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -189,7 +189,7 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.es/dp/B08H93ZRLL' url: 'https://www.amazon.es/dp/B08H93ZRLL',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -197,8 +197,8 @@ export const AmazonEs: Store = {
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1', 'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.es/dp/B087VM5XC6' url: 'https://www.amazon.es/dp/B087VM5XC6',
} },
], ],
name: 'amazon-es' name: 'amazon-es',
}; };
+35 -35
View File
@@ -6,186 +6,186 @@ export const AmazonFr: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['entrez les caractères que vous voyez ci-dessous'] text: ['entrez les caractères que vous voyez ci-dessous'],
}, },
inStock: { inStock: {
container: '#desktop_buybox', container: '#desktop_buybox',
text: ['ajouter au panier'] text: ['ajouter au panier'],
}, },
maxPrice: { maxPrice: {
container: '#priceblock_ourprice', container: '#priceblock_ourprice',
euroFormat: true euroFormat: true,
}, },
outOfStock: [ outOfStock: [
{ {
container: '#availability', container: '#availability',
text: ['Actuellement indisponible'] 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/B07PW9VBK5' url: 'https://www.amazon.fr/dp/B07PW9VBK5',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR7SV3M' url: 'https://www.amazon.fr/dp/B08HR7SV3M',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR5SXPS' url: 'https://www.amazon.fr/dp/B08HR5SXPS',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR3DPGW' url: 'https://www.amazon.fr/dp/B08HR3DPGW',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR3Y5GQ' url: 'https://www.amazon.fr/dp/B08HR3Y5GQ',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR55YB5' url: 'https://www.amazon.fr/dp/B08HR55YB5',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR4RJ3Q' url: 'https://www.amazon.fr/dp/B08HR4RJ3Q',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HR6FMF3' url: 'https://www.amazon.fr/dp/B08HR6FMF3',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HJTH61J' url: 'https://www.amazon.fr/dp/B08HJTH61J',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HJS2JLJ' url: 'https://www.amazon.fr/dp/B08HJS2JLJ',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HHDP9DW' url: 'https://www.amazon.fr/dp/B08HHDP9DW',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HH5WF97' url: 'https://www.amazon.fr/dp/B08HH5WF97',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.amazon.fr/dp/B08HJNKT3P' url: 'https://www.amazon.fr/dp/B08HJNKT3P',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: 'https://www.amazon.fr/dp/B08HJQ182D' url: 'https://www.amazon.fr/dp/B08HJQ182D',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: 'https://www.amazon.fr/dp/B08HR9D2JS' url: 'https://www.amazon.fr/dp/B08HR9D2JS',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: 'https://www.amazon.fr/dp/B08HJRF2CN' url: 'https://www.amazon.fr/dp/B08HJRF2CN',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: 'https://www.amazon.fr/dp/B08HJPDJTY' url: 'https://www.amazon.fr/dp/B08HJPDJTY',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: 'https://www.amazon.fr/dp/B08HJGNJ81' url: 'https://www.amazon.fr/dp/B08HJGNJ81',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.fr/dp/B08HJLLF7G' url: 'https://www.amazon.fr/dp/B08HJLLF7G',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.fr/dp/B08166SLDF' url: 'https://www.amazon.fr/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.fr/dp/B0815XFSGK' url: 'https://www.amazon.fr/dp/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.fr/dp/B08164VTWH' url: 'https://www.amazon.fr/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.fr/dp/B0815Y8J9N' url: 'https://www.amazon.fr/dp/B0815Y8J9N',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.amazon.fr/dp/B08H93ZRK9' 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/B08H98GVK8' url: 'https://www.amazon.fr/dp/B08H98GVK8',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.fr/dp/B08H93ZRLL' url: 'https://www.amazon.fr/dp/B08H93ZRLL',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.fr/dp/B087VM5XC6' url: 'https://www.amazon.fr/dp/B087VM5XC6',
} },
], ],
name: 'amazon-fr' name: 'amazon-fr',
}; };
+55 -57
View File
@@ -6,18 +6,16 @@ export const AmazonIt: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: [ text: ['Inserisci i caratteri visualizzati nello spazio sottostante'],
'Inserisci i caratteri visualizzati nello spazio sottostante'
]
}, },
inStock: { inStock: {
container: '#desktop_buybox', container: '#desktop_buybox',
text: ['Aggiungi al carrello'] text: ['Aggiungi al carrello'],
}, },
maxPrice: { maxPrice: {
container: '#priceblock_ourprice', container: '#priceblock_ourprice',
euroFormat: true euroFormat: true,
} },
}, },
links: [ links: [
{ {
@@ -26,7 +24,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KHFZN9P' url: 'https://www.amazon.it/dp/B08KHFZN9P',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -34,7 +32,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08L8HPKR6' url: 'https://www.amazon.it/dp/B08L8HPKR6',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -42,7 +40,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08L8JNTXQ' url: 'https://www.amazon.it/dp/B08L8JNTXQ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -50,7 +48,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08L8KC1J7' url: 'https://www.amazon.it/dp/B08L8KC1J7',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -58,7 +56,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KY266MG' url: 'https://www.amazon.it/dp/B08KY266MG',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -66,7 +64,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming', model: 'gaming',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KWN2LZG' url: 'https://www.amazon.it/dp/B08KWN2LZG',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -74,7 +72,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08HBJB7YD' url: 'https://www.amazon.it/dp/B08HBJB7YD',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -82,7 +80,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'xlr8 uprising', model: 'xlr8 uprising',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08HBF5L3K' url: 'https://www.amazon.it/dp/B08HBF5L3K',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -90,7 +88,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KWPDXJZ' url: 'https://www.amazon.it/dp/B08KWPDXJZ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -98,7 +96,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KWLMZV4' url: 'https://www.amazon.it/dp/B08KWLMZV4',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -106,7 +104,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
model: 'gaming', model: 'gaming',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08LF32LJ6' url: 'https://www.amazon.it/dp/B08LF32LJ6',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -114,7 +112,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08L8L71SM' url: 'https://www.amazon.it/dp/B08L8L71SM',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -122,7 +120,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08L8L9TCZ' url: 'https://www.amazon.it/dp/B08L8L9TCZ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -130,7 +128,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KY266MG' url: 'https://www.amazon.it/dp/B08KY266MG',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -138,7 +136,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc', model: 'vision oc',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08M13DXSZ' url: 'https://www.amazon.it/dp/B08M13DXSZ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -146,7 +144,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
model: 'eagle', model: 'eagle',
series: '3070', series: '3070',
url: 'https://www.amazon.it/dp/B08KXZV626' url: 'https://www.amazon.it/dp/B08KXZV626',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -154,7 +152,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HBR7QBM' url: 'https://www.amazon.it/dp/B08HBR7QBM',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -162,7 +160,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HBTJMLJ' url: 'https://www.amazon.it/dp/B08HBTJMLJ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -170,7 +168,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HR3Y5GQ' url: 'https://www.amazon.it/dp/B08HR3Y5GQ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -178,7 +176,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HR55YB5' url: 'https://www.amazon.it/dp/B08HR55YB5',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -186,7 +184,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HR4RJ3Q' url: 'https://www.amazon.it/dp/B08HR4RJ3Q',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -194,7 +192,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HR6FMF3' url: 'https://www.amazon.it/dp/B08HR6FMF3',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -202,7 +200,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HJTH61J' url: 'https://www.amazon.it/dp/B08HJTH61J',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -210,7 +208,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HJS2JLJ' url: 'https://www.amazon.it/dp/B08HJS2JLJ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -218,7 +216,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HH5WF97' url: 'https://www.amazon.it/dp/B08HH5WF97',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -226,7 +224,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HHDP9DW' url: 'https://www.amazon.it/dp/B08HHDP9DW',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -234,7 +232,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08J6GMWCQ' url: 'https://www.amazon.it/dp/B08J6GMWCQ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -242,7 +240,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HR5SXPS' url: 'https://www.amazon.it/dp/B08HR5SXPS',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -250,7 +248,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.amazon.it/dp/B08HJNKT3P' url: 'https://www.amazon.it/dp/B08HJNKT3P',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -258,7 +256,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HJQ182D' url: 'https://www.amazon.it/dp/B08HJQ182D',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -266,7 +264,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HBQWBHH' url: 'https://www.amazon.it/dp/B08HBQWBHH',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -274,7 +272,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HBVX53D' url: 'https://www.amazon.it/dp/B08HBVX53D',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -282,7 +280,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HRBW6VB' url: 'https://www.amazon.it/dp/B08HRBW6VB',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -290,7 +288,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
model: 'ventus 3x', model: 'ventus 3x',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HR9D2JS' url: 'https://www.amazon.it/dp/B08HR9D2JS',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -298,7 +296,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HJRF2CN' url: 'https://www.amazon.it/dp/B08HJRF2CN',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -306,7 +304,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HJPDJTY' url: 'https://www.amazon.it/dp/B08HJPDJTY',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -314,7 +312,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HJGNJ81' url: 'https://www.amazon.it/dp/B08HJGNJ81',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -322,7 +320,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.it/dp/B08HJLLF7G' url: 'https://www.amazon.it/dp/B08HJLLF7G',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -330,7 +328,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.it/dp/B08166SLDF' url: 'https://www.amazon.it/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -338,7 +336,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.it/dp/product/B0815XFSGK' url: 'https://www.amazon.it/dp/product/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -346,7 +344,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.it/dp/B08164VTWH' url: 'https://www.amazon.it/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -354,7 +352,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.it/dp/B0815Y8J9N' url: 'https://www.amazon.it/dp/B0815Y8J9N',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -362,7 +360,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.it/dp/B08MVC76SR' url: 'https://www.amazon.it/dp/B08MVC76SR',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -370,7 +368,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.it/dp/B08MVCLBWK' url: 'https://www.amazon.it/dp/B08MVCLBWK',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -378,7 +376,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.amazon.it/dp/B08KKJ37F7' url: 'https://www.amazon.it/dp/B08KKJ37F7',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -386,7 +384,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.amazon.it/dp/B08KJF2D25' url: 'https://www.amazon.it/dp/B08KJF2D25',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -394,7 +392,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDSW1ZW&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDSW1ZW&Quantity.1=1',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.it/dp/B08JDSW1ZW' url: 'https://www.amazon.it/dp/B08JDSW1ZW',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -402,7 +400,7 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDTCXRG&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDTCXRG&Quantity.1=1',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.it/dp/B08JDTCXRG' url: 'https://www.amazon.it/dp/B08JDTCXRG',
}, },
{ {
brand: 'corsair', brand: 'corsair',
@@ -410,8 +408,8 @@ export const AmazonIt: Store = {
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1', 'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
model: '750 platinum', model: '750 platinum',
series: 'sf', series: 'sf',
url: 'https://www.amazon.it/dp/B07M63H81H' url: 'https://www.amazon.it/dp/B07M63H81H',
} },
], ],
name: 'amazon-it' name: 'amazon-it',
}; };
+36 -38
View File
@@ -5,34 +5,32 @@ export const AmazonNl: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['voer de karakters in die u hieronder ziet'] text: ['voer de karakters in die u hieronder ziet'],
}, },
inStock: [ inStock: [
{ {
container: '#add-to-cart-button', container: '#add-to-cart-button',
text: ['in winkelwagen'] text: ['in winkelwagen'],
}, },
{ {
container: '#buy-now-button', container: '#buy-now-button',
text: ['nu kopen'] text: ['nu kopen'],
} },
], ],
maxPrice: { maxPrice: {
container: '#priceblock_ourprice', container: '#priceblock_ourprice',
euroFormat: true euroFormat: true,
}, },
outOfStock: [ outOfStock: [
{ {
container: '#availability', container: '#availability',
text: ['tijdelijk niet'] text: ['tijdelijk niet'],
}, },
{ {
container: '#outOfStock', container: '#outOfStock',
text: [ text: ['we weten niet of en wanneer dit item weer op voorraad is'],
'we weten niet of en wanneer dit item weer op voorraad is' },
] ],
}
]
}, },
links: [ links: [
{ {
@@ -41,7 +39,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B085K45C3S&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B085K45C3S&Quantity.1=1',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amazon.nl/dp/B085K45C3S' url: 'https://www.amazon.nl/dp/B085K45C3S',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -49,7 +47,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.nl/dp/B08HM4M621' url: 'https://www.amazon.nl/dp/B08HM4M621',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -57,7 +55,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.amazon.nl/dp/B08HM4V2DH' url: 'https://www.amazon.nl/dp/B08HM4V2DH',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -65,7 +63,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.nl/dp/B08HJ9XFNM' url: 'https://www.amazon.nl/dp/B08HJ9XFNM',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -73,7 +71,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.nl/dp/B08HH1BMQQ' url: 'https://www.amazon.nl/dp/B08HH1BMQQ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -81,7 +79,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: 'https://www.amazon.nl/dp/B08HN7VVLJ' url: 'https://www.amazon.nl/dp/B08HN7VVLJ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -89,7 +87,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08P2DQ28S' url: 'https://www.amazon.nl/dp/B08P2DQ28S',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -97,7 +95,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08NW2YJB2' url: 'https://www.amazon.nl/dp/B08NW2YJB2',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -105,7 +103,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
model: 'twin edge', model: 'twin edge',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08P3XJLJJ' url: 'https://www.amazon.nl/dp/B08P3XJLJJ',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -113,7 +111,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
model: 'twin edge oc', model: 'twin edge oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08P3V572B' url: 'https://www.amazon.nl/dp/B08P3V572B',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -121,7 +119,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1',
model: 'twin edge oc', model: 'twin edge oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08P3BJ9Y8' url: 'https://www.amazon.nl/dp/B08P3BJ9Y8',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -129,7 +127,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1',
model: 'eagle', model: 'eagle',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08P3JPX8P' url: 'https://www.amazon.nl/dp/B08P3JPX8P',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -137,7 +135,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08NW2X37Z' url: 'https://www.amazon.nl/dp/B08NW2X37Z',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -145,7 +143,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08NW528S1' url: 'https://www.amazon.nl/dp/B08NW528S1',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -153,7 +151,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08NW693LG' url: 'https://www.amazon.nl/dp/B08NW693LG',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -161,7 +159,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B083Z5P6TX' url: 'https://www.amazon.nl/dp/B083Z5P6TX',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -169,7 +167,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08NZ4G4T2' url: 'https://www.amazon.nl/dp/B08NZ4G4T2',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -177,7 +175,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
model: 'dual oc', model: 'dual oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08P2HBBLX' url: 'https://www.amazon.nl/dp/B08P2HBBLX',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -185,7 +183,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08PDN36R3' url: 'https://www.amazon.nl/dp/B08PDN36R3',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -193,7 +191,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1',
model: 'xc gaming', model: 'xc gaming',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08PDP837W' url: 'https://www.amazon.nl/dp/B08PDP837W',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -201,7 +199,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.nl/dp/B08PDMVPZ4' url: 'https://www.amazon.nl/dp/B08PDMVPZ4',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -209,7 +207,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.nl/dp/B08166SLDF' url: 'https://www.amazon.nl/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -217,7 +215,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.nl/dp/B0815XFSGK' url: 'https://www.amazon.nl/dp/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -225,7 +223,7 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.nl/dp/B08164VTWH' url: 'https://www.amazon.nl/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -233,8 +231,8 @@ export const AmazonNl: Store = {
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1', 'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.nl/dp/B0815Y8J9N' url: 'https://www.amazon.nl/dp/B0815Y8J9N',
} },
], ],
name: 'amazon-nl' name: 'amazon-nl',
}; };
+760
View File
@@ -0,0 +1,760 @@
import {Store} from './store';
export const AmazonSg: Store = {
backoffStatusCodes: [403, 429, 503],
currency: '$',
labels: {
captcha: {
container: 'body',
text: ['enter the characters you see below'],
},
inStock: [
{
container: '#add-to-cart-button',
text: ['add to cart'],
},
{
container: '#buy-now-button',
text: ['buy now'],
},
],
maxPrice: {
container: '#priceblock_ourprice',
},
},
links: [
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B083248S3B&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.sg/dp/B083248S3B',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
model: 'dual',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P2HBBLX',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NYP7KG6&Quantity.1=1',
model: 'gaming oc',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08NYP7KG6',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NYPLXPJ&Quantity.1=1',
model: 'gaming oc pro',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08NYPLXPJ',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NYNJ6RC&Quantity.1=1',
model: 'eagle',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08NYNJ6RC',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
model: 'tuf',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B083Z5P6TX',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P2D3JSG&Quantity.1=1',
model: 'gaming x trio',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P2D3JSG',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
model: 'ventus 2x',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P2DQ28S',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
model: 'twin edge oc',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P3XJLJJ',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
model: 'twin edge',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P3V572B',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P2D1JZZ&Quantity.1=1',
model: 'ko',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P2D1JZZ',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B083Z7TR8Z&Quantity.1=1',
model: 'strix',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B083Z7TR8Z',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P2H5LW2&Quantity.1=1',
model: 'ftw3',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08P2H5LW2',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NYPKW1Z&Quantity.1=1',
model: 'eagle oc',
series: '3060ti',
url: 'https://www.amazon.sg/dp/B08NYPKW1Z',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08L8LG4M3&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.sg/dp/B08L8LG4M3',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.sg/dp/B08L8HPKR6',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
model: 'xc3 black',
series: '3070',
url: 'https://www.amazon.sg/dp/B08LW46GH2',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix',
series: '3070',
url: 'https://www.amazon.sg/dp/B08L8JNTXQ',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
model: 'tuf',
series: '3070',
url: 'https://www.amazon.sg/dp/B08L8KC1J7',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KY266MG',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KWN2LZG',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel',
series: '3070',
url: 'https://www.amazon.sg/dp/B08HBJB7YD',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'xlr8 uprising',
series: '3070',
url: 'https://www.amazon.sg/dp/B08HBF5L3K',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KWPDXJZ',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
model: 'ventus 3x oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KWLMZV4',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08LF1CWT2&Quantity.1=1',
model: 'twin edge oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08LF1CWT2',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.sg/dp/B08LF32LJ6',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra',
series: '3070',
url: 'https://www.amazon.sg/dp/B08L8L71SM',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3 ultra',
series: '3070',
url: 'https://www.amazon.sg/dp/B08L8L9TCZ',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
model: 'xc3 black',
series: '3070',
url: 'https://www.amazon.sg/dp/B08LW46GH2',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KY266MG',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08M13DXSZ',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08M4YFNX2&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08M4YFNX2',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
model: 'eagle',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KXZV626',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08KY322TH&Quantity.1=1',
model: 'eagle oc',
series: '3070',
url: 'https://www.amazon.sg/dp/B08KY322TH',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
model: 'xlr8 revel',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HBR7QBM',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
model: 'xlr8 revel',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HBTJMLJ',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR7SV3M',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR3Y5GQ',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR55YB5',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1',
model: 'ftw3',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR3DPGW',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR4RJ3Q',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR6FMF3',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HJTH61J',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HJS2JLJ',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HH5WF97',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HHDP9DW',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08J6F174Z&Quantity.1=1',
model: 'strix oc',
series: '3080',
url: 'https://www.amazon.sg/dp/B08J6F174Z',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
model: 'strix oc',
series: '3090',
url: 'https://www.amazon.sg/dp/B08J6GMWCQ',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HR5SXPS',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HJNKT3P',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HVV2P4Z&Quantity.1=1',
model: 'trinity oc',
series: '3080',
url: 'https://www.amazon.sg/dp/B08HVV2P4Z',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HJQ182D',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
model: 'xlr8 revel',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HBQWBHH',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
model: 'xlr8 revel',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HBVX53D',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
model: 'gaming x trio',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HRBW6VB',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
model: 'ventus 3x',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HR9D2JS',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08J5F3G18&Quantity.1=1',
model: 'ftw3 ultra',
series: '3090',
url: 'https://www.amazon.sg/dp/B08J5F3G18',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HJRF2CN',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HJPDJTY',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HJGNJ81',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.sg/dp/B08HJLLF7G',
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.sg/dp/B08166SLDF',
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.sg/dp/product/B0815XFSGK',
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.sg/dp/B08164VTWH',
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.sg/dp/B0815Y8J9N',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08PHWJC8X&Quantity.1=1',
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.amazon.sg/dp/B08PHWJC8X',
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08PDQJVD9&Quantity.1=1',
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.amazon.sg/dp/B08PDQJVD9',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NS4W2ZY&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08NS4W2ZY',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08MVC76SR',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NXXT7WN&Quantity.1=1',
model: 'nitro+',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08NXXT7WN',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NXYNLMR&Quantity.1=1',
model: 'pulse',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08NXYNLMR',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NXVNMPQ&Quantity.1=1',
model: 'nitro+',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08NXVNMPQ',
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08N6ZLX9B&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08N6ZLX9B',
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
model: 'merc',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08NX14LV1',
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NN76VJD&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08NN76VJD',
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P5YFZCY&Quantity.1=1',
model: 'merc',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08P5YFZCY',
},
{
brand: 'powercolor',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08MNZM5TK&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08MNZM5TK',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08MVCLBWK',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NXZSPMY&Quantity.1=1',
model: 'nitro+',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08NXZSPMY',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NXYBVDB&Quantity.1=1',
model: 'pulse',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08NXYBVDB',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NWJ29NB&Quantity.1=1',
model: 'strix oc',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08NWJ29NB',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08P3YT3MY&Quantity.1=1',
model: 'tuf oc',
series: 'rx6800',
url: 'https://www.amazon.sg/dp/B08P3YT3MY',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08NWHKGS9&Quantity.1=1',
model: 'strix lc',
series: 'rx6800xt',
url: 'https://www.amazon.sg/dp/B08NWHKGS9',
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.sg/dp/B08FC5L3RG',
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HNRSVQP&Quantity.1=1',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.sg/dp/B08HNRSVQP',
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08FC6MR62&Quantity.1=1',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.sg/dp/B08FC6MR62',
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B08HNSWWT7&Quantity.1=1',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.sg/dp/B08HNSWWT7',
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.sg/dp/B08H75RTZ8',
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.sg/dp/B08G9J44ZN',
},
{
brand: 'corsair',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
model: '750 platinum',
series: 'sf',
url: 'https://www.amazon.sg/dp/B07M63H81H',
},
{
brand: 'corsair',
cartUrl:
'https://www.amazon.sg/gp/aws/cart/add.html?ASIN.1=B07F84FJ1G&Quantity.1=1',
model: '600 platinum',
series: 'sf',
url: 'https://www.amazon.sg/dp/B07F84FJ1G',
},
],
name: 'amazon-sg',
};
+431 -74
View File
@@ -1,6 +1,4 @@
import {Link, Store} from './store'; import {Link, Store} from './store';
import {logger} from '../../logger';
import {parseCard} from './helpers/card';
export const AmazonUk: Store = { export const AmazonUk: Store = {
backoffStatusCodes: [403, 429, 503], backoffStatusCodes: [403, 429, 503],
@@ -8,25 +6,25 @@ export const AmazonUk: Store = {
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['enter the characters you see below'] text: ['enter the characters you see below'],
}, },
inStock: { inStock: {
container: '#availability', container: '#availability',
text: ['in stock'] text: ['in stock'],
}, },
maxPrice: { maxPrice: {
container: '#priceblock_ourprice' container: '#priceblock_ourprice',
}, },
outOfStock: [ outOfStock: [
{ {
container: '#availability', container: '#availability',
text: ['out of stock', 'unavailable'] text: ['out of stock', 'unavailable'],
}, },
{ {
container: '#backInStock', container: '#backInStock',
text: ['unavailable'] text: ['unavailable'],
} },
] ],
}, },
links: [ links: [
{ {
@@ -35,7 +33,7 @@ export const AmazonUk: Store = {
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B0753R2TWC&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/B0753R2TWC/' url: 'https://www.amazon.co.uk/dp/B0753R2TWC/',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -43,7 +41,7 @@ export const AmazonUk: Store = {
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H95Y452&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.co.uk/dp/B08H95Y452' url: 'https://www.amazon.co.uk/dp/B08H95Y452',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -51,7 +49,7 @@ export const AmazonUk: Store = {
'https://www.amazon.co.uk/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', brand: 'microsoft',
@@ -59,7 +57,7 @@ export const AmazonUk: Store = {
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H93GKNJ&Quantity.1=1', 'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H93GKNJ&Quantity.1=1',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.co.uk/dp/B08H93GKNJ' url: 'https://www.amazon.co.uk/dp/B08H93GKNJ',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
@@ -67,77 +65,436 @@ export const AmazonUk: Store = {
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08GD9MNZB&Quantity.1=1', 'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08GD9MNZB&Quantity.1=1',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.co.uk/dp/B08GD9MNZB' url: 'https://www.amazon.co.uk/dp/B08GD9MNZB',
}
],
linksBuilder: {
builder: (docElement, series) => {
const productElements = docElement.find(
'.s-result-list .s-result-item[data-asin]'
);
const links: Link[] = [];
for (let i = 0; i < productElements.length; i++) {
const productElement = productElements.eq(i);
const asin = productElement.attr()['data-asin'];
if (!asin) {
continue;
}
const url = `https://www.amazon.co.uk/dp/${asin}/`;
const titleElement = productElement
.find('.sg-col-inner h2 a.a-text-normal[href] span')
.first();
const title = titleElement.text().trim();
if (!title || !new RegExp(`RTX.*${series}`, 'i').exec(title)) {
continue;
}
const card = parseCard(title);
if (card) {
links.push({
brand: card.brand as any,
cartUrl: `https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=${asin}&Quantity.1=1`,
model: card.model,
series,
url
});
} else {
logger.error(`Failed to parse card: ${title}`, {url});
}
}
return links;
}, },
ttl: 300000,
urls: [
{ {
series: '3060ti', brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url: 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' 'https://www.amazon.co.uk/AMD-Ryzen-5600X-Processor-Cache/dp/B08166SLDF',
}, },
{ {
series: '3070', brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url: url:
'https://www.amazon.co.uk/s?k=%2B%22RTX+3070%22+-2060+-2070+-2080+-SUPER+-GTX+-3080&rh=n%3A430500031&ref=nb_sb_noss' 'https://www.amazon.co.uk/AMD-Ryzen-5800X-Processor-Cache/dp/B0815XFSGK',
}, },
{ {
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.amazon.co.uk/AMD-Ryzen-5900X-Processor-Cache/dp/B08164VTWH',
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.amazon.co.uk/AMD-Ryzen-5950X-Processor-Cache/dp/B0815Y8J9N',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
model: 'strix',
series: '3080', series: '3080',
url: [ url: 'https://www.amazon.co.uk/dp/B08HN7VVLJ',
'https://www.amazon.co.uk/s?k=%2B%22RTX+3080%22+-2080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675291',
'https://www.amazon.co.uk/s?k=%2B%22RTX+3080%22+-2080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675594&page=2'
]
}, },
{ {
series: '3090', brand: 'asus',
url: [ cartUrl:
'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/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
'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' model: 'strix oc',
] series: '3080',
} url: 'https://www.amazon.co.uk/dp/B08HN6KYS3',
]
}, },
name: 'amazon-uk' {
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HN37VQK',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HN4DSTC',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
model: 'ftw3',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HGBYWQ6',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HGYXP4C',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HGLN78Q',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HH1BMQQ',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HJ9XFNM',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KHLDS72&Quantity.1=1',
model: 'aorus master',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08KHLDS72',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HHZVZ3N',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HLZXHZY',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KH7RL89&Quantity.1=1',
model: 'vision oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08KH7RL89',
},
{
brand: 'inno3d',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JD6QPXD&Quantity.1=1',
model: 'twin x2 oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08JD6QPXD',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HM4V2DH',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HM4M621',
},
{
brand: 'palit',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JCVWTQY&Quantity.1=1',
model: 'gaming pro',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08JCVWTQY',
},
{
brand: 'palit',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JCKYYL8&Quantity.1=1',
model: 'gaming pro oc',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08JCKYYL8',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.co.uk/dp/B08HR1NPPQ',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KHFZN9P',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08L8HPKR6',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08L8JNTXQ',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
model: 'tuf',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08L8KC1J7',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KY266MG',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KWN2LZG',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08HBJB7YD',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'xlr8 uprising',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08HBF5L3K',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KWPDXJZ',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
model: 'ventus 3x oc',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KWLMZV4',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08LF32LJ6',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08L8L71SM',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3 ultra',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08L8L9TCZ',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KY266MG',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08M13DXSZ',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
model: 'eagle',
series: '3070',
url: 'https://www.amazon.co.uk/dp/B08KXZV626',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
model: 'ventus 2x oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08P2DQ28S',
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1',
model: 'ventus 2x oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08NW2YJB2',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
model: 'twin edge',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08P3XJLJJ',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
model: 'twin edge oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08P3V572B',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1',
model: 'twin edge oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08P3BJ9Y8',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1',
model: 'eagle',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08P3JPX8P',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1',
model: 'gaming oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08NW2X37Z',
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1',
model: 'eagle oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08NW528S1',
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1',
model: 'xlr8 revel',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08NW693LG',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
model: 'tuf oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B083Z5P6TX',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1',
model: 'tuf oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08NZ4G4T2',
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
model: 'dual oc',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08P2HBBLX',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1',
model: 'ftw3',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08PDN36R3',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1',
model: 'xc gaming',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08PDP837W',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1',
model: 'xc3 black',
series: '3060ti',
url: 'https://www.amazon.co.uk/dp/B08PDMVPZ4',
},
],
name: 'amazon-uk',
}; };
+142 -95
View File
@@ -2,34 +2,43 @@ import {Store} from './store';
export const Amazon: Store = { export const Amazon: Store = {
backoffStatusCodes: [403, 429, 503], backoffStatusCodes: [403, 429, 503],
captchaDeterrent: {
hardLinks: [
'https://www.amazon.com/Amazon-Video/b/?ie=UTF8&node=2858778011&ref_=nav_cs_prime_video',
'https://www.amazon.com/alm/storefront?almBrandId=VUZHIFdob2xlIEZvb2Rz&ref_=nav_cs_whole_foods_in_region',
'https://www.amazon.com/gp/goldbox?ref_=nav_cs_gb',
],
searchTerms: ['goober', 'dungeons+and+dragons'],
searchUrl: 'https://www.amazon.com/s?k=%%s&i=todays-deals&ref=nb_sb_noss_2',
},
currency: '$', currency: '$',
labels: { labels: {
captcha: { captcha: {
container: 'body', container: 'body',
text: ['enter the characters you see below'] text: ['enter the characters you see below'],
}, },
inStock: [ inStock: [
{ {
container: '#add-to-cart-button', container: '#add-to-cart-button',
text: ['add to cart'] text: ['add to cart'],
}, },
{ {
container: '#buy-now-button', container: '#buy-now-button',
text: ['buy now'] text: ['buy now'],
} },
], ],
maxPrice: { maxPrice: {
container: '#priceblock_ourprice' container: '#priceblock_ourprice',
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
cartUrl: cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083248S3B&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B089KV4YYX&Quantity.1=1',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amazon.com/dp/B083248S3B' url: 'https://www.amazon.com/dp/B089KV4YYX',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -37,7 +46,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
model: 'dual', model: 'dual',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P2HBBLX' url: 'https://www.amazon.com/dp/B08P2HBBLX',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -45,7 +54,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYP7KG6&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYP7KG6&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08NYP7KG6' url: 'https://www.amazon.com/dp/B08NYP7KG6',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -53,7 +62,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYPLXPJ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYPLXPJ&Quantity.1=1',
model: 'gaming oc pro', model: 'gaming oc pro',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08NYPLXPJ' url: 'https://www.amazon.com/dp/B08NYPLXPJ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -61,7 +70,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYNJ6RC&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYNJ6RC&Quantity.1=1',
model: 'eagle', model: 'eagle',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08NYNJ6RC' url: 'https://www.amazon.com/dp/B08NYNJ6RC',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -69,7 +78,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B083Z5P6TX' url: 'https://www.amazon.com/dp/B083Z5P6TX',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -77,7 +86,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2D3JSG&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2D3JSG&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P2D3JSG' url: 'https://www.amazon.com/dp/B08P2D3JSG',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -85,7 +94,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
model: 'ventus 2x', model: 'ventus 2x',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P2DQ28S' url: 'https://www.amazon.com/dp/B08P2DQ28S',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -93,7 +102,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
model: 'twin edge oc', model: 'twin edge oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P3XJLJJ' url: 'https://www.amazon.com/dp/B08P3XJLJJ',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -101,7 +110,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
model: 'twin edge', model: 'twin edge',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P3V572B' url: 'https://www.amazon.com/dp/B08P3V572B',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -109,7 +118,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2D1JZZ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2D1JZZ&Quantity.1=1',
model: 'ko', model: 'ko',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P2D1JZZ' url: 'https://www.amazon.com/dp/B08P2D1JZZ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -117,7 +126,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083Z7TR8Z&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083Z7TR8Z&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B083Z7TR8Z' url: 'https://www.amazon.com/dp/B083Z7TR8Z',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -125,7 +134,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2H5LW2&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P2H5LW2&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08P2H5LW2' url: 'https://www.amazon.com/dp/B08P2H5LW2',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -133,7 +142,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYPKW1Z&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYPKW1Z&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3060ti', series: '3060ti',
url: 'https://www.amazon.com/dp/B08NYPKW1Z' url: 'https://www.amazon.com/dp/B08NYPKW1Z',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -141,7 +150,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8LG4M3&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8LG4M3&Quantity.1=1',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08L8LG4M3' url: 'https://www.amazon.com/dp/B08L8LG4M3',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -149,7 +158,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08L8HPKR6' url: 'https://www.amazon.com/dp/B08L8HPKR6',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -157,7 +166,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08LW46GH2' url: 'https://www.amazon.com/dp/B08LW46GH2',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -165,7 +174,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix', model: 'strix',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08L8JNTXQ' url: 'https://www.amazon.com/dp/B08L8JNTXQ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -173,7 +182,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08L8KC1J7' url: 'https://www.amazon.com/dp/B08L8KC1J7',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -181,7 +190,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KY266MG' url: 'https://www.amazon.com/dp/B08KY266MG',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -189,7 +198,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming', model: 'gaming',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KWN2LZG' url: 'https://www.amazon.com/dp/B08KWN2LZG',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -197,7 +206,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08HBJB7YD' url: 'https://www.amazon.com/dp/B08HBJB7YD',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -205,7 +214,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'xlr8 uprising', model: 'xlr8 uprising',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08HBF5L3K' url: 'https://www.amazon.com/dp/B08HBF5L3K',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -213,7 +222,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KWPDXJZ' url: 'https://www.amazon.com/dp/B08KWPDXJZ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -221,7 +230,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KWLMZV4' url: 'https://www.amazon.com/dp/B08KWLMZV4',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -229,7 +238,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LF1CWT2&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LF1CWT2&Quantity.1=1',
model: 'twin edge oc', model: 'twin edge oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08LF1CWT2' url: 'https://www.amazon.com/dp/B08LF1CWT2',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -237,7 +246,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
model: 'gaming', model: 'gaming',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08LF32LJ6' url: 'https://www.amazon.com/dp/B08LF32LJ6',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -245,7 +254,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08L8L71SM' url: 'https://www.amazon.com/dp/B08L8L71SM',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -253,7 +262,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08L8L9TCZ' url: 'https://www.amazon.com/dp/B08L8L9TCZ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -261,7 +270,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08LW46GH2' url: 'https://www.amazon.com/dp/B08LW46GH2',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -269,7 +278,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KY266MG' url: 'https://www.amazon.com/dp/B08KY266MG',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -277,7 +286,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc', model: 'vision oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08M13DXSZ' url: 'https://www.amazon.com/dp/B08M13DXSZ',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -285,7 +294,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08M4YFNX2&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08M4YFNX2&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08M4YFNX2' url: 'https://www.amazon.com/dp/B08M4YFNX2',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -293,7 +302,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
model: 'eagle', model: 'eagle',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KXZV626' url: 'https://www.amazon.com/dp/B08KXZV626',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -301,7 +310,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY322TH&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY322TH&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3070', series: '3070',
url: 'https://www.amazon.com/dp/B08KY322TH' url: 'https://www.amazon.com/dp/B08KY322TH',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -309,7 +318,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HBR7QBM' url: 'https://www.amazon.com/dp/B08HBR7QBM',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -317,7 +326,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HBTJMLJ' url: 'https://www.amazon.com/dp/B08HBTJMLJ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -325,7 +334,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR7SV3M' url: 'https://www.amazon.com/dp/B08HR7SV3M',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -333,7 +342,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR3Y5GQ' url: 'https://www.amazon.com/dp/B08HR3Y5GQ',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -341,7 +350,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR55YB5' url: 'https://www.amazon.com/dp/B08HR55YB5',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -349,7 +358,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR3DPGW' url: 'https://www.amazon.com/dp/B08HR3DPGW',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -357,7 +366,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR4RJ3Q' url: 'https://www.amazon.com/dp/B08HR4RJ3Q',
}, },
{ {
brand: 'evga', brand: 'evga',
@@ -365,7 +374,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR6FMF3' url: 'https://www.amazon.com/dp/B08HR6FMF3',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -373,7 +382,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HJTH61J' url: 'https://www.amazon.com/dp/B08HJTH61J',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -381,7 +390,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HJS2JLJ' url: 'https://www.amazon.com/dp/B08HJS2JLJ',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -389,7 +398,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HH5WF97' url: 'https://www.amazon.com/dp/B08HH5WF97',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -397,7 +406,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HHDP9DW' url: 'https://www.amazon.com/dp/B08HHDP9DW',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -405,7 +414,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08J6F174Z&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08J6F174Z&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08J6F174Z' url: 'https://www.amazon.com/dp/B08J6F174Z',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -413,7 +422,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08J6GMWCQ' url: 'https://www.amazon.com/dp/B08J6GMWCQ',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -421,7 +430,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HR5SXPS' url: 'https://www.amazon.com/dp/B08HR5SXPS',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -429,7 +438,15 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: 'https://www.amazon.com/dp/B08HJNKT3P' url: 'https://www.amazon.com/dp/B08HJNKT3P',
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HVV2P4Z&Quantity.1=1',
model: 'trinity oc',
series: '3080',
url: 'https://www.amazon.com/dp/B08HVV2P4Z',
}, },
{ {
brand: 'zotac', brand: 'zotac',
@@ -437,7 +454,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HJQ182D' url: 'https://www.amazon.com/dp/B08HJQ182D',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -445,7 +462,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HBQWBHH' url: 'https://www.amazon.com/dp/B08HBQWBHH',
}, },
{ {
brand: 'pny', brand: 'pny',
@@ -453,7 +470,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HBVX53D' url: 'https://www.amazon.com/dp/B08HBVX53D',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -461,7 +478,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HRBW6VB' url: 'https://www.amazon.com/dp/B08HRBW6VB',
}, },
{ {
brand: 'msi', brand: 'msi',
@@ -469,7 +486,15 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
model: 'ventus 3x', model: 'ventus 3x',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HR9D2JS' url: 'https://www.amazon.com/dp/B08HR9D2JS',
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08J5F3G18&Quantity.1=1',
model: 'ftw3 ultra',
series: '3090',
url: 'https://www.amazon.com/dp/B08J5F3G18',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -477,7 +502,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HJRF2CN' url: 'https://www.amazon.com/dp/B08HJRF2CN',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -485,7 +510,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HJPDJTY' url: 'https://www.amazon.com/dp/B08HJPDJTY',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -493,7 +518,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HJGNJ81' url: 'https://www.amazon.com/dp/B08HJGNJ81',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -501,7 +526,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: 'https://www.amazon.com/dp/B08HJLLF7G' url: 'https://www.amazon.com/dp/B08HJLLF7G',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -509,7 +534,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amazon.com/dp/B08166SLDF' url: 'https://www.amazon.com/dp/B08166SLDF',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -517,7 +542,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amazon.com/dp/product/B0815XFSGK' url: 'https://www.amazon.com/dp/product/B0815XFSGK',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -525,7 +550,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amazon.com/dp/B08164VTWH' url: 'https://www.amazon.com/dp/B08164VTWH',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -533,7 +558,23 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amazon.com/dp/B0815Y8J9N' url: 'https://www.amazon.com/dp/B0815Y8J9N',
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08PHWJC8X&Quantity.1=1',
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.amazon.com/dp/B08PHWJC8X',
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08PDQJVD9&Quantity.1=1',
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.amazon.com/dp/B08PDQJVD9',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
@@ -541,7 +582,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NS4W2ZY&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NS4W2ZY&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NS4W2ZY' url: 'https://www.amazon.com/dp/B08NS4W2ZY',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -549,7 +590,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08MVC76SR' url: 'https://www.amazon.com/dp/B08MVC76SR',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -557,7 +598,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXXT7WN&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXXT7WN&Quantity.1=1',
model: 'nitro+', model: 'nitro+',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NXXT7WN' url: 'https://www.amazon.com/dp/B08NXXT7WN',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -565,7 +606,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYNLMR&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYNLMR&Quantity.1=1',
model: 'pulse', model: 'pulse',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NXYNLMR' url: 'https://www.amazon.com/dp/B08NXYNLMR',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -573,7 +614,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXVNMPQ&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXVNMPQ&Quantity.1=1',
model: 'nitro+', model: 'nitro+',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NXVNMPQ' url: 'https://www.amazon.com/dp/B08NXVNMPQ',
}, },
{ {
brand: 'xfx', brand: 'xfx',
@@ -581,7 +622,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08N6ZLX9B&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08N6ZLX9B&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08N6ZLX9B' url: 'https://www.amazon.com/dp/B08N6ZLX9B',
}, },
{ {
brand: 'xfx', brand: 'xfx',
@@ -589,7 +630,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
model: 'merc', model: 'merc',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NX14LV1' url: 'https://www.amazon.com/dp/B08NX14LV1',
}, },
{ {
brand: 'xfx', brand: 'xfx',
@@ -597,7 +638,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NN76VJD&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NN76VJD&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NN76VJD' url: 'https://www.amazon.com/dp/B08NN76VJD',
}, },
{ {
brand: 'xfx', brand: 'xfx',
@@ -605,7 +646,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P5YFZCY&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P5YFZCY&Quantity.1=1',
model: 'merc', model: 'merc',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08P5YFZCY' url: 'https://www.amazon.com/dp/B08P5YFZCY',
}, },
{ {
brand: 'powercolor', brand: 'powercolor',
@@ -613,7 +654,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MNZM5TK&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MNZM5TK&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08MNZM5TK' url: 'https://www.amazon.com/dp/B08MNZM5TK',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -621,7 +662,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08MVCLBWK' url: 'https://www.amazon.com/dp/B08MVCLBWK',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -629,7 +670,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXZSPMY&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXZSPMY&Quantity.1=1',
model: 'nitro+', model: 'nitro+',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NXZSPMY' url: 'https://www.amazon.com/dp/B08NXZSPMY',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
@@ -637,7 +678,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYBVDB&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYBVDB&Quantity.1=1',
model: 'pulse', model: 'pulse',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NXYBVDB' url: 'https://www.amazon.com/dp/B08NXYBVDB',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -645,7 +686,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWJ29NB&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWJ29NB&Quantity.1=1',
model: 'strix oc', model: 'strix oc',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NWJ29NB' url: 'https://www.amazon.com/dp/B08NWJ29NB',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -653,7 +694,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3YT3MY&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3YT3MY&Quantity.1=1',
model: 'tuf oc', model: 'tuf oc',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amazon.com/dp/B08P3YT3MY' url: 'https://www.amazon.com/dp/B08P3YT3MY',
}, },
{ {
brand: 'asus', brand: 'asus',
@@ -661,15 +702,21 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWHKGS9&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWHKGS9&Quantity.1=1',
model: 'strix lc', model: 'strix lc',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NWHKGS9' url: 'https://www.amazon.com/dp/B08NWHKGS9',
}, },
{ {
brand: 'sony', brand: 'sony',
cartUrl: cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1',
labels: {
inStock: {
container: '#productTitle',
text: ['playstation 5 console'],
},
},
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.amazon.com/dp/B08FC5L3RG' url: 'https://www.amazon.com/dp/B08FC5L3RG',
}, },
{ {
brand: 'sony', brand: 'sony',
@@ -677,19 +724,19 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC6MR62&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC6MR62&Quantity.1=1',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.amazon.com/dp/B08FC6MR62' url: 'https://www.amazon.com/dp/B08FC6MR62',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.amazon.com/dp/B08H75RTZ8' url: 'https://www.amazon.com/dp/B08H75RTZ8',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.amazon.com/dp/B08G9J44ZN' url: 'https://www.amazon.com/dp/B08G9J44ZN',
}, },
{ {
brand: 'corsair', brand: 'corsair',
@@ -697,7 +744,7 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
model: '750 platinum', model: '750 platinum',
series: 'sf', series: 'sf',
url: 'https://www.amazon.com/dp/B07M63H81H' url: 'https://www.amazon.com/dp/B07M63H81H',
}, },
{ {
brand: 'corsair', brand: 'corsair',
@@ -705,8 +752,8 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07F84FJ1G&Quantity.1=1', 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07F84FJ1G&Quantity.1=1',
model: '600 platinum', model: '600 platinum',
series: 'sf', series: 'sf',
url: 'https://www.amazon.com/dp/B07F84FJ1G' url: 'https://www.amazon.com/dp/B07F84FJ1G',
} },
], ],
name: 'amazon' name: 'amazon',
}; };
+16 -8
View File
@@ -5,19 +5,19 @@ export const AmdCa: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.btn-shopping-cart', container: '.btn-shopping-cart',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: '.product-page-description h4', container: '.product-page-description h4',
euroFormat: false euroFormat: false,
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amd.com/en/direct-buy/5458373400/ca' url: 'https://www.amd.com/en/direct-buy/5458373400/ca',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -25,7 +25,7 @@ export const AmdCa: Store = {
'https://www.amd.com/en/direct-buy/5458373400/ca?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458373400/ca?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amd.com/en/direct-buy/5458373400/ca' url: 'https://www.amd.com/en/direct-buy/5458373400/ca',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -33,8 +33,16 @@ export const AmdCa: Store = {
'https://www.amd.com/en/direct-buy/5458372800/ca?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458372800/ca?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5458372800/ca' url: 'https://www.amd.com/en/direct-buy/5458372800/ca',
} },
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5458372200/ca?add-to-cart=true',
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.amd.com/en/direct-buy/5458372200/ca',
},
], ],
name: 'amd-ca' name: 'amd-ca',
}; };
+14 -14
View File
@@ -5,23 +5,23 @@ export const AmdDe: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.btn-shopping-cart', container: '.btn-shopping-cart',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: '.product-page-description h4', container: '.product-page-description h4',
euroFormat: true euroFormat: true,
}, },
outOfStock: { outOfStock: {
container: '.btn-radeon', container: '.btn-radeon',
text: ['ausverkauft'] text: ['ausverkauft'],
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amd.com/de/direct-buy/5450881400/de' url: 'https://www.amd.com/de/direct-buy/5450881400/de',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -29,7 +29,7 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5450881400/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5450881400/de?add-to-cart=true',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amd.com/de/direct-buy/5450881400/de' url: 'https://www.amd.com/de/direct-buy/5450881400/de',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -37,7 +37,7 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5450881500/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5450881500/de?add-to-cart=true',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amd.com/de/direct-buy/5450881500/de' url: 'https://www.amd.com/de/direct-buy/5450881500/de',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -45,7 +45,7 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5450881600/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5450881600/de?add-to-cart=true',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amd.com/de/direct-buy/5450881600/de' url: 'https://www.amd.com/de/direct-buy/5450881600/de',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -53,7 +53,7 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5450881700/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5450881700/de?add-to-cart=true',
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', brand: 'amd',
@@ -61,7 +61,7 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5458374000/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5458374000/de?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amd.com/de/direct-buy/5458374000/de' url: 'https://www.amd.com/de/direct-buy/5458374000/de',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -69,7 +69,7 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5458374100/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5458374100/de?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amd.com/de/direct-buy/5458374100/de' url: 'https://www.amd.com/de/direct-buy/5458374100/de',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -77,8 +77,8 @@ export const AmdDe: Store = {
'https://www.amd.com/de/direct-buy/5458374200/de?add-to-cart=true', 'https://www.amd.com/de/direct-buy/5458374200/de?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6900xt', series: 'rx6900xt',
url: 'https://www.amd.com/de/direct-buy/5458374200/de' url: 'https://www.amd.com/de/direct-buy/5458374200/de',
} },
], ],
name: 'amd-de' name: 'amd-de',
}; };
+11 -11
View File
@@ -5,19 +5,19 @@ export const AmdIt: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.btn-shopping-cart', container: '.btn-shopping-cart',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: '.product-page-description h4', container: '.product-page-description h4',
euroFormat: true euroFormat: true,
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amd.com/en/direct-buy/5450881400/it' url: 'https://www.amd.com/en/direct-buy/5450881400/it',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -25,7 +25,7 @@ export const AmdIt: Store = {
'https://www.amd.com/en/direct-buy/5450881400/it?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881400/it?add-to-cart=true',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amd.com/en/direct-buy/5450881400/it' url: 'https://www.amd.com/en/direct-buy/5450881400/it',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -33,7 +33,7 @@ export const AmdIt: Store = {
'https://www.amd.com/en/direct-buy/5450881500/it?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881500/it?add-to-cart=true',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amd.com/en/direct-buy/5450881500/it' url: 'https://www.amd.com/en/direct-buy/5450881500/it',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -41,7 +41,7 @@ export const AmdIt: Store = {
'https://www.amd.com/en/direct-buy/5450881600/it?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881600/it?add-to-cart=true',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amd.com/en/direct-buy/5450881600/it' url: 'https://www.amd.com/en/direct-buy/5450881600/it',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -49,7 +49,7 @@ export const AmdIt: Store = {
'https://www.amd.com/en/direct-buy/5450881700/it?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881700/it?add-to-cart=true',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amd.com/en/direct-buy/5450881700/it' url: 'https://www.amd.com/en/direct-buy/5450881700/it',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -57,8 +57,8 @@ export const AmdIt: Store = {
'https://www.amd.com/en/direct-buy/5458374100/it?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458374100/it?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5458374100/it' url: 'https://www.amd.com/en/direct-buy/5458374100/it',
} },
], ],
name: 'amd-it' name: 'amd-it',
}; };
+18 -18
View File
@@ -6,34 +6,34 @@ export const AmdUk: Store = {
inStock: [ inStock: [
{ {
container: '.btn-shopping-cart', container: '.btn-shopping-cart',
text: ['add to cart'] text: ['add to cart'],
}, },
{ {
container: '.btn-radeon', container: '.btn-radeon',
text: ['add to cart'] text: ['add to cart'],
} },
], ],
maxPrice: { maxPrice: {
container: '.product-page-description h4', container: '.product-page-description h4',
euroFormat: false euroFormat: false,
}, },
outOfStock: [ outOfStock: [
{ {
container: '.product-out-of-stock', container: '.product-out-of-stock',
text: ['out of stock'] text: ['out of stock'],
}, },
{ {
container: '.btn-radeon', container: '.btn-radeon',
text: ['sold out'] text: ['sold out'],
} },
] ],
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amd.com/en/direct-buy/5450881400/gb' url: 'https://www.amd.com/en/direct-buy/5450881400/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -41,7 +41,7 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5450881400/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881400/gb?add-to-cart=true',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amd.com/en/direct-buy/5450881400/gb' url: 'https://www.amd.com/en/direct-buy/5450881400/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -49,7 +49,7 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5450881500/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881500/gb?add-to-cart=true',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amd.com/en/direct-buy/5450881500/gb' url: 'https://www.amd.com/en/direct-buy/5450881500/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -57,7 +57,7 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5450881600/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881600/gb?add-to-cart=true',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amd.com/en/direct-buy/5450881600/gb' url: 'https://www.amd.com/en/direct-buy/5450881600/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -65,7 +65,7 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5450881700/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881700/gb?add-to-cart=true',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amd.com/en/direct-buy/5450881700/gb' url: 'https://www.amd.com/en/direct-buy/5450881700/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -73,7 +73,7 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5458374000/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458374000/gb?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amd.com/en/direct-buy/5458374000/gb' url: 'https://www.amd.com/en/direct-buy/5458374000/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -81,7 +81,7 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5458374100/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458374100/gb?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5458374100/gb' url: 'https://www.amd.com/en/direct-buy/5458374100/gb',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -89,8 +89,8 @@ export const AmdUk: Store = {
'https://www.amd.com/en/direct-buy/5458374200/gb?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458374200/gb?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6900xt', series: 'rx6900xt',
url: 'https://www.amd.com/en/direct-buy/5458374200/gb' url: 'https://www.amd.com/en/direct-buy/5458374200/gb',
} },
], ],
name: 'amd-uk' name: 'amd-uk',
}; };
+13 -13
View File
@@ -5,19 +5,19 @@ export const Amd: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.btn-shopping-cart', container: '.btn-shopping-cart',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: '.product-page-description h4', container: '.product-page-description h4',
euroFormat: false euroFormat: false,
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.amd.com/en/direct-buy/5450881400/us' url: 'https://www.amd.com/en/direct-buy/5450881400/us',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -25,7 +25,7 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5450881400/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881400/us?add-to-cart=true',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: 'https://www.amd.com/en/direct-buy/5450881400/us' url: 'https://www.amd.com/en/direct-buy/5450881400/us',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -33,7 +33,7 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5450881500/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881500/us?add-to-cart=true',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: 'https://www.amd.com/en/direct-buy/5450881500/us' url: 'https://www.amd.com/en/direct-buy/5450881500/us',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -41,7 +41,7 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5450881600/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881600/us?add-to-cart=true',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: 'https://www.amd.com/en/direct-buy/5450881600/us' url: 'https://www.amd.com/en/direct-buy/5450881600/us',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -49,7 +49,7 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5450881700/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5450881700/us?add-to-cart=true',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: 'https://www.amd.com/en/direct-buy/5450881700/us' url: 'https://www.amd.com/en/direct-buy/5450881700/us',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -57,7 +57,7 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5458372200/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458372200/us?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6900xt', series: 'rx6900xt',
url: 'https://www.amd.com/en/direct-buy/5458372200/us' url: 'https://www.amd.com/en/direct-buy/5458372200/us',
}, },
{ {
brand: 'amd', brand: 'amd',
@@ -65,7 +65,7 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5458372800/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458372800/us?add-to-cart=true',
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', brand: 'amd',
@@ -73,8 +73,8 @@ export const Amd: Store = {
'https://www.amd.com/en/direct-buy/5458373400/us?add-to-cart=true', 'https://www.amd.com/en/direct-buy/5458373400/us?add-to-cart=true',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: 'https://www.amd.com/en/direct-buy/5458373400/us' url: 'https://www.amd.com/en/direct-buy/5458373400/us',
} },
], ],
name: 'amd' name: 'amd',
}; };
+9 -9
View File
@@ -5,16 +5,16 @@ export const AntOnline: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.uk-button', container: '.uk-button',
text: ['Add to Cart'] text: ['Add to Cart'],
}, },
maxPrice: { maxPrice: {
container: '.cPrice', container: '.cPrice',
euroFormat: false euroFormat: false,
}, },
outOfStock: { outOfStock: {
container: '.priceView-price .priceView-hero-price span', container: '.priceView-price .priceView-hero-price span',
text: ['Sold Out'] text: ['Sold Out'],
} },
}, },
links: [ links: [
{ {
@@ -22,22 +22,22 @@ export const AntOnline: Store = {
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: url:
'https://www.antonline.com/Sony/Electronics/Gaming_Devices/Gaming_Consoles/1409507' 'https://www.antonline.com/Sony/Electronics/Gaming_Devices/Gaming_Consoles/1409507',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: url:
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1414487' 'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1414487',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: url:
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1409527' 'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1409527',
} },
], ],
name: 'antonline' name: 'antonline',
}; };
+8 -8
View File
@@ -5,15 +5,15 @@ export const ArgosIE: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.btnbuyreserve', container: '.btnbuyreserve',
text: ['buy or reserve'] text: ['buy or reserve'],
}, },
maxPrice: { maxPrice: {
container: '.price' container: '.price',
}, },
outOfStock: { outOfStock: {
container: '#subCopy', container: '#subCopy',
text: ["We're working hard to get more stock."] text: ["We're working hard to get more stock."],
} },
}, },
links: [ links: [
{ {
@@ -21,15 +21,15 @@ export const ArgosIE: Store = {
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: url:
'http://www.argos.ie/static/Product/partNumber/8448262/Trail/searchtext%3EXBOX+SERIES+X.htm' 'http://www.argos.ie/static/Product/partNumber/8448262/Trail/searchtext%3EXBOX+SERIES+X.htm',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: url:
'http://www.argos.ie/static/Product/partNumber/8349000/Trail/searchtext%3EPS5+CONSOLE.htm' 'http://www.argos.ie/static/Product/partNumber/8349000/Trail/searchtext%3EPS5+CONSOLE.htm',
} },
], ],
name: 'argos-ie' name: 'argos-ie',
}; };
+10 -10
View File
@@ -5,43 +5,43 @@ export const Argos: Store = {
labels: { labels: {
inStock: { inStock: {
container: 'button[data-test="add-to-trolley-button-button"', container: 'button[data-test="add-to-trolley-button-button"',
text: ['to trolley'] text: ['to trolley'],
}, },
maxPrice: { maxPrice: {
container: 'li[itemprop="price"]' container: 'li[itemprop="price"]',
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://www.argos.co.uk/product/5718469' url: 'https://www.argos.co.uk/product/5718469',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: 'https://www.argos.co.uk/product/8349000' url: 'https://www.argos.co.uk/product/8349000',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: 'https://www.argos.co.uk/product/8349024' url: 'https://www.argos.co.uk/product/8349024',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: 'https://www.argos.co.uk/product/8448262' url: 'https://www.argos.co.uk/product/8448262',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: 'https://www.argos.co.uk/product/8448248' url: 'https://www.argos.co.uk/product/8448248',
} },
], ],
name: 'argos' name: 'argos',
}; };
+20 -15
View File
@@ -6,16 +6,16 @@ export const Aria: Store = {
labels: { labels: {
inStock: { inStock: {
container: '#addQuantity', container: '#addQuantity',
text: ['add to shopping basket'] text: ['add to shopping basket'],
}, },
maxPrice: { maxPrice: {
container: '.priceBig', container: '.priceBig',
euroFormat: false // Note: Aria uses non-euroFromat as price seperator euroFormat: false, // Note: Aria uses non-euroFromat as price seperator
}, },
outOfStock: { outOfStock: {
container: '.fBox', container: '.fBox',
text: ['out of stock', 'there is currently no stock of this item'] text: ['out of stock', 'there is currently no stock of this item'],
} },
}, },
links: [ links: [
{ {
@@ -23,45 +23,50 @@ export const Aria: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+2060+Super/Gigabyte+NVIDIA+GeForce+RTX+2060+SUPER+8GB+WINDFORCE+OC+Turing+Graphics+Card+%2B+RTX+Bundle%21?productId=71541' 'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+2060+Super/Gigabyte+NVIDIA+GeForce+RTX+2060+SUPER+8GB+WINDFORCE+OC+Turing+Graphics+Card+%2B+RTX+Bundle%21?productId=71541',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: url:
'https://www.aria.co.uk/Products/Components/Processors/AMD+CPUs/Ryzen+9+-+Socket+AM4/AMD+Ryzen+9+5950X+16+Core+AM4+CPU%2FProcessor?productId=72868' 'https://www.aria.co.uk/Products/Components/Processors/AMD+CPUs/Ryzen+9+-+Socket+AM4/AMD+Ryzen+9+5950X+16+Core+AM4+CPU%2FProcessor?productId=72868',
} },
], ],
linksBuilder: { linksBuilder: {
builder: getProductLinksBuilder({ builder: getProductLinksBuilder({
productsSelector: '#productListingInner .listTable .listTableTr', productsSelector: '#productListingInner .listTable .listTableTr',
sitePrefix: 'https://www.aria.co.uk', sitePrefix: 'https://www.aria.co.uk',
titleSelector: 'strong > a[href]' titleSelector: 'strong > a[href]',
}), }),
urls: [ urls: [
{
series: '3060',
url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060',
},
{ {
series: '3060ti', series: '3060ti',
url: url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti' 'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti',
}, },
{ {
series: '3070', series: '3070',
url: url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3070' 'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3070',
}, },
{ {
series: '3080', series: '3080',
url: url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3080' 'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3080',
}, },
{ {
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',
} },
] ],
}, },
name: 'aria', name: 'aria',
waitUntil: 'domcontentloaded' waitUntil: 'domcontentloaded',
}; };
+23 -23
View File
@@ -5,16 +5,16 @@ export const Arlt: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.articleDesc .shippingtext', container: '.articleDesc .shippingtext',
text: ['auf Lager', 'Lieferzeit 2-3 Werktage', 'Ware im Zulauf'] text: ['auf Lager', 'Lieferzeit 2-3 Werktage', 'Ware im Zulauf'],
}, },
maxPrice: { maxPrice: {
container: '.articleprice .price', container: '.articleprice .price',
euroFormat: true euroFormat: true,
}, },
outOfStock: { outOfStock: {
container: '.articleDesc .shippingtext', container: '.articleDesc .shippingtext',
text: ['Neuer Artikel in Kürze verfügbar', 'Liefertermin unbekannt'] text: ['Neuer Artikel in Kürze verfügbar', 'Liefertermin unbekannt'],
} },
}, },
links: [ links: [
{ {
@@ -22,120 +22,120 @@ export const Arlt: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.arlt.com/ASUS-GeForce-GTX1650-Super-TUF-GTX1650S-O4G-GAMING.html' 'https://www.arlt.com/ASUS-GeForce-GTX1650-Super-TUF-GTX1650S-O4G-GAMING.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-Dual-GeForce-RTX-3070.html' 'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-Dual-GeForce-RTX-3070.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'dual oc', model: 'dual oc',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/ASUS-Dual-GeForce-RTX-3070-OC.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/ASUS-Dual-GeForce-RTX-3070-OC.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3070-OC.html' 'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3070-OC.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/ASUS-ROG-Strix-GeForce-RTX-3070.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/ASUS-ROG-Strix-GeForce-RTX-3070.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/MSI-GeForce-RTX-3070-Ventus-2X-OC.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/MSI-GeForce-RTX-3070-Ventus-2X-OC.html',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phoenix', model: 'phoenix',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/Gainward-GeForce-RTX-3070-Phoenix.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/Gainward-GeForce-RTX-3070-Phoenix.html',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phoenix gs', model: 'phoenix gs',
series: '3070', series: '3070',
url: url:
'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3070-Phoenix-GS.html' 'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3070-Phoenix-GS.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3080-OC.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3080-OC.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3080/MSI-GeForce-RTX-3080-Ventus-3X-OC.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3080/MSI-GeForce-RTX-3080-Ventus-3X-OC.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-TUF-Gaming-GeForce-RTX-3090-OC.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-TUF-Gaming-GeForce-RTX-3090-OC.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-ROG-Strix-GeForce-RTX-3090-OC.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-ROG-Strix-GeForce-RTX-3090-OC.html',
}, },
{ {
brand: 'gainward', brand: 'gainward',
model: 'phoenix gs', model: 'phoenix gs',
series: '3090', series: '3090',
url: url:
'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3090-Phoenix-GS.html' 'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3090-Phoenix-GS.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-5-5600X-boxed.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-5-5600X-boxed.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-7-5800X-boxed.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-7-5800X-boxed.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5900X-boxed.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5900X-boxed.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: url:
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5950X-boxed.html' 'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5950X-boxed.html',
} },
], ],
name: 'arlt' name: 'arlt',
}; };
+13 -13
View File
@@ -5,8 +5,8 @@ export const AsusDe: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.buybox--button', container: '.buybox--button',
text: ['in den warenkorb'] text: ['in den warenkorb'],
} },
}, },
links: [ links: [
{ {
@@ -14,64 +14,64 @@ export const AsusDe: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2766/asus-rog-strix-rtx2060s-o8g-evo-v2-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2766/asus-rog-strix-rtx2060s-o8g-evo-v2-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2828/asus-rog-strix-rtx3080-10g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2828/asus-rog-strix-rtx3080-10g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2829/asus-rog-strix-rtx3080-o10g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2829/asus-rog-strix-rtx3080-o10g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2824/asus-tuf-rtx3080-10g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2824/asus-tuf-rtx3080-10g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2825/asus-tuf-rtx3080-o10g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2825/asus-tuf-rtx3080-o10g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3090', series: '3090',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2826/asus-rog-strix-rtx3090-24g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2826/asus-rog-strix-rtx3090-24g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2827/asus-rog-strix-rtx3090-o24g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2827/asus-rog-strix-rtx3090-o24g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2822/asus-tuf-rtx3090-24g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2822/asus-tuf-rtx3090-24g-gaming',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: url:
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2823/asus-tuf-rtx3090-o24g-gaming' 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2823/asus-tuf-rtx3090-o24g-gaming',
} },
], ],
name: 'asus-de' name: 'asus-de',
}; };
+126 -26
View File
@@ -7,73 +7,173 @@ export const Asus: Store = {
labels: { labels: {
inStock: { inStock: {
container: '#item_add_cart', container: '#item_add_cart',
text: ['add to cart'] text: ['add to cart'],
} },
outOfStock: {
container: '#off_sale',
text: ['sold out'],
},
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
itemNumber: '202007AM020000005', itemNumber: '202006AM260000003',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: 'https://store.asus.com/us/item/202007AM020000005' url: 'https://store.asus.com/us/item/202006AM260000003',
}, },
{ {
brand: 'asus', brand: 'asus',
itemNumber: '202009AM160000001', itemNumber: '202012AM030000004',
model: 'tuf oc',
series: '3060ti',
url: 'https://store.asus.com/us/item/202012AM030000004',
},
{
brand: 'asus',
itemNumber: '202012AM030000003',
model: 'dual',
series: '3060ti',
url: 'https://store.asus.com/us/item/202012AM030000003',
},
{
brand: 'asus',
itemNumber: '202012AM030000005',
model: 'strix oc',
series: '3060ti',
url: 'https://store.asus.com/us/item/202012AM030000005',
},
{
brand: 'asus',
itemNumber: '202012AM030000002',
model: 'ko',
series: '3060ti',
url: 'https://store.asus.com/us/item/202012AM030000002',
},
{
brand: 'asus',
itemNumber: '202010AM310000002',
model: 'tuf oc',
series: '3070',
url: 'https://store.asus.com/us/item/202010AM310000002',
},
{
brand: 'asus',
itemNumber: '202011AM240000001',
model: 'dual',
series: '3070',
url: 'https://store.asus.com/us/item/202011AM240000001',
},
{
brand: 'asus',
itemNumber: '202010AM310000001',
model: 'strix',
series: '3070',
url: 'https://store.asus.com/us/item/202010AM310000001',
},
{
brand: 'asus',
itemNumber: '202011AM070000002',
model: 'ko oc',
series: '3070',
url: 'https://store.asus.com/us/item/202011AM070000002',
},
{
brand: 'asus',
itemNumber: '202011AM070000003',
model: 'dual',
series: '3070',
url: 'https://store.asus.com/us/item/202011AM070000003',
},
{
brand: 'asus',
itemNumber: '202101AM070000001',
model: 'strix oc',
series: '3070',
url: 'https://store.asus.com/us/item/202101AM070000001',
},
{
brand: 'asus',
itemNumber: '202012AM160000002',
model: 'strix',
series: '3080',
url: 'https://store.asus.com/us/item/202012AM160000002',
},
{
brand: 'asus',
itemNumber: '202011AM190000001',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: 'https://store.asus.com/us/item/202009AM160000001' url: 'https://store.asus.com/us/item/202011AM190000001',
},
{
brand: 'asus',
itemNumber: '202012AM220000002',
model: 'strix oc',
series: '3080',
url: 'https://store.asus.com/us/item/202012AM220000002',
}, },
{ {
brand: 'asus', brand: 'asus',
itemNumber: '202009AM150000004', itemNumber: '202009AM150000004',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: 'https://store.asus.com/us/item/202009AM150000004' url: 'https://store.asus.com/us/item/202009AM150000004',
},
{
brand: 'asus',
itemNumber: '202101AM070000002',
model: 'ekwb',
series: '3080',
url: 'https://store.asus.com/us/item/202101AM070000002',
},
{
brand: 'asus',
itemNumber: '202011AM190000002',
model: 'tuf oc',
series: '3090',
url: 'https://store.asus.com/us/item/202011AM190000002',
}, },
{ {
brand: 'asus', brand: 'asus',
itemNumber: '202009AM150000003', itemNumber: '202009AM150000003',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: 'https://store.asus.com/us/item/202009AM150000003' url: 'https://store.asus.com/us/item/202009AM150000003',
}, },
{ {
brand: 'asus', brand: 'asus',
itemNumber: '202009AM150000001', itemNumber: '202010AM310000004',
model: 'tuf oc',
series: '3090',
url: 'https://store.asus.com/us/item/202009AM150000001'
},
{
brand: 'asus',
itemNumber: '202009AM290000002',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3090',
url: 'https://store.asus.com/us/item/202009AM290000002' url: 'https://store.asus.com/us/item/202010AM310000004',
},
{
brand: 'asus',
itemNumber: '202012AM220000001',
model: 'strix oc',
series: '3090',
url: 'https://store.asus.com/us/item/202012AM220000001',
}, },
{ {
brand: 'asus', brand: 'asus',
itemNumber: '202011AM200000003', itemNumber: '202011AM200000003',
model: 'crosshair viii', model: 'crosshair viii',
series: 'darkhero', series: 'darkhero',
url: 'https://store.asus.com/us/item/202011AM200000003' url: 'https://store.asus.com/us/item/202011AM200000003',
} },
], ],
name: 'asus', name: 'asus',
realTimeInventoryLookup: async (itemNumber: string) => { realTimeInventoryLookup: async (itemNumber: string) => {
const request_url = const request_url = 'https://store.asus.com/us/category/get_real_time_data';
'https://store.asus.com/us/category/get_real_time_data';
const response = await fetch(request_url, { const response = await fetch(request_url, {
body: 'sm_seq_list%5B%5D=' + itemNumber, body: 'sm_seq_list%5B%5D=' + itemNumber,
headers: { headers: {
'accept-language': 'en-US,en;q=0.9', 'accept-language': 'en-US,en;q=0.9',
'cache-control': 'no-cache', 'cache-control': 'no-cache',
'content-type': 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
'application/x-www-form-urlencoded; charset=UTF-8'
}, },
method: 'POST' method: 'POST',
}); });
const response_json = await response.json(); const response_json = await response.json();
@@ -86,5 +186,5 @@ export const Asus: Store = {
return false; return false;
}, },
successStatusCodes: [[0, 399], 404] successStatusCodes: [[0, 399], 404],
}; };
+19 -19
View File
@@ -6,16 +6,16 @@ export const Awd: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.vs-stock .ty-qty-in-stock', container: '.vs-stock .ty-qty-in-stock',
text: ['item(s)'] text: ['item(s)'],
}, },
maxPrice: { maxPrice: {
container: '.ty-price', container: '.ty-price',
euroFormat: false // Note: Awd uses non-euroFromat as price seperator euroFormat: false, // Note: Awd uses non-euroFromat as price seperator
}, },
outOfStock: { outOfStock: {
container: '.vs-stock.ty-float-left', container: '.vs-stock.ty-float-left',
text: ['Out-of-stock'] text: ['Out-of-stock'],
} },
}, },
links: [ links: [
{ {
@@ -23,71 +23,71 @@ export const Awd: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.awd-it.co.uk/asus-nvidia-geforce-gt-710-silent-low-profile-2gb-gddr5-graphics-card-pci-e.html' 'https://www.awd-it.co.uk/asus-nvidia-geforce-gt-710-silent-low-profile-2gb-gddr5-graphics-card-pci-e.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url:
'https://www.awd-it.co.uk/amd-ryzen-5-5600x-cpu-six-core-3.7ghz-processor-socket-am4-retail.html' 'https://www.awd-it.co.uk/amd-ryzen-5-5600x-cpu-six-core-3.7ghz-processor-socket-am4-retail.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: url:
'https://www.awd-it.co.uk/amd-ryzen-7-5800x-cpu-eight-core-3.8ghz-processor-socket-am4-retail.html' 'https://www.awd-it.co.uk/amd-ryzen-7-5800x-cpu-eight-core-3.8ghz-processor-socket-am4-retail.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: url:
'https://www.awd-it.co.uk/amd-ryzen-9-5900x-cpu-twelve-core-3.7ghz-processor-socket-am4-retail.html' 'https://www.awd-it.co.uk/amd-ryzen-9-5900x-cpu-twelve-core-3.7ghz-processor-socket-am4-retail.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: url:
'https://www.awd-it.co.uk/amd-ryzen-9-5950x-sixteen-core-socket-am4-3.4ghz-processor.html' 'https://www.awd-it.co.uk/amd-ryzen-9-5950x-sixteen-core-socket-am4-3.4ghz-processor.html',
} },
], ],
linksBuilder: { linksBuilder: {
builder: getProductLinksBuilder({ builder: getProductLinksBuilder({
productsSelector: '.grid-list .ty-grid-list__item', productsSelector: '.grid-list .ty-grid-list__item',
sitePrefix: 'https://www.awd-it.co.uk', sitePrefix: 'https://www.awd-it.co.uk',
titleSelector: '.product-title' titleSelector: '.product-title',
}), }),
urls: [ urls: [
{ {
series: 'rx6800', series: 'rx6800',
url: url:
'https://www.awd-it.co.uk/components/graphics-cards/ati/amd-radeon-6800-6800xt.html' 'https://www.awd-it.co.uk/components/graphics-cards/ati/amd-radeon-6800-6800xt.html',
}, },
{ {
series: '3060ti', series: '3060ti',
url: url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html' 'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html',
}, },
{ {
series: '3070', series: '3070',
url: url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3070.html' 'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3070.html',
}, },
{ {
series: '3080', series: '3080',
url: url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3080.html' 'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3080.html',
}, },
{ {
series: '3090', series: '3090',
url: url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3090.html' 'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3090.html',
} },
] ],
}, },
name: 'awd', name: 'awd',
waitUntil: 'domcontentloaded' waitUntil: 'domcontentloaded',
}; };
+58 -30
View File
@@ -5,16 +5,16 @@ export const Azerty: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.orderdelay', container: '.orderdelay',
text: ['Volgende werkdag in huis', '1 werkdag', '2-3 werkdagen'] text: ['Volgende werkdag in huis', '1 werkdag', '2-3 werkdagen'],
}, },
maxPrice: { maxPrice: {
container: '.mod_article .price', container: '.mod_article .price',
euroFormat: true euroFormat: true,
}, },
outOfStock: { outOfStock: {
container: '.orderdelay', container: '.orderdelay',
text: ['Onbekend', 'meer dan 10 werkdagen', 'Pre-order'] text: ['Onbekend', 'meer dan 10 werkdagen', 'Pre-order'],
} },
}, },
links: [ links: [
{ {
@@ -22,169 +22,197 @@ export const Azerty: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://azerty.nl/product/gigabyte/3756757/geforce-rtx-2060-oc-6g-grafische-kaart-geforce-rtx-2060' 'https://azerty.nl/product/gigabyte/3756757/geforce-rtx-2060-oc-6g-grafische-kaart-geforce-rtx-2060',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus xtreme', model: 'aorus xtreme',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/gigabyte/4349658/aorus-geforce-rtx-3080-xtreme-10g-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/gigabyte/4349658/aorus-geforce-rtx-3080-xtreme-10g-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/msi/4346262/geforce-rtx-3080-ventus-3x-10g-oc-grafische-kaart-rtx-3080' 'https://azerty.nl/product/msi/4346262/geforce-rtx-3080-ventus-3x-10g-oc-grafische-kaart-rtx-3080',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/asus/4346679/tuf-gaming-geforce-rtx-3080-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/asus/4346679/tuf-gaming-geforce-rtx-3080-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/msi/4346263/geforce-rtx-3080-gaming-x-trio-10g-grafische-kaart-rtx-3080' 'https://azerty.nl/product/msi/4346263/geforce-rtx-3080-gaming-x-trio-10g-grafische-kaart-rtx-3080',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/asus/4348176/tuf-gaming-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/asus/4348176/tuf-gaming-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/asus/4348174/rog-strix-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/asus/4348174/rog-strix-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/zotac/4352301/gaming-geforce-rtx-3080-trinity-oc-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/zotac/4352301/gaming-geforce-rtx-3080-trinity-oc-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/gigabyte/4349651/aorus-geforce-rtx-3080-master-10g-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/gigabyte/4349651/aorus-geforce-rtx-3080-master-10g-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: url:
'https://azerty.nl/product/pny/4342269/geforce-rtx-3080-xlr8-gaming-revel-epic-x-rgb-triple-fan-gaming-edition-grafische-kaart-gf-rtx-3080' 'https://azerty.nl/product/pny/4342269/geforce-rtx-3080-xlr8-gaming-revel-epic-x-rgb-triple-fan-gaming-edition-grafische-kaart-gf-rtx-3080',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/asus/4363892/rog-strix-gaming-geforce-rtx-3070-o8g-videokaart-8-gb-gddr6' 'https://azerty.nl/product/asus/4363892/rog-strix-gaming-geforce-rtx-3070-o8g-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/asus/4373096/rog-strix-gaming-geforce-rtx-3070-8g-videokaart-8-gb-gddr6' 'https://azerty.nl/product/asus/4373096/rog-strix-gaming-geforce-rtx-3070-8g-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/asus/4363910/tuf-gaming-geforce-rtx-3070-oc-videokaart-8-gb-gddr6' 'https://azerty.nl/product/asus/4363910/tuf-gaming-geforce-rtx-3070-oc-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/asus/4373099/tuf-gaming-geforce-rtx-3070-videokaart-8-gb-gddr6' 'https://azerty.nl/product/asus/4373099/tuf-gaming-geforce-rtx-3070-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/inno3d/4369725/geforce-rtx-3070-ichill-x4-videokaart-8-gb-ddr6' 'https://azerty.nl/product/inno3d/4369725/geforce-rtx-3070-ichill-x4-videokaart-8-gb-ddr6',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/inno3d/4369726/geforce-rtx-3070-ichill-x3-videokaart-8-gb-ddr6' 'https://azerty.nl/product/inno3d/4369726/geforce-rtx-3070-ichill-x3-videokaart-8-gb-ddr6',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/msi/4374747/geforce-rtx-3070-ventus-3x-oc-videokaart-8-gb-gddr6' 'https://azerty.nl/product/msi/4374747/geforce-rtx-3070-ventus-3x-oc-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/msi/4365398/geforce-rtx-3070-gaming-x-trio-videokaart-8-gb-gddr6' 'https://azerty.nl/product/msi/4365398/geforce-rtx-3070-gaming-x-trio-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'dual fan', model: 'dual fan',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/pny/4342270/uprising-dual-fan-geforce-rtx-3070' 'https://azerty.nl/product/pny/4342270/uprising-dual-fan-geforce-rtx-3070',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/pny/4342271/epic-x-rgb-geforce-rtx-3070-triple-fan-gaming-edition-xlr8--videokaart-8-gb-gddr6x' 'https://azerty.nl/product/pny/4342271/epic-x-rgb-geforce-rtx-3070-triple-fan-gaming-edition-xlr8--videokaart-8-gb-gddr6x',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/evga/4377247/geforce-rtx-3070-ftw3-videokaart-8-gb-gddr6' 'https://azerty.nl/product/evga/4377247/geforce-rtx-3070-ftw3-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/evga/4377248/xc3-geforce-rtx-3070-xc3-videokaart-8-gb-gddr6' 'https://azerty.nl/product/evga/4377248/xc3-geforce-rtx-3070-xc3-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/evga/4377250/ftw3-ultra-geforce-rtx-3070-videokaart-8-gb-gddr6' 'https://azerty.nl/product/evga/4377250/ftw3-ultra-geforce-rtx-3070-videokaart-8-gb-gddr6',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3070', series: '3070',
url: url:
'https://azerty.nl/product/evga/4377252/xc3-black-geforce-rtx-3070-videokaart-8-gb-gddr6' 'https://azerty.nl/product/evga/4377252/xc3-black-geforce-rtx-3070-videokaart-8-gb-gddr6',
} },
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://azerty.nl/product/amd/4368019/ryzen-5-5600x-processor-3-7-ghz-4-6-ghz-',
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://azerty.nl/product/amd/4368018/ryzen-7-5800x-processor-3-8-ghz-4-7-ghz-',
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://azerty.nl/product/amd/4368017/ryzen-9-5900x-processor-3-7-ghz-4-8-ghz-',
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://azerty.nl/product/amd/4368016/ryzen-9-5950x-processor-3-4-ghz-4-9-ghz-',
},
], ],
name: 'azerty' name: 'azerty',
}; };
+137 -42
View File
@@ -6,12 +6,16 @@ export const BAndH: Store = {
labels: { labels: {
inStock: { inStock: {
container: 'div[data-selenium="addToCartSection"]', container: 'div[data-selenium="addToCartSection"]',
text: ['add to cart'] text: ['add to cart'],
}, },
maxPrice: { maxPrice: {
container: 'div[data-selenium="pricingPrice"]', container: 'div[data-selenium="pricingPrice"]',
euroFormat: false euroFormat: false,
} },
outOfStock: {
container: 'button[data-selenium="notifyAvailabilityButton"]',
text: ['notify when available'],
},
}, },
links: [ links: [
{ {
@@ -19,28 +23,63 @@ export const BAndH: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.bhphotovideo.com/c/product/1452927-REG/evga_06g_p4_2063_kr_geforce_rtx_2060_xc.html' 'https://www.bhphotovideo.com/c/product/1452927-REG/evga_06g_p4_2063_kr_geforce_rtx_2060_xc.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'dual', model: 'dual',
series: '3070', series: '3070',
url: url:
'https://www.bhphotovideo.com/c/product/1602755-REG/asus_dualrtx30708g_geforce_rtx_3070_8g.html' 'https://www.bhphotovideo.com/c/product/1602755-REG/asus_dualrtx30708g_geforce_rtx_3070_8g.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'dual fan', model: 'dual fan',
series: '3070', series: '3070',
url: url:
'https://www.bhphotovideo.com/c/product/1595984-REG/pny_technologies_vcg30708tfxppb_geforce_rtx_3070_epic_x.html' 'https://www.bhphotovideo.com/c/product/1595984-REG/pny_technologies_vcg30708tfxppb_geforce_rtx_3070_epic_x.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3070', series: '3070',
url: url:
'https://www.bhphotovideo.com/c/product/1602756-REG/asus_strixrtx3070o8_rog_strix_geforce_rtx.html' 'https://www.bhphotovideo.com/c/product/1602756-REG/asus_strixrtx3070o8_rog_strix_geforce_rtx.html',
},
{
brand: 'asus',
model: 'dual oc',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1603974-REG/asus_dualrtx3070o8g_dual_geforce_rtx_3070.html',
},
{
brand: 'asus',
model: 'ko oc',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1606745-REG/asus_90yv0fq2_m0aa00_ko_nvidia_geforce_rtx.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1606746-REG/asus_tuf_rtx3070_o8g_gaming_tuf_gaming_nvidia_geforce.html',
},
{
brand: 'asus',
model: 'ekwb',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1614305-REG/asus_rtx3070_8g_ek_ekwb_geforce_rtx_3070.html',
},
{
brand: 'asus',
model: 'strix white',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1614300-REG/asus_rog_strix_rtx3070_o8g_white_rog_strix_geforce_rtx.html',
}, },
// TUF was removed from BH, not sure why so commenting out listing for now // TUF was removed from BH, not sure why so commenting out listing for now
// { // {
@@ -54,56 +93,91 @@ export const BAndH: Store = {
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: url:
'https://www.bhphotovideo.com/c/product/1593333-REG/gigabyte_gv_n3080gaming_oc_10gd_geforce_rtx_3080_gaming.html' 'https://www.bhphotovideo.com/c/product/1593333-REG/gigabyte_gv_n3080gaming_oc_10gd_geforce_rtx_3080_gaming.html',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: url:
'https://www.bhphotovideo.com/c/product/1592969-REG/zotac_zt_a30800d_10p_gaming_geforce_rtx_3080.html' 'https://www.bhphotovideo.com/c/product/1592969-REG/zotac_zt_a30800d_10p_gaming_geforce_rtx_3080.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3080',
url:
'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html',
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url:
'https://www.bhphotovideo.com/c/product/1603617-REG/asus_rog_strix_rtx3080_o10g_gaming_rog_strix_geforce_rtx.html',
},
{
brand: 'asus',
model: 'strix white',
series: '3080',
url:
'https://www.bhphotovideo.com/c/product/1614301-REG/asus_rog_strix_rtx3080_o10g_white_rog_strix_geforce_rtx.html',
},
{
brand: 'asus',
model: 'ekwb',
series: '3080',
url:
'https://www.bhphotovideo.com/c/product/1614303-REG/asus_rtx3080_10g_ek_ekwb_geforce_rtx_3080.html',
},
{
brand: 'asus',
model: 'ko oc',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1609756-REG/asus_ko_rtx3060ti_o8g_gaming_ko_geforce_rtx_3060.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1607025-REG/asus_tuf_rtx3060ti_o8g_gaming_geforce_rtx_3060_ti.html',
}, },
// TUF was removed from BH, not sure why so commenting out listing for now
// {
// brand: 'asus',
// model: 'tuf oc',
// series: '3080',
// url: 'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html'
// },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bhphotovideo.com/c/product/1606948-REG/gigabyte_gv_n306teagle_oc_8gd_rtx_3060_ti_eagle.html' 'https://www.bhphotovideo.com/c/product/1606948-REG/gigabyte_gv_n306teagle_oc_8gd_rtx_3060_ti_eagle.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle', model: 'eagle',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bhphotovideo.com/c/product/1606949-REG/gigabyte_gv_n306teagle_8gd_rtx_3060_ti_eagle.html' 'https://www.bhphotovideo.com/c/product/1606949-REG/gigabyte_gv_n306teagle_8gd_rtx_3060_ti_eagle.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus', model: 'aorus',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bhphotovideo.com/c/product/1606945-REG/gigabyte_gv_n306taorus_m_8gd_aorus_rtx_3060_ti.html' 'https://www.bhphotovideo.com/c/product/1606945-REG/gigabyte_gv_n306taorus_m_8gd_aorus_rtx_3060_ti.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bhphotovideo.com/c/product/1606947-REG/gigabyte_gv_n306tgaming_oc_8gd_rtx_3060_ti_gaming.html' 'https://www.bhphotovideo.com/c/product/1606947-REG/gigabyte_gv_n306tgaming_oc_8gd_rtx_3060_ti_gaming.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming pro', model: 'gaming pro',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html' 'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html',
}, },
{ {
@@ -111,134 +185,155 @@ export const BAndH: Store = {
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: url:
'https://www.bhphotovideo.com/c/product/1593996-REG/msi_g3080gxt10_geforce_rtx_3080_gaming.html' 'https://www.bhphotovideo.com/c/product/1593996-REG/msi_g3080gxt10_geforce_rtx_3080_gaming.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url:
'https://www.bhphotovideo.com/c/product/1593997-REG/msi_g3080v3x10c_geforce_rtx_3080_ventus.html' 'https://www.bhphotovideo.com/c/product/1593997-REG/msi_g3080v3x10c_geforce_rtx_3080_ventus.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: url:
'https://www.bhphotovideo.com/c/product/1593645-REG/msi_geforce_rtx_3080_gaming.html' 'https://www.bhphotovideo.com/c/product/1593645-REG/msi_geforce_rtx_3080_gaming.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url:
'https://www.bhphotovideo.com/c/product/1593646-REG/msi_geforce_rtx_3080_ventus.html' 'https://www.bhphotovideo.com/c/product/1593646-REG/msi_geforce_rtx_3080_ventus.html',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1592970-REG/zotac_zt_a30900d_10p_gaming_geforce_rtx_3090.html' 'https://www.bhphotovideo.com/c/product/1592970-REG/zotac_zt_a30900d_10p_gaming_geforce_rtx_3090.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1593647-REG/msi_geforce_rtx_3090_gaming.html' 'https://www.bhphotovideo.com/c/product/1593647-REG/msi_geforce_rtx_3090_gaming.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1593994-REG/msi_g3090gxt24_geforce_rtx_3090_gaming.html' 'https://www.bhphotovideo.com/c/product/1593994-REG/msi_g3090gxt24_geforce_rtx_3090_gaming.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1593648-REG/msi_geforce_rtx_3090_ventus.html' 'https://www.bhphotovideo.com/c/product/1593648-REG/msi_geforce_rtx_3090_ventus.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1593995-REG/msi_g3090v3x24c_geforce_rtx_3090_ventus.html' 'https://www.bhphotovideo.com/c/product/1593995-REG/msi_g3090v3x24c_geforce_rtx_3090_ventus.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1593334-REG/gigabyte_gv_n3090eagle_oc_24gd_geforce_rtx_3090_eagle.html' 'https://www.bhphotovideo.com/c/product/1593334-REG/gigabyte_gv_n3090eagle_oc_24gd_geforce_rtx_3090_eagle.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1593335-REG/gigabyte_gv_n3090gaming_oc_24gd_geforce_rtx3090_gaming_oc.html' 'https://www.bhphotovideo.com/c/product/1593335-REG/gigabyte_gv_n3090gaming_oc_24gd_geforce_rtx3090_gaming_oc.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1594454-REG/asus_90yv0fd0_m0am00_tuf_gaming_geforce_rtx.html' 'https://www.bhphotovideo.com/c/product/1594454-REG/asus_90yv0fd0_m0am00_tuf_gaming_geforce_rtx.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: url:
'https://www.bhphotovideo.com/c/product/1594451-REG/asus_90yv0fd1_m0am00_tuf_gaming_geforce_rtx.html' 'https://www.bhphotovideo.com/c/product/1594451-REG/asus_90yv0fd1_m0am00_tuf_gaming_geforce_rtx.html',
},
{
brand: 'asus',
model: 'ekwb',
series: '3090',
url:
'https://www.bhphotovideo.com/c/product/1607043-REG/asus_rtx3090_24g_ek_geforce_rtx_3090_24g.html',
},
{
brand: 'asus',
model: 'strix',
series: '3090',
url:
'https://www.bhphotovideo.com/c/product/1601764-REG/asus_rog_strix_rtx3090_o24g_gaming_rog_strix_geforce_rtx.html',
},
{
brand: 'asus',
model: 'strix white',
series: '3090',
url:
'https://www.bhphotovideo.com/c/product/1614302-REG/asus_rog_strix_rtx3090_o24g_white_rog_strix_geforce_rtx.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: url:
'https://www.bhphotovideo.com/c/product/1598372-REG/amd_100_100000059wof_ryzen_9_5950x_3_4.html' 'https://www.bhphotovideo.com/c/product/1598372-REG/amd_100_100000059wof_ryzen_9_5950x_3_4.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: url:
'https://www.bhphotovideo.com/c/product/1598373-REG/amd_100_100000061wof_ryzen_9_5900x_3_7.html' 'https://www.bhphotovideo.com/c/product/1598373-REG/amd_100_100000061wof_ryzen_9_5900x_3_7.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: url:
'https://www.bhphotovideo.com/c/product/1598376-REG/amd_100_100000063wof_ryzen_7_5800x_3_8.html' 'https://www.bhphotovideo.com/c/product/1598376-REG/amd_100_100000063wof_ryzen_7_5800x_3_8.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url:
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html' 'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url:
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html' 'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html',
}, },
{ {
brand: 'corsair', brand: 'corsair',
model: '750 platinum', model: '750 platinum',
series: 'sf', series: 'sf',
url: url:
'https://www.bhphotovideo.com/c/product/1560680-REG/corsair_cp_9020186_na_corsair_sf750_power_supply.html' 'https://www.bhphotovideo.com/c/product/1560680-REG/corsair_cp_9020186_na_corsair_sf750_power_supply.html',
} },
], ],
name: 'bandh' name: 'bandh',
}; };
+85 -36
View File
@@ -5,12 +5,12 @@ export const BestBuyCa: Store = {
labels: { labels: {
maxPrice: { maxPrice: {
container: 'div[class*="pricingContainer"]', container: 'div[class*="pricingContainer"]',
euroFormat: false euroFormat: false,
}, },
outOfStock: { outOfStock: {
container: '.addToCartButton:disabled', container: '.addToCartButton:disabled',
text: ['add to cart'] text: ['add to cart'],
} },
}, },
links: [ links: [
{ {
@@ -18,163 +18,212 @@ 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/zotac-nvidia-geforce-gtx-1660-super-twin-fan-6gb-gddr6-video-card/14415897' 'https://www.bestbuy.ca/en-ca/product/google-nest-hello-wi-fi-video-doorbell-black-white/12222651',
},
{
brand: 'msi',
model: 'ventus 3x',
series: '3060',
url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ventus-3x-12gb-gddr6-video-card/15324508',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060',
url:
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3060-twin-edge-oc-12gb-gddr6-video-card/15309503',
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060',
url:
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3060-twin-edge-12gb-gddr6-video-card/15309504',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ti-ventus-2x-oc-8gb-gddr6-video-card/15178453?intl=nosplash' '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', brand: 'nvidia',
model: 'founders edition', model: 'founders edition',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3060-ti-8gb-gddr6-video-card/15166285?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3060-ti-8gb-gddr6-video-card/15166285?intl=nosplash',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'twin edge oc', model: 'twin edge oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-oc-8gb-gddr6-video-card/15178452?intl=nosplash' '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', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3060ti', series: '3060ti',
url: url:
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3060-ti-ftw3-ultra-8gb-gddr6-video-card/15200164?intl=nosplash' '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',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: url:
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3080-trinity-10gb-gddr6x-video-card/14953249?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3080-trinity-10gb-gddr6x-video-card/14953249?intl=nosplash',
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
url:
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3080-trinity-oc-10gb-gddr6x-video-card/15000077?intl=nosplash',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x', model: 'ventus 3x',
series: '3080', series: '3080',
url: url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3080-ventus-3x-10gb-gddr6x-video-card/14950588?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3080-ventus-3x-10gb-gddr6x-video-card/14950588?intl=nosplash',
}, },
{ {
brand: 'evga', brand: 'evga',
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/15084753?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/15084753?intl=nosplash',
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3080',
url:
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card-english/14961449?intl=nosplash',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: url:
'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x-video-card/14953248?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x-video-card/14953248?intl=nosplash',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: url:
'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-video-card/14954116?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-video-card/14954116?intl=nosplash',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: url:
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3090-trinity-24gb-gddr6x-video-card/14953250?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3090-trinity-24gb-gddr6x-video-card/14953250?intl=nosplash',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: url:
'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3090-24gb-gddr6x-video-card/14953247?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3090-24gb-gddr6x-video-card/14953247?intl=nosplash',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3090', series: '3090',
url: url:
'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3090-24gb-gddr6x-video-card/14954117?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3090-24gb-gddr6x-video-card/14954117?intl=nosplash',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3090-ventus-3x-oc-24gb-gddr6x-video-card/14966477?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3090-ventus-3x-oc-24gb-gddr6x-video-card/14966477?intl=nosplash',
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3090',
url:
'https://www.bestbuy.ca/en-ca/product/evga-nvidia-geforce-rtx-3090-xc3-ultra-gaming-24gb-gddr6x-video-card/14967857?intl=nosplash',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3070-ventus-3x-oc-8gb-gddr6x-video-card/15038016?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3070-ventus-3x-oc-8gb-gddr6x-video-card/15038016?intl=nosplash',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'twin edge oc', model: 'twin edge oc',
series: '3070', series: '3070',
url: url:
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-oc-8gb-gddr6x-video-card/15000078?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-oc-8gb-gddr6x-video-card/15000078?intl=nosplash',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'twin edge', model: 'twin edge',
series: '3070', series: '3070',
url: url:
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-8gb-gddr6x-video-card/15000079?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-8gb-gddr6x-video-card/15000079?intl=nosplash',
}, },
{ {
brand: 'nvidia', brand: 'nvidia',
model: 'founders edition', model: 'founders edition',
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: 'evga',
model: 'xc3 ultra',
series: '3070',
url:
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3070-xc3-ultra-8gb-gddr6-video-card/15147122?intl=nosplash',
},
{
brand: 'evga',
model: 'xc3 black',
series: '3070',
url:
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3070-xc3-black-8gb-gddr6-video-card/15081879?intl=nosplash',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: url:
'https://www.bestbuy.ca/en-ca/product/playstation-5-console-online-only/14962185?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/playstation-5-console-online-only/14962185?intl=nosplash',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5de', series: 'sonyps5de',
url: url:
'https://www.bestbuy.ca/en-ca/product/playstation-5-digital-edition-console-online-only/14962184?intl=nosplash' 'https://www.bestbuy.ca/en-ca/product/playstation-5-digital-edition-console-online-only/14962184?intl=nosplash',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: url:
'https://www.bestbuy.ca/en-ca/product/xbox-series-x-1tb-console-new-model-online-only/14964951' 'https://www.bestbuy.ca/en-ca/product/xbox-series-x-1tb-console-new-model-online-only/14964951',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: url:
'https://www.bestbuy.ca/en-ca/product/xbox-series-s-512gb-console-new-model-online-only/14964950' 'https://www.bestbuy.ca/en-ca/product/xbox-series-s-512gb-console-new-model-online-only/14964950',
} },
], ],
name: 'bestbuy-ca', name: 'bestbuy-ca',
waitUntil: 'domcontentloaded' waitUntil: 'domcontentloaded',
}; };
+116 -143
View File
@@ -4,503 +4,476 @@ export const BestBuy: Store = {
currency: '$', currency: '$',
labels: { labels: {
inStock: { inStock: {
container: container: '[data-sticky-media-gallery] .fulfillment-add-to-cart-button',
'[data-sticky-media-gallery] .fulfillment-add-to-cart-button', text: ['add to cart'],
text: ['add to cart']
}, },
maxPrice: { maxPrice: {
container: container:
'[data-sticky-media-gallery] .priceView-price .priceView-hero-price span' '[data-sticky-media-gallery] .priceView-price .priceView-hero-price span',
} },
}, },
links: [ links: [
{ {
brand: 'test:brand', brand: 'test:brand',
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url: 'https://api.bestbuy.com/click/-/6258941/pdp',
'https://www.bestbuy.com/site/insignia-8qt-digital-multi-cooker-stainless-steel/6258941.p?skuId=6258941&intl=nosplash'
}, },
{ {
brand: 'nvidia', brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6429442/cart', cartUrl: 'https://api.bestbuy.com/click/-/6429442/cart',
model: 'founders edition', model: 'founders edition',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6429442/pdp',
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3070-8gb-gddr6-pci-express-4-0-graphics-card-dark-platinum-and-black/6429442.p?skuId=6429442&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6439300/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439300/cart',
model: 'xc3 black', model: 'xc3 black',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439300/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3070-xc3-black-gaming-8gb-gddr6x-pci-express-4-0-graphics-card/6439300.p?skuId=6439300&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6437912/cart', cartUrl: 'https://api.bestbuy.com/click/-/6437912/cart',
model: 'eagle', model: 'eagle',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6437912/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3070-8g-gddr6-pci-express-4-0-graphics-card-black/6437912.p?skuId=6437912&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6437909/cart', cartUrl: 'https://api.bestbuy.com/click/-/6437909/cart',
model: 'gaming oc', model: 'gaming oc',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6437909/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3070-8g-gddr6-pci-express-4-0-graphics-card-black/6437909.p?skuId=6437909&intl=nosplash'
}, },
{ {
brand: 'pny', brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432654/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432654/cart',
model: 'dual fan', model: 'dual fan',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6432654/pdp',
'https://www.bestbuy.com/site/pny-geforce-rtx-3070-8gb-dual-fan-graphics-card/6432654.p?skuId=6432654&intl=nosplash'
}, },
{ {
brand: 'pny', brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432653/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432653/cart',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6432653/pdp',
'https://www.bestbuy.com/site/pny-geforce-rtx-3070-8gb-xlr8-gaming-epic-x-rgb-triple-fan-graphics-card/6432653.p?skuId=6432653&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6439384/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439384/cart',
model: 'aorus', model: 'aorus',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439384/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3070-8g-gddr6-pci-express-4-0-graphics-card-black/6439384.p?skuId=6439384'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6439385/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439385/cart',
model: 'vision', model: 'vision',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439385/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3070-8g-gddr6-pci-express-4-0-graphics-card-white/6439385.p?skuId=6439385'
}, },
{ {
brand: 'asus', brand: 'asus',
cartUrl: 'https://api.bestbuy.com/click/-/6439128/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439128/cart',
model: 'tuf', model: 'tuf',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439128/pdp',
'https://www.bestbuy.com/site/asus-tuf-rtx3070-8gb-gddr6-pci-express-4-0-graphics-card-black/6439128.p?skuId=6439128'
}, },
{ {
brand: 'msi', brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6438278/cart', cartUrl: 'https://api.bestbuy.com/click/-/6438278/cart',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6438278/pdp',
'https://www.bestbuy.com/site/msi-geforce-rtx-3070-ventus-3x-oc-bv-8gb-gddr6-pci-express-4-0-graphics-card-black/6438278.p?skuId=6438278'
}, },
{ {
brand: 'asus', brand: 'asus',
cartUrl: 'https://api.bestbuy.com/click/-/6439127/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439127/cart',
model: 'strix', model: 'strix',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439127/pdp',
'https://www.bestbuy.com/site/asus-rog-strix-rtx3070-8gb-gddr6-pci-express-4-0-graphics-card-black/6439127.p?skuId=6439127'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6439301/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439301/cart',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439301/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3070-ftw3-ultra-gaming-8gb-gddr6x-pci-express-4-0-graphics-card/6439301.p?skuId=6439301'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6439299/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439299/cart',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3070', series: '3070',
url: url: 'https://api.bestbuy.com/click/-/6439299/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3070-xc3-ultra-gaming-8gb-gddr6x-pci-express-4-0-graphics-card/6439299.p?skuId=6439299'
}, },
{ {
brand: 'nvidia', brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart', cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart',
model: 'founders edition', model: 'founders edition',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6429440/pdp',
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card-titanium-and-black/6429440.p?skuId=6429440&intl=nosplash'
}, },
{ {
brand: 'asus', brand: 'asus',
cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6432445/pdp',
'https://www.bestbuy.com/site/asus-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-strix-graphics-card-black/6432445.p?skuId=6432445&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6432399/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6432399.p?skuId=6432399&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6436194/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436194/cart',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6436194/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6436194.p?skuId=6436194&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6432400/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432400/cart',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6432400/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6432400.p?skuId=6432400&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6436196/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436196/cart',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6436196/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6436196.p?skuId=6436196&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6436191/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436191/cart',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6436191/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3080-10gb-gddr6x-pci-express-4-0-graphics-card/6436191.p?skuId=6436191&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6430620/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6430620.p?acampID=0&cmp=RMX&loc=Hatch&ref=198&skuId=6430620&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6430621/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430621/cart',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6430621/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6430621.p?skuId=6430621&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6436219/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436219/cart',
model: 'vision oc', model: 'vision oc',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6436219/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-white/6436219.p?skuId=6436219&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6436223/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436223/cart',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6436223/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3080-10g-gddr6x-pci-express-4-0-graphics-card-black/6436223.p?skuId=6436223&intl=nosplash'
}, },
{ {
brand: 'msi', brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6430175/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430175/cart',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6430175/pdp',
'https://www.bestbuy.com/site/msi-geforce-rtx-3080-ventus-3x-10g-oc-bv-gddr6x-pci-express-4-0-graphic-card-black-silver/6430175.p?skuId=6430175&intl=nosplash'
}, },
{ {
brand: 'pny', brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432655/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432655/cart',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6432655/pdp',
'https://www.bestbuy.com/site/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-triple-fan-graphics-card/6432655.p?skuId=6432655&intl=nosplash'
}, },
{ {
brand: 'pny', brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432658/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432658/cart',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: url: 'https://api.bestbuy.com/click/-/6432658/pdp',
'https://www.bestbuy.com/site/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-triple-fan-graphics-card/6432658.p?skuId=6432658&intl=nosplash'
}, },
{ {
brand: 'nvidia', brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6429434/cart', cartUrl: 'https://api.bestbuy.com/click/-/6429434/cart',
model: 'founders edition', model: 'founders edition',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6429434/pdp',
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3090-24gb-gddr6x-pci-express-4-0-graphics-card-titanium-and-black/6429434.p?skuId=6429434&intl=nosplash'
}, },
{ {
brand: 'asus', brand: 'asus',
cartUrl: 'https://api.bestbuy.com/click/-/6432447/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432447/cart',
model: 'strix', model: 'strix',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6432447/pdp',
'https://www.bestbuy.com/site/asus-geforce-rtx-3090-24gb-gddr6x-pci-express-4-0-strix-graphics-card-black/6432447.p?skuId=6432447&intl=nosplash'
}, },
{ {
brand: 'asus', brand: 'asus',
cartUrl: 'https://api.bestbuy.com/click/-/6432446/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432446/cart',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6432446/pdp',
'https://www.bestbuy.com/site/asus-tuf-rtx-3090-24gb-gddr6x-pci-express-4-0-graphics-card-black/6432446.p?skuId=6432446&intl=nosplash'
}, },
{ {
brand: 'msi', brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6430215/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430215/cart',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6430215/pdp',
'https://www.bestbuy.com/site/msi-geforce-rtx-3090-ventus-3x-24g-oc-bv-24gb-gddr6x-pci-express-4-0-graphics-card-black-silver/6430215.p?skuId=6430215&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6430623/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430623/cart',
model: 'gaming', model: 'gaming',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6430623/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3090-24g-gddr6x-pci-express-4-0-graphics-card-black/6430623.p?skuId=6430623&intl=nosplash'
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6430624/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430624/cart',
model: 'eagle', model: 'eagle',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6430624/pdp',
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3090-24g-gddr6x-pci-express-4-0-graphics-card-black/6430624.p?skuId=6430624&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6434363/cart', cartUrl: 'https://api.bestbuy.com/click/-/6434363/cart',
model: 'xc3', model: 'xc3',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6434363/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3090-24gb-gddr6x-pci-express-4-0-graphics-card/6434363.p?skuId=6434363&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6436193/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436193/cart',
model: 'ftw3', model: 'ftw3',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6436193/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3090-24gb-gddr6x-pci-express-4-0-graphics-card/6436193.p?skuId=6436193&intl=nosplash'
}, },
{ {
brand: 'evga', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6436192/cart', cartUrl: 'https://api.bestbuy.com/click/-/6436192/cart',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6436192/pdp',
'https://www.bestbuy.com/site/evga-geforce-rtx-3090-24gb-gddr6x-pci-express-4-0-graphics-card/6436192.p?skuId=6436192&intl=nosplash'
}, },
{ {
brand: 'pny', brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432657/cart', cartUrl: 'https://api.bestbuy.com/click/-/6432657/cart',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: url: 'https://api.bestbuy.com/click/-/6432657/pdp',
'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', brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
model: 'founders edition', model: 'founders edition',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6439402/pdp',
'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', brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart', cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
model: 'ventus 2x', model: 'ventus 2x',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6441172/pdp',
'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', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart', cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
model: 'gaming oc', model: 'gaming oc',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6442484/pdp',
'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', brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart', cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
model: 'eagle', model: 'eagle',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6442485/pdp',
'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/-/6452940/cart',
model: 'ventus 3x',
series: '3060',
url: 'https://api.bestbuy.com/click/-/6452940/pdp',
},
{
brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6454328/cart',
model: 'xc gaming',
series: '3060',
url: 'https://api.bestbuy.com/click/-/6454328/pdp',
}, },
{ {
brand: 'amd', brand: 'amd',
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart', cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: url: 'https://api.bestbuy.com/click/-/6438942/pdp',
'https://www.bestbuy.com/site/amd-ryzen-9-5900x-4th-gen-12-core-24-threads-unlocked-desktop-processor-without-cooler/6438942.p?skuId=6438942&intl=nosplash'
}, },
{ {
brand: 'amd', brand: 'amd',
cartUrl: 'https://api.bestbuy.com/click/-/6438941/cart', cartUrl: 'https://api.bestbuy.com/click/-/6438941/cart',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: url: 'https://api.bestbuy.com/click/-/6438941/pdp',
'https://www.bestbuy.com/site/amd-ryzen-9-5950x-4th-gen-16-core-32-threads-unlocked-desktop-processor-without-cooler/6438941.p?skuId=6438941&intl=nosplash'
}, },
{ {
brand: 'amd', brand: 'amd',
cartUrl: 'https://api.bestbuy.com/click/-/6439000/cart', cartUrl: 'https://api.bestbuy.com/click/-/6439000/cart',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: url: 'https://api.bestbuy.com/click/-/6439000/pdp',
'https://www.bestbuy.com/site/amd-ryzen-7-5800x-4th-gen-8-core-16-threads-unlocked-desktop-processor-without-cooler/6439000.p?skuId=6439000&intl=nosplash'
}, },
{ {
brand: 'amd', brand: 'amd',
cartUrl: 'https://api.bestbuy.com/click/-/6438943/cart', cartUrl: 'https://api.bestbuy.com/click/-/6438943/cart',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url: 'https://api.bestbuy.com/click/-/6438943/pdp',
'https://www.bestbuy.com/site/amd-ryzen-5-5600x-4th-gen-6-core-12-threads-unlocked-desktop-processor-with-wraith-stealth-cooler/6438943.p?skuId=6438943&intl=nosplash'
}, },
{ {
brand: 'sony', brand: 'sony',
cartUrl: 'https://api.bestbuy.com/click/-/6426149/cart', cartUrl: 'https://api.bestbuy.com/click/-/6426149/cart',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: url: 'https://api.bestbuy.com/click/-/6426149/pdp',
'https://www.bestbuy.com/site/sony-playstation-5-console/6426149.p?skuId=6426149&intl=nosplash'
}, },
{ {
brand: 'sony', brand: 'sony',
cartUrl: 'https://api.bestbuy.com/click/-/6430161/cart', cartUrl: 'https://api.bestbuy.com/click/-/6430161/cart',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: url: 'https://api.bestbuy.com/click/-/6430161/pdp',
'https://www.bestbuy.com/site/sony-playstation-5-digital-edition-console/6430161.p?skuId=6430161&intl=nosplash'
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
cartUrl: 'https://api.bestbuy.com/click/-/6428324/cart',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: url: 'https://api.bestbuy.com/click/-/6428324/pdp',
'https://www.bestbuy.com/site/microsoft-xbox-series-x-1tb-console-black/6428324.p?skuId=6428324'
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
cartUrl: 'https://api.bestbuy.com/click/-/6430277/cart',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: url: 'https://api.bestbuy.com/click/-/6430277/pdp',
'https://www.bestbuy.com/site/microsoft-xbox-series-s-512-gb-all-digital-console-disc-free-gaming-white/6430277.p?skuId=6430277'
}, },
{ {
brand: 'msi', brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6440913/cart',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: url: 'https://api.bestbuy.com/click/-/6440913/pdp',
'https://www.bestbuy.com/site/msi-radeon-rx-6800-xt-16g-16gb-gddr6-pci-express-4-0-graphics-card-black-black/6440913.p?skuId=6440913'
}, },
{ {
brand: 'msi', brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6441020/cart',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: url: 'https://api.bestbuy.com/click/-/6441020/pdp',
'https://www.bestbuy.com/site/msi-radeon-rx-6800-16g-16gb-gddr6-pci-express-4-0-graphics-card-black-black/6441020.p?skuId=6441020'
}, },
{ {
brand: 'xfx', brand: 'xfx',
cartUrl: 'https://api.bestbuy.com/click/-/6442077/cart',
model: 'amd reference', model: 'amd reference',
series: 'rx6800', series: 'rx6800',
url: url: 'https://api.bestbuy.com/click/-/6442077/pdp',
'https://www.bestbuy.com/site/xfx-amd-radeon-rx-6800-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6442077.p?skuId=6442077'
}, },
{ {
brand: 'xfx', brand: 'xfx',
cartUrl: 'https://api.bestbuy.com/click/-/6441226/cart',
model: 'amd reference', model: 'amd reference',
series: 'rx6800xt', series: 'rx6800xt',
url: url: 'https://api.bestbuy.com/click/-/6441226/pdp',
'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', brand: 'xfx',
cartUrl: 'https://api.bestbuy.com/click/-/6442585/cart',
model: 'merc', model: 'merc',
series: 'rx6800xt', series: 'rx6800xt',
url: url: 'https://api.bestbuy.com/click/-/6442585/pdp',
'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: 'xfx', brand: 'xfx',
cartUrl: 'https://api.bestbuy.com/click/-/6444358/cart',
model: 'amd reference', model: 'amd reference',
series: 'rx6900xt', series: 'rx6900xt',
url: url: 'https://api.bestbuy.com/click/-/6444358/pdp',
'https://www.bestbuy.com/site/xfx-amd-radeon-rx-6900-xt-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6444358.p?skuId=6444358' },
{
brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6444716/cart',
model: 'amd reference',
series: 'rx6900xt',
url: 'https://api.bestbuy.com/click/-/6444716/pdp',
},
{
brand: 'xfx',
cartUrl: 'https://api.bestbuy.com/click/-/6445157/cart',
model: 'merc',
series: 'rx6900xt',
url: 'https://api.bestbuy.com/click/-/6445157/pdp',
}, },
{ {
brand: 'corsair', brand: 'corsair',
cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart', cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart',
model: '750 platinum', model: '750 platinum',
series: 'sf', series: 'sf',
url: url: 'https://api.bestbuy.com/click/-/6351845/pdp',
'https://www.bestbuy.com/site/corsair-sf-series-750w-atx12v-2-4-eps12v-2-92-sfx12v-80-plus-platinum-modular-power-supply-black/6351845.p?skuId=6351845'
}, },
{ {
brand: 'corsair', brand: 'corsair',
cartUrl: 'https://api.bestbuy.com/click/-/6351844/cart', cartUrl: 'https://api.bestbuy.com/click/-/6351844/cart',
model: '600 platinum', model: '600 platinum',
series: 'sf', series: 'sf',
url: url: 'https://api.bestbuy.com/click/-/6351844/pdp',
'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', brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart', cartUrl: 'https://api.bestbuy.com/click/-/6446660/cart',
model: 'founders edition', model: 'xlr8 uprising',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6446660/pdp',
'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', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart', cartUrl: 'https://api.bestbuy.com/click/-/6444445/cart',
model: 'gaming oc', model: 'xc gaming',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6444445/pdp',
'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', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart', cartUrl: 'https://api.bestbuy.com/click/-/6444444/cart',
model: 'eagle oc', model: 'ftw3',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6444444/pdp',
'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', brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart', cartUrl: 'https://api.bestbuy.com/click/-/6444449/cart',
model: 'ventus 2x oc', model: 'ftw3',
series: '3060ti', series: '3060ti',
url: url: 'https://api.bestbuy.com/click/-/6444449/pdp',
'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',
}; };
+23 -21
View File
@@ -7,16 +7,16 @@ export const Box: Store = {
labels: { labels: {
inStock: { inStock: {
container: '#divBuyButton', container: '#divBuyButton',
text: ['add to basket'] text: ['add to basket'],
}, },
maxPrice: { maxPrice: {
container: '.p-price', container: '.p-price',
euroFormat: false // Note: Box uses non-euroFromat as price seperator euroFormat: false, // Note: Box uses non-euroFromat as price seperator
}, },
outOfStock: { outOfStock: {
container: '#divBuyButton', container: '#divBuyButton',
text: ['request stock alert', 'coming soon'] text: ['request stock alert', 'coming soon'],
} },
}, },
links: [ links: [
{ {
@@ -24,69 +24,71 @@ export const Box: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.box.co.uk/Gigabyte-GeForce-RTX-2080-Super-8GB-Wind_2724554.html' 'https://www.box.co.uk/Gigabyte-GeForce-RTX-2080-Super-8GB-Wind_2724554.html',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 console', model: 'ps5 console',
series: 'sonyps5c', series: 'sonyps5c',
url: url:
'https://www.box.co.uk/CFI-1015A-Sony-Playstation-5-Console_3199689.html' 'https://www.box.co.uk/CFI-1015A-Sony-Playstation-5-Console_3199689.html',
}, },
{ {
brand: 'sony', brand: 'sony',
model: 'ps5 digital', model: 'ps5 digital',
series: 'sonyps5de', series: 'sonyps5de',
url: url:
'https://www.box.co.uk/CFI-1015B-Sony-PlayStation-5-Digital-Edition-Conso_3199692.html' 'https://www.box.co.uk/CFI-1015B-Sony-PlayStation-5-Digital-Edition-Conso_3199692.html',
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series x', model: 'xbox series x',
series: 'xboxsx', series: 'xboxsx',
url: url: 'https://www.box.co.uk/RRT-00007-Xbox-Series-X-Console_3201195.html',
'https://www.box.co.uk/RRT-00007-Xbox-Series-X-Console_3201195.html'
}, },
{ {
brand: 'microsoft', brand: 'microsoft',
model: 'xbox series s', model: 'xbox series s',
series: 'xboxss', series: 'xboxss',
url: url: 'https://www.box.co.uk/RRS-00007-Xbox-Series-S-Console_3201197.html',
'https://www.box.co.uk/RRS-00007-Xbox-Series-S-Console_3201197.html'
}, },
{ {
brand: 'amd', brand: 'amd',
model: 'tuf oc', model: 'tuf oc',
series: 'rx6900xt', series: 'rx6900xt',
url: url:
'https://www.box.co.uk/90YV0GE0-M0NM00-ASUS-Radeon-RX-X6900XT-16GB-OC-Gaming-Gr_3561243.html' 'https://www.box.co.uk/90YV0GE0-M0NM00-ASUS-Radeon-RX-X6900XT-16GB-OC-Gaming-Gr_3561243.html',
} },
], ],
linksBuilder: { linksBuilder: {
builder: getProductLinksBuilder({ builder: getProductLinksBuilder({
productsSelector: '.products-right .p-list', productsSelector: '.products-right .p-list',
sitePrefix: 'https://www.box.co.uk', sitePrefix: 'https://www.box.co.uk',
titleSelector: '.p-list-section > h3 > a[href]' titleSelector: '.p-list-section > h3 > a[href]',
}), }),
urls: [ urls: [
{
series: '3060',
url: 'https://www.box.co.uk/rtx-3060-graphics-cards',
},
{ {
series: '3060ti', series: '3060ti',
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards' url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards',
}, },
{ {
series: '3070', series: '3070',
url: 'https://www.box.co.uk/rtx-3070-graphics-cards' url: 'https://www.box.co.uk/rtx-3070-graphics-cards',
}, },
{ {
series: '3080', series: '3080',
url: 'https://www.box.co.uk/rtx-3080-graphics-cards' url: 'https://www.box.co.uk/rtx-3080-graphics-cards',
}, },
{ {
series: '3090', series: '3090',
url: 'https://www.box.co.uk/rtx-3090-graphics-cards' url: 'https://www.box.co.uk/rtx-3090-graphics-cards',
} },
] ],
}, },
name: 'box', name: 'box',
waitUntil: 'domcontentloaded' waitUntil: 'domcontentloaded',
}; };
+25 -25
View File
@@ -6,12 +6,12 @@ export const Bpctech: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.productStockStatus', container: '.productStockStatus',
text: ['in stock'] text: ['in stock'],
}, },
maxPrice: { maxPrice: {
container: 'div.price-box.price-final_price > span > span', container: 'div.price-box.price-final_price > span > span',
euroFormat: false euroFormat: false,
} },
}, },
links: [ links: [
{ {
@@ -19,21 +19,21 @@ export const Bpctech: Store = {
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/tuf-rtx3080-10g-gaming-asus-geforce-rtx-3080-tuf-gaming-10gb-video-card.html' 'https://www.bpctech.com.au/tuf-rtx3080-10g-gaming-asus-geforce-rtx-3080-tuf-gaming-10gb-video-card.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/tuf-rtx3080-o10g-gaming-asus-geforce-rtx-3080-tuf-gaming-oc-10gb-video-card.html' 'https://www.bpctech.com.au/tuf-rtx3080-o10g-gaming-asus-geforce-rtx-3080-tuf-gaming-oc-10gb-video-card.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/rog-strix-rtx3080-o10g-gaming-asus-geforce-rtx-3080-rog-strix-oc-10gb-video-card.html' 'https://www.bpctech.com.au/rog-strix-rtx3080-o10g-gaming-asus-geforce-rtx-3080-rog-strix-oc-10gb-video-card.html',
}, },
// { // {
// brand: 'colorful', // brand: 'colorful',
@@ -52,120 +52,120 @@ export const Bpctech: Store = {
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/10g-p5-3897-kr-evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-video-card.html' 'https://www.bpctech.com.au/10g-p5-3897-kr-evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-video-card.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/10g-p5-3881-kr-evga-geforce-rtx-3080-xc3-black-gaming-10gb-video-card.html' 'https://www.bpctech.com.au/10g-p5-3881-kr-evga-geforce-rtx-3080-xc3-black-gaming-10gb-video-card.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/10g-p5-3885-kr-evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-video-card.html' 'https://www.bpctech.com.au/10g-p5-3885-kr-evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-video-card.html',
}, },
{ {
brand: 'galax', brand: 'galax',
model: 'sg oc', model: 'sg oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/38nwm3md99nn-galax-geforce-rtx-3080-sg-1-click-oc-10gb-video-card.html' 'https://www.bpctech.com.au/38nwm3md99nn-galax-geforce-rtx-3080-sg-1-click-oc-10gb-video-card.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'vision oc', model: 'vision oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/gv-n3080vision-oc-10gd-gigabyte-geforce-rtx-3080-vision-oc-10gb-video-card.html' 'https://www.bpctech.com.au/gv-n3080vision-oc-10gd-gigabyte-geforce-rtx-3080-vision-oc-10gb-video-card.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/gv-n3080gaming-oc-10gd-gigabyte-geforce-rtx-3080-gaming-oc-10gb-video-card.html' 'https://www.bpctech.com.au/gv-n3080gaming-oc-10gd-gigabyte-geforce-rtx-3080-gaming-oc-10gb-video-card.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/gv-n3080aorus-m-10gd-gigabyte-geforce-rtx-3080-aorus-master-10g-video-card.html' 'https://www.bpctech.com.au/gv-n3080aorus-m-10gd-gigabyte-geforce-rtx-3080-aorus-master-10g-video-card.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus xtreme', model: 'aorus xtreme',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/gv-n3080aorus-x-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-video-card.html' 'https://www.bpctech.com.au/gv-n3080aorus-x-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-video-card.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus xtreme waterforce', model: 'aorus xtreme waterforce',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/gv-n3080aorusx-w-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-10gb-video-card.html' 'https://www.bpctech.com.au/gv-n3080aorusx-w-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-10gb-video-card.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/gv-n3080eagle-oc-10gd-gigabyte-geforce-rtx-3080-eagle-oc-10gb-video-card.html' 'https://www.bpctech.com.au/gv-n3080eagle-oc-10gd-gigabyte-geforce-rtx-3080-eagle-oc-10gb-video-card.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/c30804-106xx-1810va36-inno3d-geforce-rtx-3080-ichill-x4-10gb-video-card.html' 'https://www.bpctech.com.au/c30804-106xx-1810va36-inno3d-geforce-rtx-3080-ichill-x4-10gb-video-card.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/c30803-106xx-1810va37-inno3d-geforce-rtx-3080-ichill-x3-10gb-video-card.html' 'https://www.bpctech.com.au/c30803-106xx-1810va37-inno3d-geforce-rtx-3080-ichill-x3-10gb-video-card.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'twin x2 oc', model: 'twin x2 oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/n30802-106xx-1810va34-inno3d-geforce-rtx-3080-twin-x2-oc-10gb-video-card.html' 'https://www.bpctech.com.au/n30802-106xx-1810va34-inno3d-geforce-rtx-3080-twin-x2-oc-10gb-video-card.html',
}, },
{ {
brand: 'leadtek', brand: 'leadtek',
model: 'hurricane', model: 'hurricane',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/rtx3080-hurricane-leadtek-geforce-rtx-3080-hurricane-10gb-video-card.html' 'https://www.bpctech.com.au/rtx3080-hurricane-leadtek-geforce-rtx-3080-hurricane-10gb-video-card.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'suprim x', model: 'suprim x',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/rtx3080-suprim-x-10g-msi-geforce-rtx-3080-suprim-x-10gb-video-card.html' 'https://www.bpctech.com.au/rtx3080-suprim-x-10g-msi-geforce-rtx-3080-suprim-x-10gb-video-card.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/rtx3080-ventus-3x-10g-oc-msi-rtx-3080-ventus-3x-10g-oc-video-card.html' 'https://www.bpctech.com.au/rtx3080-ventus-3x-10g-oc-msi-rtx-3080-ventus-3x-10g-oc-video-card.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: url:
'https://www.bpctech.com.au/rtx3080-gaming-x-trio-10g-msi-rtx-3080-gaming-x-trio-10g-video-card.html' 'https://www.bpctech.com.au/rtx3080-gaming-x-trio-10g-msi-rtx-3080-gaming-x-trio-10g-video-card.html',
} },
], ],
name: 'bpctech' name: 'bpctech',
}; };
+43
View File
@@ -0,0 +1,43 @@
import {Store} from './store';
export const BpmPower: Store = {
currency: '€',
labels: {
inStock: {
container: '.dispoSiProd >span',
text: ['Disponibile'],
},
maxPrice: {
container: 'p.prezzoScheda:nth-child(1)',
euroFormat: true,
},
outOfStock: {
container: '.dispoSiProd >span',
text: ['Esaurito'],
},
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.bpm-power.com/it/online/audio/auricolari-audio/apple-airpods-2-2019-b1492931',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.bpm-power.com/it/online/componenti-pc/schede-video/nvidia-msi-rtx-3070-b1710142',
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.bpm-power.com/it/online/componenti-pc/processori/cpu-amd-ryzen-7-b1710075',
},
],
name: 'bpm-power',
};
+281 -106
View File
@@ -5,12 +5,12 @@ export const CanadaComputers: Store = {
labels: { labels: {
inStock: { inStock: {
container: 'div[class="pi-prod-availability"]', container: 'div[class="pi-prod-availability"]',
text: ['Online In Stock'] text: ['Online In Stock'],
},
maxPrice: {
container: '.h2-big > strong:nth-child(1)',
euroFormat: false,
}, },
outOfStock: {
container: 'div[class="pi-prod-availability"]',
text: ['Not Available Online']
}
}, },
links: [ links: [
{ {
@@ -18,471 +18,646 @@ 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&language=en' 'https://www.canadacomputers.com/product_info.php?item_id=167320&cPath=27_1046_365&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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183210&language=en',
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url:
'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&language=en' '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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183561&language=en',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185675&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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183560&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'gaming oc', model: 'tuf oc',
series: '3070', series: '3070',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183638&language=en' '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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183499&language=en',
},
{
brand: 'msi',
model: 'suprim x',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=186197&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'gaming', model: 'strix oc',
series: '3070', series: '3070',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184743&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=186310&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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181354&language=en',
},
{
brand: 'asus',
model: 'gaming',
series: '3080',
url:
'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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184837&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'gaming oc', model: 'tuf oc',
series: '3080', series: '3080',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181415&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181353&language=en',
},
{
brand: 'asus',
model: 'gaming',
series: '3080',
url:
'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&language=en' '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&language=en' '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&language=en' '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&language=en' '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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181798&language=en',
},
{
brand: 'asus',
model: 'strix',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=186309&language=en',
},
{
brand: 'msi',
model: 'suprim x',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185084&language=en',
},
{
brand: 'gigabyte',
model: 'aorus xtreme waterforce wb',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=186345&language=en',
},
{
brand: 'gigabyte',
model: 'aorus xtreme waterforce wb',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=186344&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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181854&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'gaming oc', model: 'tuf oc',
series: '3090', series: '3090',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181413&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181350&language=en',
},
{
brand: 'asus',
model: 'gaming',
series: '3090',
url:
'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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181352&language=en',
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183097&language=en',
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184164&language=en',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185086&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185086&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184759&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184759&language=en',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 2x oc', model: 'ventus 2x oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185087&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185087&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'dual', model: 'dual oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184760&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184760&language=en',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'twin edge oc', model: 'twin edge oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185751&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185751&language=en',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'twin edge', model: 'twin edge',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185752&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185752&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184431&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184431&language=en',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc gaming', model: 'xc gaming',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185988&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185988&language=en',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185987&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185987&language=en',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185408&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185408&language=en',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185407&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185407&language=en',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc pro', model: 'gaming oc pro',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185406&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185406&language=en',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus', model: 'aorus master',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185405&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185405&language=en',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'ko', model: 'ko',
series: '3060ti', series: '3060ti',
url: url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185168&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185168&language=en',
},
{
brand: 'msi',
model: 'ventus 2x',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=188914&language=en',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189034&language=en',
},
{
brand: 'msi',
model: 'ventus 3x',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189035&language=en',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189411&language=en',
},
{
brand: 'asus',
model: 'strix oc',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189542&language=en',
},
{
brand: 'evga',
model: 'xc gaming',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189460&language=en',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189615&language=en',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189625&language=en',
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3060',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=189626&language=en',
},
{
brand: 'msi',
model: 'gaming x trio',
series: 'rx6800',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=186527&language=en',
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6800',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185755&language=en',
},
{
brand: 'asus',
model: 'strix oc',
series: 'rx6800',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185459&language=en',
},
{
brand: 'asus',
model: 'tuf oc',
series: 'rx6800',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185460&language=en',
},
{
brand: 'msi',
model: 'gaming x trio',
series: 'rx6800xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=186526&language=en',
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6800xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185754&language=en',
},
{
brand: 'sapphire',
model: 'nitro+ se',
series: 'rx6800xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185753&language=en',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: 'rx6800xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185891&language=en',
},
{
brand: 'asus',
model: 'strix lc',
series: 'rx6800xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=185458&language=en',
},
{
brand: 'asus',
model: 'tuf oc',
series: 'rx6900xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=186610&language=en',
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6900xt',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_558&item_id=186614&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&language=en' '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&language=en' '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&language=en' '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&language=en' 'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183427&language=en',
} },
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url:
'https://www.canadacomputers.com/product_info.php?cPath=13_1860_1862&item_id=184244&language=en',
},
], ],
name: 'canadacomputers', name: 'canadacomputers',
waitUntil: 'domcontentloaded' waitUntil: 'domcontentloaded',
}; };
+597 -58
View File
@@ -6,16 +6,16 @@ export const Caseking: Store = {
labels: { labels: {
inStock: { inStock: {
container: '.delivery_container', container: '.delivery_container',
text: ['lagernd', 'im zulauf', 'ab'] text: ['lagernd', 'im zulauf', 'ab'],
}, },
maxPrice: { maxPrice: {
container: '#buybox .article_details_price', container: '#buybox .article_details_price',
euroFormat: true euroFormat: true,
}, },
outOfStock: { outOfStock: {
container: '.delivery_container', container: '.delivery_container',
text: ['unbekannt'] text: ['unbekannt'],
} },
}, },
links: [ links: [
{ {
@@ -23,365 +23,904 @@ export const Caseking: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.caseking.de/evga-geforce-rtx-2060-super-xc-ultra-gaming-8192-mb-gddr6-gcev-385.html' 'https://www.caseking.de/evga-geforce-rtx-2060-super-xc-ultra-gaming-8192-mb-gddr6-gcev-385.html',
},
{
brand: 'asus',
model: 'strix oc',
series: '3060ti',
url:
'https://www.caseking.de/asus-geforce-rtx-3060-ti-rog-strix-o8g-8192-mb-gddr6-gcas-407.html',
},
{
brand: 'asus',
model: 'dual oc',
series: '3060ti',
url:
'https://www.caseking.de/asus-geforce-rtx-3060-ti-dual-o8g-8192-mb-gddr6-gcas-410.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3060ti',
url:
'https://www.caseking.de/asus-geforce-rtx-3060-ti-tuf-o8g-8192-mb-gddr6-gcas-412.html',
},
{
brand: 'asus',
model: 'dual',
series: '3060ti',
url:
'https://www.caseking.de/asus-geforce-rtx-3060-ti-dual-8g-8192-mb-gddr6-gcas-411.html',
},
{
brand: 'asus',
model: 'tuf',
series: '3060ti',
url:
'https://www.caseking.de/asus-geforce-rtx-3060-ti-tuf-8g-8192-mb-gddr6-gcas-408.html',
},
{
brand: 'asus',
model: 'strix',
series: '3060ti',
url:
'https://www.caseking.de/asus-geforce-rtx-3060-ti-rog-strix-8g-8192-mb-gddr6-gcas-409.html',
},
{
brand: 'evga',
model: 'xc gaming',
series: '3060ti',
url:
'https://www.caseking.de/evga-geforce-rtx-3060-ti-xc-gaming-8192-mb-gddr6-gcev-431.html',
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3060ti',
url:
'https://www.caseking.de/evga-geforce-rtx-3060-ti-ftw3-ultra-gaming-8192-mb-gddr6-gcev-403.html',
},
{
brand: 'evga',
model: 'ftw3 black',
series: '3060ti',
url:
'https://www.caseking.de/evga-geforce-rtx-3060-ti-ftw3-black-gaming-8192-mb-gddr6-gcev-430.html',
},
{
brand: 'evga',
model: 'xc black',
series: '3060ti',
url:
'https://www.caseking.de/evga-geforce-rtx-3060-ti-xc-black-gaming-8192-mb-gddr6-gcev-432.html',
},
{
brand: 'evga',
model: 'ftw3',
series: '3060ti',
url:
'https://www.caseking.de/evga-geforce-rtx-3060-ti-ftw3-gaming-8192-mb-gddr6-gcev-429.html',
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3060ti',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-eagle-oc-8g-8192-mb-gddr6-gcgb-349.html',
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3060ti',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3060-ti-master-8g-8192-mb-gddr6-gcgb-346.html',
},
{
brand: 'gigabyte',
model: 'gaming oc pro',
series: '3060ti',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-gaming-oc-pro-8g-8192-mb-gddr6-gcgb-347.html',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-gaming-oc-8g-8192-mb-gddr6-gcgb-348.html',
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3060ti',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3060-ti-eagle-8g-8192-mb-gddr6-gcgb-350.html',
},
{
brand: 'inno3d',
model: 'twin x2 oc',
series: '3060ti',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3060-ti-twin-x2-oc-8192-mb-gddr6-gci3-180.html',
},
{
brand: 'inno3d',
model: 'ichill x3',
series: '3060ti',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3060-ti-ichill-x3-8192-mb-gddr6-gci3-179.html',
},
{
brand: 'inno3d',
model: 'twin x2',
series: '3060ti',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3060-ti-twin-x2-8192-mb-gddr6-gci3-181.html',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3060ti',
url:
'https://www.caseking.de/msi-geforce-rtx-3060-ti-gaming-x-trio-8192-mb-gddr6-gcmc-255.html',
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3060ti',
url:
'https://www.caseking.de/msi-geforce-rtx-3060-ti-ventus-2x-oc-8192-mb-gddr6-gcmc-246.html',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3060ti',
url:
'https://www.caseking.de/msi-geforce-rtx-3060-ti-ventus-3x-oc-8192-mb-gddr6-gcmc-245.html',
},
{
brand: 'pny',
model: 'xlr8 epic x',
series: '3060ti',
url:
'https://www.caseking.de/pny-geforce-rtx-3060-ti-xlr8-gaming-revel-epic-x-8192-mb-gddr6-gcpn-080.html',
},
{
brand: 'pny',
model: 'xlr8 uprising',
series: '3060ti',
url:
'https://www.caseking.de/pny-geforce-rtx-3060-ti-uprising-8g-8192-mb-gddr6-gcpn-079.html',
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3060-ti-twin-edge-8192-mb-gddr6-gczt-169.html',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060ti',
url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3060-ti-twin-edge-oc-8192-mb-gddr6-gczt-170.html',
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url:
'https://www.caseking.de/asus-geforce-rtx-3070-dual-8g-8192-mb-gddr6-gcas-404.html',
},
{
brand: 'asus',
model: 'tuf oc',
series: '3070',
url:
'https://www.caseking.de/asus-geforce-rtx-3070-tuf-o8g-8192-mb-gddr6-gcas-406.html',
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url:
'https://www.caseking.de/asus-geforce-rtx-3070-rog-strix-o8g-8192-mb-gddr6-gcas-403.html',
},
{
brand: 'asus',
model: 'dual oc',
series: '3070',
url:
'https://www.caseking.de/asus-geforce-rtx-3070-dual-o8g-8192-mb-gddr6-gcas-405.html',
},
{
brand: 'asus',
model: 'strix',
series: '3070',
url:
'https://www.caseking.de/asus-geforce-rtx-3070-rog-strix-8g-8192-mb-gddr6-gcas-415.html',
},
{
brand: 'evga',
model: 'xc3 black',
series: '3070',
url:
'https://www.caseking.de/evga-geforce-rtx-3070-xc3-black-gaming-8192-mb-gddr6-gcev-424.html',
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3070',
url:
'https://www.caseking.de/evga-geforce-rtx-3070-xc3-ultra-gaming-8192-mb-gddr6-gcev-426.html',
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3070',
url:
'https://www.caseking.de/evga-geforce-rtx-3070-ftw3-ultra-8192-mb-gddr6-gcev-428.html',
},
{
brand: 'evga',
model: 'xc3',
series: '3070',
url:
'https://www.caseking.de/evga-geforce-rtx-3070-xc3-8192-mb-gddr6-gcev-425.html',
},
{
brand: 'evga',
model: 'ftw3',
series: '3070',
url:
'https://www.caseking.de/evga-geforce-rtx-3070-ftw3-8192-mb-gddr6-gcev-427.html',
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3070',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3070-gaming-oc-8g-8192-mb-gddr6-gcgb-338.html',
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3070',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3070-master-8g-8192-mb-gddr6-gcgb-343.html',
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3070',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3070-vision-oc-8g-8192-mb-gddr6-gcgb-344.html',
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3070',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3070-eagle-8g-8192-mb-gddr6-gcgb-340.html',
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3070',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3070-eagle-oc-8g-8192-mb-gddr6-gcgb-339.html',
},
{
brand: 'inno3d',
model: 'twin x2',
series: '3070',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3070-twin-x2-8192-mb-gddr6-gci3-176.html',
},
{
brand: 'inno3d',
model: 'ichill x3',
series: '3070',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3070-ichill-x3-8192-mb-gddr6-gci3-174.html',
},
{
brand: 'inno3d',
model: 'ichill x4',
series: '3070',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3070-ichill-x4-8192-mb-gddr6-gci3-173.html',
},
{
brand: 'inno3d',
model: 'twin x2 oc',
series: '3070',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3070-twin-x2-oc-8192-mb-gddr6-gci3-175.html',
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3070',
url:
'https://www.caseking.de/msi-geforce-rtx-3070-gaming-x-trio-8192-mb-gddr6-gcmc-250.html',
},
{
brand: 'msi',
model: 'suprim',
series: '3070',
url:
'https://www.caseking.de/msi-geforce-rtx-3070-suprim-8g-8192-mb-gddr6-gcmc-256.html',
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3070',
url:
'https://www.caseking.de/msi-geforce-rtx-3070-ventus-2x-oc-8192-mb-gddr6-gcmc-249.html',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.caseking.de/msi-geforce-rtx-3070-ventus-3x-oc-8192-mb-gddr6-gcmc-251.html',
},
{
brand: 'msi',
model: 'suprim x',
series: '3070',
url:
'https://www.caseking.de/msi-geforce-rtx-3070-suprim-x-8g-8192-mb-gddr6-gcmc-254.html',
},
{
brand: 'pny',
model: 'xlr8 epic x',
series: '3070',
url:
'https://www.caseking.de/pny-geforce-rtx-3070-xlr8-gaming-revel-epic-x-rgb-8192-mb-gddr6-gcpn-078.html',
},
{
brand: 'pny',
model: 'dual fan',
series: '3070',
url:
'https://www.caseking.de/pny-geforce-rtx-3070-dual-fan-8192-mb-gddr6-gcpn-077.html',
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3070-twin-edge-8192-mb-gddr6-gczt-164.html',
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3070',
url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3070-twin-edge-oc-8192-mb-gddr6-gczt-168.html',
},
{
brand: 'zotac',
model: 'twin edge oc white',
series: '3070',
url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3070-twin-edge-oc-white-8192-mb-gddr6-gczt-171.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3080-rog-strix-10g-10240-mb-gddr6x-gcas-400.html' 'https://www.caseking.de/asus-geforce-rtx-3080-rog-strix-10g-10240-mb-gddr6x-gcas-400.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3080-rog-strix-o10g-10240-mb-gddr6x-gcas-399.html' 'https://www.caseking.de/asus-geforce-rtx-3080-rog-strix-o10g-10240-mb-gddr6x-gcas-399.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3080-tuf-gaming-10g-10240-mb-gddr6x-gcas-394.html' 'https://www.caseking.de/asus-geforce-rtx-3080-tuf-gaming-10g-10240-mb-gddr6x-gcas-394.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3080-tuf-gaming-o10g-10240-mb-gddr6x-gcas-396.html' 'https://www.caseking.de/asus-geforce-rtx-3080-tuf-gaming-o10g-10240-mb-gddr6x-gcas-396.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3080-ftw3-gaming-10240-mb-gddr6x-gcev-416.html' 'https://www.caseking.de/evga-geforce-rtx-3080-ftw3-gaming-10240-mb-gddr6x-gcev-416.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3080-ftw3-ultra-gaming-10240-mb-gddr6x-gcev-417.html' 'https://www.caseking.de/evga-geforce-rtx-3080-ftw3-ultra-gaming-10240-mb-gddr6x-gcev-417.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3080-xc3-gaming-10240-mb-gddr6x-gcev-415.html' 'https://www.caseking.de/evga-geforce-rtx-3080-xc3-gaming-10240-mb-gddr6x-gcev-415.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3080-xc3-black-gaming-10240-mb-gddr6x-gcev-414.html' 'https://www.caseking.de/evga-geforce-rtx-3080-xc3-black-gaming-10240-mb-gddr6x-gcev-414.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3080-xc3-ultra-gaming-10240-mb-gddr6x-gcev-423.html' 'https://www.caseking.de/evga-geforce-rtx-3080-xc3-ultra-gaming-10240-mb-gddr6x-gcev-423.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'aorus master', model: 'aorus master',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-master-10g-10240-mb-gddr6x-gcgb-331.html' 'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-master-10g-10240-mb-gddr6x-gcgb-331.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/gigabyte-geforce-rtx-3080-eagle-oc-10g-10240-mb-gddr6x-gcgb-326.html' 'https://www.caseking.de/gigabyte-geforce-rtx-3080-eagle-oc-10g-10240-mb-gddr6x-gcgb-326.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/gigabyte-geforce-rtx-3080-gaming-oc-10g-10240-mb-gddr6x-gcgb-327.html' 'https://www.caseking.de/gigabyte-geforce-rtx-3080-gaming-oc-10g-10240-mb-gddr6x-gcgb-327.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'vision oc', model: 'vision oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/gigabyte-geforce-rtx-3080-vision-oc-10g-10240-mb-gddr6x-gcgb-332.html' 'https://www.caseking.de/gigabyte-geforce-rtx-3080-vision-oc-10g-10240-mb-gddr6x-gcgb-332.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/inno3d-geforce-rtx-3080-ichill-x3-10240-mb-gddr6x-gci3-170.html' 'https://www.caseking.de/inno3d-geforce-rtx-3080-ichill-x3-10240-mb-gddr6x-gci3-170.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/inno3d-geforce-rtx-3080-ichill-x4-10240-mb-gddr6x-gci3-169.html' 'https://www.caseking.de/inno3d-geforce-rtx-3080-ichill-x4-10240-mb-gddr6x-gci3-169.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'twin x2 oc', model: 'twin x2 oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/inno3d-geforce-rtx-3080-twin-x2-oc-10240-mb-gddr6x-gci3-171.html' 'https://www.caseking.de/inno3d-geforce-rtx-3080-twin-x2-oc-10240-mb-gddr6x-gci3-171.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/msi-geforce-rtx-3080-gaming-x-trio-10g-10240-mb-gddr6x-gcmc-248.html' 'https://www.caseking.de/msi-geforce-rtx-3080-gaming-x-trio-10g-10240-mb-gddr6x-gcmc-248.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'ventus 3x oc', model: 'ventus 3x oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/msi-geforce-rtx-3080-ventus-3x-10g-oc-10240-mb-gddr6x-gcmc-247.html' 'https://www.caseking.de/msi-geforce-rtx-3080-ventus-3x-10g-oc-10240-mb-gddr6x-gcmc-247.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/pny-geforce-rtx-3080-xlr8-gaming-epic-x-rgb-10240-mb-gddr6x-gcpn-075.html' 'https://www.caseking.de/pny-geforce-rtx-3080-xlr8-gaming-epic-x-rgb-10240-mb-gddr6x-gcpn-075.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/pny-geforce-rtx-3080-xlr8-gaming-revel-epic-x-rgb-10240-mb-gddr6x-gcpn-076.html' 'https://www.caseking.de/pny-geforce-rtx-3080-xlr8-gaming-revel-epic-x-rgb-10240-mb-gddr6x-gcpn-076.html',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'amp holo', model: 'amp holo',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3080-amp-holo-10240-mb-gddr6x-gczt-166.html' 'https://www.caseking.de/zotac-gaming-geforce-rtx-3080-amp-holo-10240-mb-gddr6x-gczt-166.html',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity oc', model: 'trinity oc',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3080-trinity-oc-10240-mb-gddr6x-gczt-167.html' 'https://www.caseking.de/zotac-gaming-geforce-rtx-3080-trinity-oc-10240-mb-gddr6x-gczt-167.html',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3080', series: '3080',
url: url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3080-trinity-10240-mb-gddr6x-gczt-163.html' 'https://www.caseking.de/zotac-gaming-geforce-rtx-3080-trinity-10240-mb-gddr6x-gczt-163.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme',
series: '3080',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-xtreme-10g-10240-mb-gddr6x-gcgb-333.html',
},
{
brand: 'msi',
model: 'suprim x',
series: '3080',
url:
'https://www.caseking.de/msi-geforce-rtx-3080-suprim-x-10g-10240-mb-gddr6x-gcmc-253.html',
},
{
brand: 'asus',
model: 'ekwb',
series: '3080',
url:
'https://www.caseking.de/asus-geforce-rtx-3080-ekwb-10g-10240-mb-gddr6x-gcas-413.html',
},
{
brand: 'inno3d',
model: 'ichill frostbite',
series: '3080',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3080-ichill-frostbite-10240-mb-gddr6x-gci3-177.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme waterforce wb',
series: '3080',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-wb-10g-10240-mb-gddr6x-gcgb-352.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme waterforce',
series: '3080',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-10g-10240-mb-gddr6x-gcgb-351.html',
},
{
brand: 'evga',
model: 'xc3 ultra hybrid',
series: '3080',
url:
'https://www.caseking.de/evga-geforce-rtx-3080-xc3-ultra-hybrid-gaming-10240-mb-gddr6x-gcev-435.html',
},
{
brand: 'evga',
model: 'ftw3 ultra hybrid',
series: '3080',
url:
'https://www.caseking.de/evga-geforce-rtx-3080-ftw3-ultra-hybrid-gaming-10240-mb-gddr6x-gcev-436.html',
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3080',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3080-eagle-10g-10240-mb-gddr6x-gcgb-353.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix', model: 'strix',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3090-rog-strix-24g-24576-mb-gddr6x-gcas-397.html' 'https://www.caseking.de/asus-geforce-rtx-3090-rog-strix-24g-24576-mb-gddr6x-gcas-397.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix oc', model: 'strix oc',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3090-rog-strix-o24g-24576-mb-gddr6x-gcas-398.html' 'https://www.caseking.de/asus-geforce-rtx-3090-rog-strix-o24g-24576-mb-gddr6x-gcas-398.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3090-tuf-gaming-24g-24576-mb-gddr6x-gcas-393.html' 'https://www.caseking.de/asus-geforce-rtx-3090-tuf-gaming-24g-24576-mb-gddr6x-gcas-393.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf oc', model: 'tuf oc',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/asus-geforce-rtx-3090-tuf-gaming-o24g-24576-mb-gddr6x-gcas-395.html' 'https://www.caseking.de/asus-geforce-rtx-3090-tuf-gaming-o24g-24576-mb-gddr6x-gcas-395.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3', model: 'ftw3',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3090-ftw3-gaming-24576-mb-gddr6x-gcev-421.html' 'https://www.caseking.de/evga-geforce-rtx-3090-ftw3-gaming-24576-mb-gddr6x-gcev-421.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'ftw3 ultra', model: 'ftw3 ultra',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3090-ftw3-ultra-gaming-24576-mb-gddr6x-gcev-422.html' 'https://www.caseking.de/evga-geforce-rtx-3090-ftw3-ultra-gaming-24576-mb-gddr6x-gcev-422.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3', model: 'xc3',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3090-xc3-gaming-24576-mb-gddr6x-gcev-419.html' 'https://www.caseking.de/evga-geforce-rtx-3090-xc3-gaming-24576-mb-gddr6x-gcev-419.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 black', model: 'xc3 black',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3090-xc3-black-gaming-24576-mb-gddr6x-gcev-418.html' 'https://www.caseking.de/evga-geforce-rtx-3090-xc3-black-gaming-24576-mb-gddr6x-gcev-418.html',
}, },
{ {
brand: 'evga', brand: 'evga',
model: 'xc3 ultra', model: 'xc3 ultra',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/evga-geforce-rtx-3090-xc3-ultra-gaming-24576-mb-gddr6x-gcev-420.html' 'https://www.caseking.de/evga-geforce-rtx-3090-xc3-ultra-gaming-24576-mb-gddr6x-gcev-420.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'eagle oc', model: 'eagle oc',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/gigabyte-geforce-rtx-3090-eagle-oc-24g-24576-mb-gddr6x-gcgb-329.html' 'https://www.caseking.de/gigabyte-geforce-rtx-3090-eagle-oc-24g-24576-mb-gddr6x-gcgb-329.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/gigabyte-geforce-rtx-3090-gaming-oc-24g-24576-mb-gddr6x-gcgb-328.html' 'https://www.caseking.de/gigabyte-geforce-rtx-3090-gaming-oc-24g-24576-mb-gddr6x-gcgb-328.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'gaming x3', model: 'gaming x3',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/inno3d-geforce-rtx-3090-gaming-x3-24576-mb-gddr6x-gci3-172.html' 'https://www.caseking.de/inno3d-geforce-rtx-3090-gaming-x3-24576-mb-gddr6x-gci3-172.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x3', model: 'ichill x3',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-x3-24576-mb-gddr6x-gci3-168.html' 'https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-x3-24576-mb-gddr6x-gci3-168.html',
}, },
{ {
brand: 'inno3d', brand: 'inno3d',
model: 'ichill x4', model: 'ichill x4',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-x4-24576-mb-gddr6x-gci3-167.html' 'https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-x4-24576-mb-gddr6x-gci3-167.html',
}, },
{ {
brand: 'msi', brand: 'msi',
model: 'gaming x trio', model: 'gaming x trio',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/msi-geforce-rtx-3090-gaming-x-trio-24g-24576-mb-gddr6x-gcmc-244.html' 'https://www.caseking.de/msi-geforce-rtx-3090-gaming-x-trio-24g-24576-mb-gddr6x-gcmc-244.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/pny-geforce-rtx-3090-xlr8-gaming-epic-x-rgb-24576-mb-gddr6x-gcpn-073.html' 'https://www.caseking.de/pny-geforce-rtx-3090-xlr8-gaming-epic-x-rgb-24576-mb-gddr6x-gcpn-073.html',
}, },
{ {
brand: 'pny', brand: 'pny',
model: 'xlr8 revel', model: 'xlr8 revel',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/pny-geforce-rtx-3090-xlr8-gaming-revel-epic-x-rgb-24576-mb-gddr6x-gcpn-074.html' 'https://www.caseking.de/pny-geforce-rtx-3090-xlr8-gaming-revel-epic-x-rgb-24576-mb-gddr6x-gcpn-074.html',
}, },
{ {
brand: 'zotac', brand: 'zotac',
model: 'trinity', model: 'trinity',
series: '3090', series: '3090',
url: url:
'https://www.caseking.de/zotac-gaming-geforce-rtx-3090-trinity-24576-mb-gddr6x-gczt-162.html' 'https://www.caseking.de/zotac-gaming-geforce-rtx-3090-trinity-24576-mb-gddr6x-gczt-162.html',
},
{
brand: 'asus',
model: 'ekwb',
series: '3090',
url:
'https://www.caseking.de/asus-geforce-rtx-3090-ekwb-24g-24576-mb-gddr6x-gcas-414.html',
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3090',
url:
'https://www.caseking.de/msi-geforce-rtx-3090-ventus-3x-24g-oc-24576-mb-gddr6x-gcmc-243.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme waterforce wb',
series: '3090',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-wb-24g-24576-mb-gddr6x-gcgb-355.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme waterforce',
series: '3090',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-24g-24576-mb-gddr6x-gcgb-354.html',
},
{
brand: 'gigabyte',
model: 'aorus xtreme',
series: '3090',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-xtreme-24g-24576-mb-gddr6x-gcgb-335.html',
},
{
brand: 'evga',
model: 'ftw3 ultra hybrid',
series: '3090',
url:
'https://www.caseking.de/evga-geforce-rtx-3090-ftw3-ultra-hybrid-gaming-24576-mb-gddr6x-gcev-434.html',
},
{
brand: 'evga',
model: 'xc3 ultra hybrid',
series: '3090',
url:
'https://www.caseking.de/evga-geforce-rtx-3090-xc3-ultra-hybrid-gaming-24576-mb-gddr6x-gcev-433.html',
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3090',
url:
'https://www.caseking.de/gigabyte-aorus-geforce-rtx-3090-master-24g-24576-mb-gddr6x-gcgb-334.html',
},
{
brand: 'inno3d',
model: 'ichill frostbite',
series: '3090',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-frostbite-24576-mb-gddr6x-gci3-178.html',
},
{
brand: 'msi',
model: 'suprim x',
series: '3090',
url:
'https://www.caseking.de/inno3d-geforce-rtx-3090-ichill-frostbite-24576-mb-gddr6x-gci3-178.html',
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3090',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3090-vision-oc-24g-24576-mb-gddr6x-gcgb-341.html',
},
{
brand: 'gigabyte',
model: 'turbo',
series: '3090',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3090-turbo-24g-24576-mb-gddr6x-gcgb-330.html',
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3090',
url:
'https://www.caseking.de/gigabyte-geforce-rtx-3090-eagle-24g-24576-mb-gddr6x-gcgb-342.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url:
'https://www.caseking.de/amd-ryzen-5-5600x-3-7-ghz-vermeer-am4-mit-amd-wraith-stealth-kuehler-hpam-202.html' 'https://www.caseking.de/amd-ryzen-5-5600x-3-7-ghz-vermeer-am4-mit-amd-wraith-stealth-kuehler-hpam-202.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: url:
'https://www.caseking.de/amd-ryzen-7-5800x-3-8-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-203.html' 'https://www.caseking.de/amd-ryzen-7-5800x-3-8-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-203.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: url:
'https://www.caseking.de/amd-ryzen-9-5900x-3-7-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-204.html' 'https://www.caseking.de/amd-ryzen-9-5900x-3-7-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-204.html',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
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', brand: 'sapphire',
model: 'nitro oc se', model: 'nitro oc se',
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-16g-16384-mb-gddr6-gcsp-215.html' 'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-16g-16384-mb-gddr6-gcsp-215.html',
}, },
{ {
brand: 'sapphire', brand: 'sapphire',
model: 'nitro oc', model: 'nitro oc',
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-se-16g-16384-mb-gddr6-gcsp-214.html' 'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-se-16g-16384-mb-gddr6-gcsp-214.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming oc', model: 'gaming oc',
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-gaming-oc-16g-16384-mb-gddr6-gcgb-356.html' 'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-gaming-oc-16g-16384-mb-gddr6-gcgb-356.html',
}, },
{ {
brand: 'gigabyte', brand: 'gigabyte',
model: 'gaming', model: 'gaming',
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-16g-16384-mb-gddr6-gcgb-357.html' 'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-16g-16384-mb-gddr6-gcgb-357.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'strix lc', model: 'strix lc',
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.caseking.de/asus-radeon-rx-6800-xt-rog-strix-lc-o16g-16384-mb-gddr6-gcas-416.html' 'https://www.caseking.de/asus-radeon-rx-6800-xt-rog-strix-lc-o16g-16384-mb-gddr6-gcas-416.html',
}, },
{ {
brand: 'asus', brand: 'asus',
model: 'tuf', model: 'tuf',
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.caseking.de/asus-radeon-rx-6800-xt-tuf-o16g-16384-mb-gddr6-gcas-417.html' 'https://www.caseking.de/asus-radeon-rx-6800-xt-tuf-o16g-16384-mb-gddr6-gcas-417.html',
} },
], ],
name: 'caseking' name: 'caseking',
}; };
+26 -21
View File
@@ -7,16 +7,16 @@ export const Ccl: Store = {
labels: { labels: {
inStock: { inStock: {
container: '#pnlAddToBasket', container: '#pnlAddToBasket',
text: ['add to basket'] text: ['add to basket'],
}, },
maxPrice: { maxPrice: {
container: '#pnlPriceText > p', container: '#pnlPriceText > p',
euroFormat: false // Note: CCL uses non-euroFromat as price seperator euroFormat: false, // Note: CCL uses non-euroFromat as price seperator
}, },
outOfStock: { outOfStock: {
container: '#pnlSoldOut', container: '#pnlSoldOut',
text: ['sold out', 'coming soon'] text: ['sold out', 'coming soon'],
} },
}, },
links: [ links: [
{ {
@@ -24,82 +24,87 @@ export const Ccl: Store = {
model: 'test:model', model: 'test:model',
series: 'test:series', series: 'test:series',
url: url:
'https://www.cclonline.com/product/296443/RTX-2060-SUPER-VENTUS-GP-OC/Graphics-Cards/MSI-GeForce-RTX-2060-SUPER-VENTUS-GP-OC-8GB-Overclocked-Graphics-Card/VGA5671/' 'https://www.cclonline.com/product/296443/RTX-2060-SUPER-VENTUS-GP-OC/Graphics-Cards/MSI-GeForce-RTX-2060-SUPER-VENTUS-GP-OC-8GB-Overclocked-Graphics-Card/VGA5671/',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5600x', model: '5600x',
series: 'ryzen5600', series: 'ryzen5600',
url: url:
'https://www.cclonline.com/product/331765/100-100000065BOX/CPU-Processors/AMD-Ryzen-5-5600X-3-7GHz-Hexa-Core-Processor-with-6-Cores-12-Threads-65W-TDP-35MB-Cache-4-6GHz-Turbo-Wraith-Stealth-Cooler/CPU0679/' 'https://www.cclonline.com/product/331765/100-100000065BOX/CPU-Processors/AMD-Ryzen-5-5600X-3-7GHz-Hexa-Core-Processor-with-6-Cores-12-Threads-65W-TDP-35MB-Cache-4-6GHz-Turbo-Wraith-Stealth-Cooler/CPU0679/',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5800x', model: '5800x',
series: 'ryzen5800', series: 'ryzen5800',
url: url:
'https://www.cclonline.com/product/331766/100-100000063WOF/CPU-Processors/AMD-Ryzen-7-5800X-3-8GHz-Octa-Core-Processor-with-8-Cores-16-Threads-105W-TDP-36MB-Cache-4-7GHz-Turbo-No-Cooler/CPU0680/' 'https://www.cclonline.com/product/331766/100-100000063WOF/CPU-Processors/AMD-Ryzen-7-5800X-3-8GHz-Octa-Core-Processor-with-8-Cores-16-Threads-105W-TDP-36MB-Cache-4-7GHz-Turbo-No-Cooler/CPU0680/',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5900x', model: '5900x',
series: 'ryzen5900', series: 'ryzen5900',
url: url:
'https://www.cclonline.com/product/331767/100-100000061WOF/CPU-Processors/AMD-Ryzen-9-5900X-3-7GHz-Dodeca-Core-Processor-with-12-Cores-24-Threads-105W-TDP-70MB-Cache-4-8GHz-Turbo-No-Cooler/CPU0681/' 'https://www.cclonline.com/product/331767/100-100000061WOF/CPU-Processors/AMD-Ryzen-9-5900X-3-7GHz-Dodeca-Core-Processor-with-12-Cores-24-Threads-105W-TDP-70MB-Cache-4-8GHz-Turbo-No-Cooler/CPU0681/',
}, },
{ {
brand: 'amd', brand: 'amd',
model: '5950x', model: '5950x',
series: 'ryzen5950', series: 'ryzen5950',
url: url:
'https://www.cclonline.com/product/331768/100-100000059WOF/CPU-Processors/AMD-Ryzen-9-5950X-3-4GHz-Hexadeca-Core-Processor-with-16-Cores-32-Threads-105W-TDP-72MB-Cache-4-9GHz-Turbo-No-Cooler/CPU0682/' 'https://www.cclonline.com/product/331768/100-100000059WOF/CPU-Processors/AMD-Ryzen-9-5950X-3-4GHz-Hexadeca-Core-Processor-with-16-Cores-32-Threads-105W-TDP-72MB-Cache-4-9GHz-Turbo-No-Cooler/CPU0682/',
} },
], ],
linksBuilder: { linksBuilder: {
builder: getProductLinksBuilder({ builder: getProductLinksBuilder({
productsSelector: '.productListingContainerOuter .productList', productsSelector: '.productListingContainerOuter .productList',
sitePrefix: 'https://www.cclonline.com', sitePrefix: 'https://www.cclonline.com',
titleAttribute: 'title', titleAttribute: 'title',
titleSelector: '.productList_Detail a[title]' titleSelector: '.productList_Detail a[title]',
}), }),
urls: [ urls: [
{
series: '3060',
url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Graphics-Cards/',
},
{ {
series: '3060ti', series: '3060ti',
url: url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/' 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/',
}, },
{ {
series: '3070', series: '3070',
url: url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3070-Graphics-Cards/' 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3070-Graphics-Cards/',
}, },
{ {
series: '3080', series: '3080',
url: url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3080-Graphics-Cards/' 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3080-Graphics-Cards/',
}, },
{ {
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', series: 'rx6800',
url: url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-Graphics-Cards/' 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-Graphics-Cards/',
}, },
{ {
series: 'rx6800xt', series: 'rx6800xt',
url: url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/' 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/',
}, },
{ {
series: 'rx6900xt', series: 'rx6900xt',
url: url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/attributeslist/1268064/' 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/attributeslist/1268064/',
} },
] ],
}, },
name: 'ccl', name: 'ccl',
waitUntil: 'domcontentloaded' waitUntil: 'domcontentloaded',
}; };

Some files were not shown because too many files have changed in this diff Show More