Compare commits

...

154 Commits

Author SHA1 Message Date
github-actions[bot] bc2272e59a chore: release 3.2.0 (#980) 2020-12-06 00:35:45 -05:00
Michael Pietersen 888b5225b8 chore(bestbuy): 3060ti product links (#1197) 2020-12-06 00:34:03 -05:00
RDFurman 0c59d1e232 docs: add xfx brand (#1182) 2020-12-06 00:01:09 -05:00
Jef LeCompte 15ec12b0a3 feat(notification): add price to links (#1209)
fix(store): label selection ordering and pricing
fix(nvidia): deprecation notice removed outside of usa
fix(amazon): maxPrice selector

Resolves #1188
Resolves #673
Resolves #1187
2020-12-05 23:22:58 -05:00
Jef LeCompte f7b32e8ac5 feat(store): add custom labels for links (#1183)
Fixes #1132
Fixes #1163
2020-12-05 07:50:17 -05:00
Jef LeCompte 9bf33eceda chore: update issue templates 2020-12-04 18:53:50 -05:00
Jef LeCompte 14cbd5a05b fix(amazon-de): inStock selector
Fixes: #1178
2020-12-04 18:21:26 -05:00
Jef LeCompte ec0d9f50cb chore(deps): update 2020-12-04 17:54:34 -05:00
Jef LeCompte 4616f60766 ci: add stale cron job (#1176) 2020-12-04 17:52:43 -05:00
nazmi 36e38068d8 feat(store): add awd(uk), add 3060ti link builders (#1114) 2020-12-04 17:30:55 -05:00
Ben Turner ca5553cb20 fix(scan): links builder (#1161) 2020-12-04 17:29:12 -05:00
Michael Pietersen 34a8fd475a chore(microcenter): add 3060ti (#1171) 2020-12-04 17:28:27 -05:00
RDFurman 0569629dc8 chore(memex): add 3080 and 6800xt (#1168) 2020-12-04 17:23:55 -05:00
desigi 09f0236086 feat(store): add 3060ti to newegg-ca, canadacomputer, memoryexpress (#1172)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-04 17:21:20 -05:00
Jef LeCompte e67d97fe93 chore: update selectors, remove api lookup for now
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-04 17:05:28 -05:00
fnk93 75ee95b221 feat(store): add el corte ingles (#1107) 2020-12-04 10:49:53 -05:00
Darkgran1 3c727f1c9a chore(store): add 3060ti to link builders (#1156) 2020-12-04 10:46:43 -05:00
Sam Marshall 80e166c15d docs: add cd step (#1157) 2020-12-04 10:45:21 -05:00
jaw20 3b4fe78e95 chore(amazon): adds most available AIB cards (#1140) 2020-12-04 10:44:11 -05:00
dependabot[bot] ac8785d1e9 chore(deps): bump amannn/action-semantic-pull-request from v2.1.0 to v2.1.1 (#1150)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from v2.1.0 to v2.1.1.
- [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.0...153d429823cc133a83ab5d92065465a5c2f0d8b7)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-04 01:26:16 -05:00
SamP301 06f3aafae6 fix(bestbuy-ca): model always indicating in stock (#1145) 2020-12-04 01:25:47 -05:00
jaw20 f2ae423fa8 fix(store): removes unnecessary newegg links from bestbuy (#1126)
Fixes #1119
2020-12-03 12:47:08 -05:00
clreinki cbad0846af chore(newegg): add 3060ti models (#1112) 2020-12-03 12:44:37 -05:00
trinityhades a3a94c19d9 chore(zotac): add 3080 amp holo (#1133) 2020-12-03 12:29:53 -05:00
Jef LeCompte 6fd023e81e fix(amazon): price and cart buttons
Resolves #1125

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-03 11:55:07 -05:00
Jef LeCompte e836acf1e9 docs: update COUNTRY information 2020-12-03 11:37:56 -05:00
Jef LeCompte 5bbdfa2abc fix(smythstoys): add out of stock label
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 17:47:06 -05:00
Jef LeCompte 1ed0593767 feat(store): add smythstoys
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 17:31:10 -05:00
Jef LeCompte cbc43304bf fix(amazon-de): remove xbox cart links
Fixes #1095

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 16:58:05 -05:00
Jef LeCompte feddac76d3 fix(newegg): maxPrice selector using used price
Fixes #1052

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 16:51:53 -05:00
Jef LeCompte 0e8774b1d0 chore(newegg): add big navi aibs
Part of #931

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 16:46:04 -05:00
Jef LeCompte 0e5edee683 chore(store): add big navi aibs
Resolves #931 #937 #1098

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 16:38:32 -05:00
fnk93 0b11238370 fix(store): add backoffStatusCodes and new captcha container (#1110) 2020-12-02 16:28:31 -05:00
fnk93 6de8c4a5ee feat(store): add amazon-de-warehouse (#1102) 2020-12-02 16:27:42 -05:00
fnk93 cf70f1ff4f feat(store): add spielegrotte (#1056) 2020-12-02 16:25:39 -05:00
Jef LeCompte a0a961aa5b chore(lint): ignore max 5 params
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 16:14:52 -05:00
fnk93 7d29ef80ba feat(store): add Medimax (#1057) 2020-12-02 16:08:53 -05:00
fnk93 e198e44613 fix(store): update euroFormat for expert and otto (#1108) 2020-12-02 16:08:09 -05:00
fnk93 f7b753334f chore(store): update eu stores (#1100) 2020-12-02 16:03:33 -05:00
Jef LeCompte 21e74cfe76 fix(walmart): instock container and add test:series
Related #1106

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 15:51:02 -05:00
Joseph Sortino ea456116da chore(bandh): add 3060ti (#1104) 2020-12-02 13:28:35 -05:00
dependabot[bot] a0a0ca8755 chore(deps-dev): bump @types/async from 3.2.4 to 3.2.5 (#1054)
Bumps [@types/async](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/async) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/async)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-02 13:19:28 -05:00
dependabot[bot] c26bd8f06a chore(deps): bump GoogleCloudPlatform/release-please-action from v2.9.3 to v2.10 (#1083)
Bumps [GoogleCloudPlatform/release-please-action](https://github.com/GoogleCloudPlatform/release-please-action) from v2.9.3 to v2.10.
- [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.9.3...ea92f88c9a810e645f40f778ad87b21ffb3422ca)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-02 13:19:00 -05:00
Foxlet c5799fddc7 chore(zotac): add 3060ti, 3070 (#1094) 2020-12-02 13:18:49 -05:00
fnk93 af96c5f2e8 feat(store): add Otto (#1096) 2020-12-02 13:16:19 -05:00
GeorgSchessler 2fc018bbb2 chore(mediamarkt): add 3060ti (#1089) 2020-12-02 13:14:43 -05:00
GeorgSchessler a72a35c755 chore(saturn): add 3060ti (#1091) 2020-12-02 13:13:59 -05:00
fnk93 202698f917 feat(store): add expert (#1105) 2020-12-02 13:13:25 -05:00
Jef LeCompte d7f242780e feat(topachat): add maxPrice
Closes #1097

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-02 12:19:01 -05:00
Jef LeCompte b2f5c1a3ed feat(store): add argos with ps5
Updated env-example
Add max price for test series

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-01 23:56:15 -05:00
Jef LeCompte 29478bff2d feat(bestbuy-ca): add 3060ti cards
Update test matches

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-01 23:08:24 -05:00
Jef LeCompte beb50696fb chore: change 3060 to 3060ti
Add to `README`
Update test:series for bestbuy

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-12-01 22:44:33 -05:00
Mark Dietzer 490d44e1fd feat: add proxy rotation (settable per store) (#1026) 2020-12-01 22:25:48 -05:00
Shervin Mortazavi 65df944973 fix(bestbuy-ca): replace old evga xc3 ultra (#1058) 2020-12-01 18:59:08 -05:00
fnk93 ce43654847 chore(cyberport): remove xbox/ps5 (#1065) 2020-12-01 18:26:08 -05:00
petertdinh e9a39c4092 feat(bestbuy): add 3060 series (#1074) 2020-12-01 18:22:07 -05:00
DasGinger 4bccc6b407 dics: correct model values for xbox (#1051) 2020-11-30 23:34:25 -05:00
Jef LeCompte 37d62ebcd5 docs: punctuation 2020-11-30 20:38:25 -05:00
Jef LeCompte af080f376d docs: add more faq 2020-11-30 20:37:38 -05:00
Joseph Sortino 19eece18dc feat(store): add antonline store (#1042) 2020-11-30 17:01:09 -05:00
fnk93 1774afc1c3 feat(store): add Euronics DE (#1045) 2020-11-30 17:00:30 -05:00
fnk93 79a3f33150 feat(store): add Gamestop DE (#1046) 2020-11-30 17:00:03 -05:00
Marcel Zobus 796c2a52ac chore(amd-de): add rx6800xt (#1044) 2020-11-30 16:59:09 -05:00
fnk93 0b60d3cf9a chore(store): add xbox/ps5 to eu stores (#1047) 2020-11-30 16:58:27 -05:00
dependabot[bot] fb696bf85a chore(deps-dev): bump webpack from 5.6.0 to 5.9.0 (#1031)
Bumps [webpack](https://github.com/webpack/webpack) from 5.6.0 to 5.9.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.6.0...v5.9.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-30 12:12:58 -05:00
dependabot[bot] 0b8e0d498c chore(deps): bump @slack/web-api from 5.13.0 to 5.14.0 (#1032)
Bumps [@slack/web-api](https://github.com/slackapi/node-slack-sdk) from 5.13.0 to 5.14.0.
- [Release notes](https://github.com/slackapi/node-slack-sdk/releases)
- [Commits](https://github.com/slackapi/node-slack-sdk/compare/@slack/web-api@5.13.0...@slack/web-api@5.14.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-30 12:12:46 -05:00
MrMcChewy 8ecba2db96 chore(microcenter): add 3070 models (#1030) 2020-11-30 09:27:40 -05:00
xeaon eb176d1735 chore(caseking): add rx6800xt (#1028) 2020-11-30 09:25:36 -05:00
xeaon bea26450bf chore(alternate): add rx6800xt (#1027) 2020-11-30 09:20:38 -05:00
Foxlet 8c82705dd3 chore(amd): add rx6800 (#926) 2020-11-30 00:55:01 -05:00
Juan Francisco Lopez Jimenez feae978de9 feat(store): add wipoid store (#1018)
Co-authored-by: nakyl <nakyl@hotmail.com>
2020-11-30 00:54:06 -05:00
JP Confessor 5e6159b994 chore(bestbuy-ca): add ps5 console (#1020) 2020-11-30 00:52:51 -05:00
Luca Rinaldi 30a51a38be feat(store): add ePrice store (#1016)
feat: add ps5 max price
fix: typo of `MAX_PRICE_SERIES_CORSAIR_SF` on .env-example
2020-11-29 10:44:14 -05:00
Luca Rinaldi de7036c7cc feat(store): update the italian store links (#1002) 2020-11-28 21:58:00 -05:00
Yuheng Ouyang a79ce6f406 chore(store): add amd (ca) (#1006) 2020-11-28 21:55:25 -05:00
dependabot[bot] 0b4966e452 chore(deps-dev): bump @types/node from 14.14.9 to 14.14.10 (#946) 2020-11-28 12:16:13 -05:00
dependabot[bot] be48520469 chore(deps): bump twitch from 4.3.1 to 4.3.2 (#944) 2020-11-28 12:16:01 -05:00
dependabot[bot] d2efb91de4 chore(deps): bump mqtt from 4.2.5 to 4.2.6 (#947) 2020-11-28 12:15:39 -05:00
dependabot[bot] a519a79ee7 chore(deps): bump twitch-chat-client from 4.3.0 to 4.3.2 (#943) 2020-11-28 12:10:54 -05:00
dependabot[bot] 7db79345a0 chore(deps): bump GoogleCloudPlatform/release-please-action from v2.7.0 to v2.9.3 (#942) 2020-11-28 12:09:52 -05:00
Luca Rinaldi b28bf73157 docs: update supported stores (#981) 2020-11-28 12:07:40 -05:00
Yuheng Ouyang 11b6316371 chore(newegg-ca): ad amd rx 6000 aib cards (#930) 2020-11-28 12:07:13 -05:00
MrMcChewy 10ce2db9ae chore(microcenter): add Strix OC (#992) 2020-11-28 12:02:23 -05:00
joslynesser 364c6c25df feat(proxy): socks5 support (#933) 2020-11-27 14:18:23 -05:00
Jean-Sébastien TRILLE a8d9c033b6 chore(store): Added RX6800 series to ccl store (#935) 2020-11-27 14:15:00 -05:00
eddwatts 7a441b4b65 chore(store): add 3070 series currys (#948) 2020-11-27 14:13:33 -05:00
eddwatts 09238da69c chore(store): add 6800 & 6800xt cards to scan (#950) 2020-11-27 14:13:06 -05:00
eddwatts 4d8700e856 chore(store): add 6800 & 6800xt cards to ebuyer (#951) 2020-11-27 14:12:37 -05:00
eddwatts 1ee9d38b32 chore(store): add 6800 & 6800xt cards to overclockers (#952) 2020-11-27 14:12:08 -05:00
Rees Varney db18157a49 fix: related products being picked up on scan (#954) 2020-11-27 14:11:28 -05:00
Enrico Martelli 3286d624a1 chore(store): add amd-it store and RX 6800 XT (#974) 2020-11-27 14:09:31 -05:00
Luca Rinaldi f663579f3d feat(store): add some italian stores with ps5 links (#976) 2020-11-27 14:08:34 -05:00
dependabot[bot] 20e8746748 chore(deps): bump twitch-auth from 4.3.0 to 4.3.1 (#908)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-24 16:50:41 -05:00
dependabot[bot] d0839beffe chore(deps): bump twitch from 4.3.0 to 4.3.1 (#910)
Bumps [twitch](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.1/packages/twitch)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-24 16:45:55 -05:00
dependabot[bot] 07b6b340f9 chore(deps): bump GoogleCloudPlatform/release-please-action from v2.6.0 to v2.7.0 (#897)
Bumps [GoogleCloudPlatform/release-please-action](https://github.com/GoogleCloudPlatform/release-please-action) from v2.6.0 to v2.7.0.
- [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.6.0...562cbbb6314482b22af9cd42cd3adf4159e4c705)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-24 16:45:19 -05:00
erikswain a99eecb461 fix(newegg): typo in 5800x url(#903) 2020-11-24 16:44:44 -05:00
David Gauch f7f0b08e30 chore(newegg): add cartUrl to AMD and Xbox items (#904) 2020-11-24 16:43:45 -05:00
David Gauch efddd01aa9 chore(walmart): add Corsair SF PSUs (#891) 2020-11-24 16:43:05 -05:00
David Gauch 0857b8a46e chore(walmart): add 5900x (#906) 2020-11-24 16:38:12 -05:00
Charles-Antoine Patenaude 67605a6e28 fix(memoryexpress): add backorder to outOfStock selector (#890) 2020-11-23 14:55:33 -05:00
dependabot[bot] 80826ba0bd chore(deps): bump dorny/paths-filter from v2.5.3 to v2.6.0 (#896)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from v2.5.3 to v2.6.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.5.3...eb75a1edc117d3756a18ef89958ee59f9500ba58)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-23 14:53:46 -05:00
Charles-Antoine Patenaude 06214eb4a8 fix(canadacomputers): add inStock selector, use english links (#889) 2020-11-23 14:53:07 -05:00
Chris Mendoza a62bd2e587 docs: add corsair and max price setting (#888) 2020-11-23 03:40:50 -05:00
David Gauch 4df57f578e chore(newegg): add Corsair SF PSUs (#892) 2020-11-23 03:39:12 -05:00
Jef LeCompte b4f34510d5 chore(ci): fix workflow syntax
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-22 12:03:14 -05:00
Jef LeCompte 429effb544 chore(ci): include docker build on dep change
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-22 12:00:53 -05:00
github-actions[bot] c2defe224a chore: release 3.1.0 (#774) 2020-11-22 11:57:58 -05:00
Chris Mendoza e552c9102d feat(store): add corsair sfx PSUs (#881) 2020-11-22 11:57:05 -05:00
Jef LeCompte 292e3603fd fix(store): generate links only for selected stores
Resolves: #694
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-22 11:53:17 -05:00
Jef LeCompte 85bbaf905e chore(xbox): add xbox series x
Closes: #836
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-22 11:34:30 -05:00
Armando D Jagucki 432d38bd5a chore(amazon): add big navi links (#880) 2020-11-22 10:08:22 -05:00
Sebastian 2d01cfddff feat(store): add captcha check to saturn and mediamarkt (#876) 2020-11-21 15:10:21 -05:00
Cristian 53739e05ab feat(store): add vsgamers (#767) 2020-11-21 13:28:01 -05:00
Jef LeCompte 9ad9793dc1 chore: update dependencies (#874)
Additional linting fixes

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-21 10:55:03 -05:00
dependabot[bot] f6f5c6bfe7 chore(deps): bump twitch-auth from 4.2.7 to 4.3.0 (#853)
Bumps [twitch-auth](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-auth) from 4.2.7 to 4.3.0.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.0/packages/twitch-auth)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-21 10:37:24 -05:00
SolidPIPe 28c965d653 docs: remove duplicated models (#861) 2020-11-21 10:31:56 -05:00
Asier Eguibar 4b689cb94e feat(coolmod): add maxPrice (#862) 2020-11-21 10:31:36 -05:00
Barmaley13 c3f38fb2c9 chore: add more 3070 cards, reorder links (#872) 2020-11-21 10:29:10 -05:00
dependabot[bot] 239b5d3e8a chore(deps): bump twitch-chat-client from 4.2.7 to 4.3.0 (#856)
Bumps [twitch-chat-client](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch-chat-client) from 4.2.7 to 4.3.0.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.0/packages/twitch-chat-client)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-21 09:49:05 -05:00
dependabot[bot] 7694829dd6 chore(deps): bump twitch from 4.2.7 to 4.3.0 (#857)
Bumps [twitch](https://github.com/d-fischer/twitch/tree/HEAD/packages/twitch) from 4.2.7 to 4.3.0.
- [Release notes](https://github.com/d-fischer/twitch/releases)
- [Commits](https://github.com/d-fischer/twitch/commits/v4.3.0/packages/twitch)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-21 09:45:54 -05:00
Jef LeCompte d7921168cb chore: remove dependencies label 2020-11-19 18:28:51 -05:00
dependabot[bot] 9745190ee4 chore(deps-dev): bump webpack from 5.4.0 to 5.6.0 (#846)
Bumps [webpack](https://github.com/webpack/webpack) from 5.4.0 to 5.6.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.4.0...v5.6.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-19 18:08:50 -05:00
Jef LeCompte b5435643da chore: add quotes to .env-example
Based off #824

Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-19 18:07:16 -05:00
Jef LeCompte af631c86f1 revert: correcting newline split for multiple user agents
Ref: f16a9fb331, #824
2020-11-19 18:05:50 -05:00
dependabot[bot] 5eb36a6cb7 chore(deps): bump node-pagerduty from 1.3.5 to 1.3.6 (#845)
Bumps [node-pagerduty](https://github.com/kmartin-215/node-pagerduty) from 1.3.5 to 1.3.6.
- [Release notes](https://github.com/kmartin-215/node-pagerduty/releases)
- [Commits](https://github.com/kmartin-215/node-pagerduty/compare/1.3.5...1.3.6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-19 09:01:03 -05:00
xcaliber93 6f273305df feat(canadacomputers): add ryzen 5000 series (#842) 2020-11-19 09:00:46 -05:00
vmnt 6d292a11cd feat(newegg-ca): add big navi links (#843) 2020-11-19 08:59:37 -05:00
Rich Evans 89a762e2f5 feat(store): add amd rx 6000 series model (#832) 2020-11-18 20:14:27 -05:00
dependabot[bot] f9b617dd69 chore(deps): bump puppeteer from 5.4.1 to 5.5.0 (#819)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 5.4.1 to 5.5.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/puppeteer/puppeteer/compare/v5.4.1...v5.5.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-18 10:25:00 -05:00
dependabot[bot] 7fea7d58f0 chore(deps-dev): bump @types/node from 14.14.7 to 14.14.8 (#829)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.7 to 14.14.8.
- [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-11-18 10:24:43 -05:00
joslynesser f16a9fb331 fix(config): correcting newline split for multiple user agents (#824) 2020-11-18 10:24:17 -05:00
VictorV 777c31b420 feat(notification): add product link to email and telegram (#816) 2020-11-18 10:23:31 -05:00
Matt Hayward 229daabb34 chore: add amd cpus to uk stores (#833) 2020-11-18 10:22:37 -05:00
Cristian d0ebffd056 feat(store): add 3070 models to pccomponentes & coolmod (#820) 2020-11-17 10:23:14 -05:00
Jef LeCompte 3feda151c5 docs: add cloud provider FAQ
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-16 11:28:53 -05:00
dependabot[bot] d41798ac23 chore(deps): bump dorny/paths-filter from v2.5.2 to v2.5.3 (#814)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from v2.5.2 to v2.5.3.
- [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.5.2...d599443ba55e103985817f072734ef381431aeb4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-16 11:17:32 -05:00
James Hinton eb314afda5 feat(playstation): add outOfStock label (#812) 2020-11-16 11:12:35 -05:00
Jef LeCompte f377820894 chore: add question to issues template 2020-11-16 11:10:52 -05:00
Jef LeCompte 8933896c5c chore: remove duplicate chips
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-15 12:10:20 -05:00
Garret Picchioni 88a1303f73 chore(amazon): add zen 3 to us, es, and nl (#743) 2020-11-15 12:09:29 -05:00
Michael Vendivel 167713bb14 fix(amazon): add 5800x and 5600x (#802) 2020-11-15 12:05:14 -05:00
James Hinton 7c28c7f72b feat(store): add PlayStation store (#806) 2020-11-15 11:46:32 -05:00
Cristian b21b2440f7 chore(pccomponentes): add ryzen cpus (#756) 2020-11-14 22:05:06 -05:00
Michael Vendivel 63d550ca63 fix(bestbuy-ca): use proper selector (#801) 2020-11-14 22:02:49 -05:00
dependabot[bot] 8e1744c6b1 chore(deps): bump mqtt from 4.2.4 to 4.2.5 (#786)
Bumps [mqtt](https://github.com/mqttjs/MQTT.js) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/mqttjs/MQTT.js/releases)
- [Commits](https://github.com/mqttjs/MQTT.js/compare/v4.2.4...v4.2.5)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-13 11:17:47 -05:00
dependabot[bot] 0ed826fb5d chore(deps): bump nodemailer from 6.4.15 to 6.4.16 (#785)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.4.15 to 6.4.16.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.4.15...v6.4.16)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-13 11:14:46 -05:00
dependabot[bot] d47a3e064e chore(deps-dev): bump @types/async from 3.2.3 to 3.2.4 (#787)
Bumps [@types/async](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/async) from 3.2.3 to 3.2.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/async)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-13 11:14:36 -05:00
Clinton Judy 501ea34a54 feat(asus): add backoff codes (#790) 2020-11-13 11:11:48 -05:00
Clinton Judy b60ad12cf2 chore(newegg): add 3080 vision oc (#791) 2020-11-13 11:10:31 -05:00
rodrigorodrigo ef2036b75d docs: small typo on canadacomputers (#779) 2020-11-12 22:44:59 -05:00
Jef LeCompte c38bebb49d feat(store): add topachat (#776)
Co-authored-by: Oguzhan YAGCI <oyagci@student.42.fr>
2020-11-12 08:50:31 -05:00
Zyde22 02d7c47c40 feat: add amazon-fr to stores. (#766) 2020-11-12 08:39:45 -05:00
Jef LeCompte efe0d64f06 revert: pipeline changes
Ref: 15e4520213
Signed-off-by: Jef LeCompte <jeffreylec@gmail.com>
2020-11-12 08:37:37 -05:00
rodrigorodrigo bd69e471f7 feat(store): support for canadacomputers (#772) 2020-11-12 08:24:15 -05:00
100 changed files with 8295 additions and 1612 deletions
+94 -85
View File
@@ -2,88 +2,97 @@
# Read https://github.com/jef/streetmerchant#customization for help on customizing this file
#############################################################################################
ASCII_BANNER=
ASCII_COLOR=
AUTO_ADD_TO_CART=
BROWSER_TRUSTED=
COUNTRY=
DESKTOP_NOTIFICATIONS=
DISCORD_NOTIFY_GROUP=
DISCORD_WEB_HOOK=
EMAIL_PASSWORD=
EMAIL_TO=
EMAIL_USERNAME=
HEADLESS=
IN_STOCK_WAIT_TIME=
LOG_LEVEL=
LOW_BANDWIDTH=
MAX_PRICE_SERIES_3070=
MAX_PRICE_SERIES_3080=
MAX_PRICE_SERIES_3090=
MAX_PRICE_SERIES_RYZEN5600=
MAX_PRICE_SERIES_RYZEN5800=
MAX_PRICE_SERIES_RYZEN5900=
MAX_PRICE_SERIES_RYZEN5950=
MICROCENTER_LOCATION=
MQTT_BROKER_ADDRESS=
MQTT_BROKER_PORT=
MQTT_CLIENT_ID=
MQTT_PASSWORD=
MQTT_QOS=
MQTT_TOPIC=
MQTT_USERNAME=
NVIDIA_ADD_TO_CART_ATTEMPTS=
NVIDIA_SESSION_TTL=
OPEN_BROWSER=
PAGE_BACKOFF_MIN=
PAGE_BACKOFF_MAX=
PAGE_SLEEP_MIN=
PAGE_SLEEP_MAX=
PAGE_TIMEOUT=
PAGERDUTY_INTEGRATION_KEY=
PAGERDUTY_SEVERITY=
PHILIPS_HUE_API_KEY=
PHILIPS_HUE_CLOUD_ACCESS_TOKEN=
PHILIPS_HUE_CLOUD_CLIENT_ID=
PHILIPS_HUE_CLOUD_CLIENT_SECRET=
PHILIPS_HUE_CLOUD_REFRESH_TOKEN=
PHILIPS_HUE_LAN_BRIDGE_IP=
PHILIPS_HUE_LIGHT_COLOR=
PHILIPS_HUE_LIGHT_IDS=
PHILIPS_HUE_LIGHT_PATTERN=
PHONE_CARRIER=
PHONE_NUMBER=
PLAY_SOUND=
PROXY_ADDRESS=
PROXY_PORT=
PUSHBULLET=
PUSHOVER_TOKEN=
PUSHOVER_USER=
PUSHOVER_PRIORITY=
SCREENSHOT=
SHOW_ONLY_BRANDS=
SHOW_ONLY_MODELS=
SHOW_ONLY_SERIES=
SLACK_CHANNEL=
SLACK_TOKEN=
SMTP_ADDRESS=
SMTP_PORT=
STORES=
TELEGRAM_ACCESS_TOKEN=
TELEGRAM_CHAT_ID=
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_FROM_NUMBER=
TWILIO_TO_NUMBER=
TWITCH_ACCESS_TOKEN=
TWITCH_CHANNEL=
TWITCH_CLIENT_ID=
TWITCH_CLIENT_SECRET=
TWITCH_REFRESH_TOKEN=
TWITTER_ACCESS_TOKEN_KEY=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_TWEET_TAGS=
USER_AGENT=
WEB_PORT=
ASCII_BANNER=""
ASCII_COLOR=""
AUTO_ADD_TO_CART=""
BROWSER_TRUSTED=""
COUNTRY=""
DESKTOP_NOTIFICATIONS=""
DISCORD_NOTIFY_GROUP=""
DISCORD_WEB_HOOK=""
EMAIL_PASSWORD=""
EMAIL_TO=""
EMAIL_USERNAME=""
HEADLESS=""
IN_STOCK_WAIT_TIME=""
LOG_LEVEL=""
LOW_BANDWIDTH=""
MAX_PRICE_SERIES_3060TI=""
MAX_PRICE_SERIES_3070=""
MAX_PRICE_SERIES_3080=""
MAX_PRICE_SERIES_3090=""
MAX_PRICE_SERIES_CORSAIR_SF=""
MAX_PRICE_SERIES_RX6800=""
MAX_PRICE_SERIES_RX6800XT=""
MAX_PRICE_SERIES_RX6900XT=""
MAX_PRICE_SERIES_RYZEN5600=""
MAX_PRICE_SERIES_RYZEN5800=""
MAX_PRICE_SERIES_RYZEN5900=""
MAX_PRICE_SERIES_RYZEN5950=""
MAX_PRICE_SERIES_SONYPS5C=""
MAX_PRICE_SERIES_SONYPS5DE=""
MAX_PRICE_SERIES_TEST=""
MICROCENTER_LOCATION=""
MQTT_BROKER_ADDRESS=""
MQTT_BROKER_PORT=""
MQTT_CLIENT_ID=""
MQTT_PASSWORD=""
MQTT_QOS=""
MQTT_TOPIC=""
MQTT_USERNAME=""
NVIDIA_ADD_TO_CART_ATTEMPTS=""
NVIDIA_SESSION_TTL=""
OPEN_BROWSER=""
PAGE_BACKOFF_MIN=""
PAGE_BACKOFF_MAX=""
PAGE_SLEEP_MIN=""
PAGE_SLEEP_MAX=""
PAGE_TIMEOUT=""
PAGERDUTY_INTEGRATION_KEY=""
PAGERDUTY_SEVERITY=""
PHILIPS_HUE_API_KEY=""
PHILIPS_HUE_CLOUD_ACCESS_TOKEN=""
PHILIPS_HUE_CLOUD_CLIENT_ID=""
PHILIPS_HUE_CLOUD_CLIENT_SECRET=""
PHILIPS_HUE_CLOUD_REFRESH_TOKEN=""
PHILIPS_HUE_LAN_BRIDGE_IP=""
PHILIPS_HUE_LIGHT_COLOR=""
PHILIPS_HUE_LIGHT_IDS=""
PHILIPS_HUE_LIGHT_PATTERN=""
PHONE_CARRIER=""
PHONE_NUMBER=""
PLAY_SOUND=""
PROXY_ADDRESS=""
PROXY_PROTOCOL=""
PROXY_PORT=""
PUSHBULLET=""
PUSHOVER_TOKEN=""
PUSHOVER_USER=""
PUSHOVER_PRIORITY=""
SCREENSHOT=""
SHOW_ONLY_BRANDS=""
SHOW_ONLY_MODELS=""
SHOW_ONLY_SERIES=""
SLACK_CHANNEL=""
SLACK_TOKEN=""
SMTP_ADDRESS=""
SMTP_PORT=""
STORES=""
TELEGRAM_ACCESS_TOKEN=""
TELEGRAM_CHAT_ID=""
TWILIO_ACCOUNT_SID=""
TWILIO_AUTH_TOKEN=""
TWILIO_FROM_NUMBER=""
TWILIO_TO_NUMBER=""
TWITCH_ACCESS_TOKEN=""
TWITCH_CHANNEL=""
TWITCH_CLIENT_ID=""
TWITCH_CLIENT_SECRET=""
TWITCH_REFRESH_TOKEN=""
TWITTER_ACCESS_TOKEN_KEY=""
TWITTER_ACCESS_TOKEN_SECRET=""
TWITTER_CONSUMER_KEY=""
TWITTER_CONSUMER_SECRET=""
TWITTER_TWEET_TAGS=""
USER_AGENT=""
WEB_PORT=""
+29 -6
View File
@@ -7,12 +7,35 @@ assignees: jef
---
### Description
<!--- Feel free to join our discord server (https://discord.gg/gbVY4vB9JF) for general support --->
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
<!-- Describe the bug here. -->
<!-- Please be as detailed as possible. -->
<!-- Include OS, screenshots and console outputs. -->
## Expected Behavior
### Possible solution
<!--- Tell us what should happen -->
<!-- Describe the possible solution here. -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**.env file:**
```dotenv
```
## Logs
<!--- Provide a brief log -->
+4 -4
View File
@@ -7,10 +7,10 @@ assignees: jef
---
### Description
## Description
<!-- Describe the feature here. -->
<!-- Describe the feature here -->
### Possible solution
## Possible solution
<!-- Describe the possible solution here. -->
<!-- Describe the possible solution here -->
+12
View File
@@ -0,0 +1,12 @@
---
name: 🤔 Question
about: Open to all questions
title: ''
labels: 'type: question'
assignees: jef
---
## Description
<!-- Describe the question here -->
-6
View File
@@ -4,17 +4,11 @@ updates:
directory: "/"
schedule:
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
labels:
- "dependencies"
+3 -21
View File
@@ -3,30 +3,12 @@ on:
push:
branches:
- main
- develop
paths-ignore:
- '**.md'
jobs:
publish-nightly:
if: contains(github.ref, 'develop')
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
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
publish-latest:
if: contains(github.ref, 'main')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: GoogleCloudPlatform/release-please-action@v2.6.0
- uses: GoogleCloudPlatform/release-please-action@v2.10
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
@@ -42,6 +24,6 @@ jobs:
-t "ghcr.io/${GITHUB_REPOSITORY}:latest" .
env:
TAG_NAME: ${{ steps.release.outputs.tag_name }}
- name: publish latest
- name: publish latest image
if: ${{ steps.release.outputs.release_created }}
run: docker push "ghcr.io/${GITHUB_REPOSITORY}"
+6 -7
View File
@@ -2,11 +2,9 @@ name: ci
on:
pull_request:
branches:
- develop
paths-ignore:
- '**.md'
- main
jobs:
build-lint:
build-and-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -29,12 +27,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2.5.2
- uses: dorny/paths-filter@v2.6.0
id: filter
with:
filters: |
docker:
build:
- 'Dockerfile'
- 'package*.json'
- name: Build image
if: steps.filter.outputs.docker == 'true'
if: steps.filter.outputs.build == 'true'
run: docker build .
+18
View File
@@ -0,0 +1,18 @@
name: nightly
on:
schedule:
- cron: '0 0 * * *'
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}"
+1 -1
View File
@@ -10,6 +10,6 @@ jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v2.1.0
- uses: amannn/action-semantic-pull-request@v2.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+26
View File
@@ -0,0 +1,26 @@
name: 'Close stale issues'
on:
schedule:
- cron: '0 0 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
close-issue-message: ${{ env.CLOSE_MESSAGE }}
close-pr-message: ${{ env.CLOSE_MESSAGE }}
days-before-stale: 30
days-before-close: 5
exempt-issue-labels: ${{ env.EXEMPT_LABEL }}
exempt-pr-labels: ${{ env.EXEMPT_LABEL }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-label: ${{ env.STALE_LABEL }}
stale-pr-label: ${{ env.STALE_LABEL }}
stale-issue-message: ${{ env.STALE_MESSAGE }}
stale-pr-message: ${{ env.STALE_MESSAGE }}
env:
CLOSE_MESSAGE: 'This issue has been closed because it is stale. Reopen if necessary.'
EXEMPT_LABEL: 'status: needs discussion'
STALE_LABEL: 'status: stale'
STALE_MESSAGE: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days'
+85
View File
@@ -1,5 +1,90 @@
# Changelog
## [3.2.0](https://www.github.com/jef/streetmerchant/compare/v3.1.0...v3.2.0) (2020-12-06)
### Features
* **bestbuy:** add 3060 series ([#1074](https://www.github.com/jef/streetmerchant/issues/1074)) ([e9a39c4](https://www.github.com/jef/streetmerchant/commit/e9a39c40925736a2126f6138c369710989904d1d))
* **bestbuy-ca:** add 3060ti cards ([29478bf](https://www.github.com/jef/streetmerchant/commit/29478bff2d27d780cc6142526f3970b4a87290bc))
* **notification:** add price to links ([#1209](https://www.github.com/jef/streetmerchant/issues/1209)) ([15ec12b](https://www.github.com/jef/streetmerchant/commit/15ec12b0a3a95716243bfd06f6d41959bff7c36e)), closes [#1188](https://www.github.com/jef/streetmerchant/issues/1188) [#673](https://www.github.com/jef/streetmerchant/issues/673) [#1187](https://www.github.com/jef/streetmerchant/issues/1187)
* **proxy:** socks5 support ([#933](https://www.github.com/jef/streetmerchant/issues/933)) ([364c6c2](https://www.github.com/jef/streetmerchant/commit/364c6c25dfe9dcbeb29cb20cb46e9e8dcc2fe86b))
* **store:** add 3060ti to newegg-ca, canadacomputer, memoryexpress ([#1172](https://www.github.com/jef/streetmerchant/issues/1172)) ([09f0236](https://www.github.com/jef/streetmerchant/commit/09f0236086c59b25ebe611041bf063d536e3cc3d))
* **store:** add amazon-de-warehouse ([#1102](https://www.github.com/jef/streetmerchant/issues/1102)) ([6de8c4a](https://www.github.com/jef/streetmerchant/commit/6de8c4a5eec8d66fb47d87e309866ba18f3e28c7))
* **store:** add antonline store ([#1042](https://www.github.com/jef/streetmerchant/issues/1042)) ([19eece1](https://www.github.com/jef/streetmerchant/commit/19eece18dccd4489e1e441b92061fc3b5743e4cd))
* **store:** add argos with ps5 ([b2f5c1a](https://www.github.com/jef/streetmerchant/commit/b2f5c1a3ed93cfd56e575ec634d235565a17b6bc))
* **store:** add awd(uk), add 3060ti link builders ([#1114](https://www.github.com/jef/streetmerchant/issues/1114)) ([36e3806](https://www.github.com/jef/streetmerchant/commit/36e38068d8cd284c741d4906d5ba5fe8cff85d24))
* **store:** add custom labels for links ([#1183](https://www.github.com/jef/streetmerchant/issues/1183)) ([f7b32e8](https://www.github.com/jef/streetmerchant/commit/f7b32e8ac56c29207c6b30b9168c34c021a5e227)), closes [#1132](https://www.github.com/jef/streetmerchant/issues/1132) [#1163](https://www.github.com/jef/streetmerchant/issues/1163)
* **store:** add el corte ingles ([#1107](https://www.github.com/jef/streetmerchant/issues/1107)) ([75ee95b](https://www.github.com/jef/streetmerchant/commit/75ee95b2217fb4bf667869011a009210ff8c22e7))
* **store:** add ePrice store ([#1016](https://www.github.com/jef/streetmerchant/issues/1016)) ([30a51a3](https://www.github.com/jef/streetmerchant/commit/30a51a38bee1c399276466e5db457bbe702edd5c))
* **store:** add Euronics DE ([#1045](https://www.github.com/jef/streetmerchant/issues/1045)) ([1774afc](https://www.github.com/jef/streetmerchant/commit/1774afc1c3010bd0b183907baa4f3486dc9e8c23))
* **store:** add expert ([#1105](https://www.github.com/jef/streetmerchant/issues/1105)) ([202698f](https://www.github.com/jef/streetmerchant/commit/202698f9179b081bd4214979f054e5ff7c805621))
* **store:** add Gamestop DE ([#1046](https://www.github.com/jef/streetmerchant/issues/1046)) ([79a3f33](https://www.github.com/jef/streetmerchant/commit/79a3f33150188c7ff0228a38f276ae1fe88b9714))
* **store:** add Medimax ([#1057](https://www.github.com/jef/streetmerchant/issues/1057)) ([7d29ef8](https://www.github.com/jef/streetmerchant/commit/7d29ef80ba1ae6682b486ac0b65a516b15a19f93))
* **store:** add Otto ([#1096](https://www.github.com/jef/streetmerchant/issues/1096)) ([af96c5f](https://www.github.com/jef/streetmerchant/commit/af96c5f2e808af7496f3c3299e4cf173105de48b))
* **store:** add smythstoys ([1ed0593](https://www.github.com/jef/streetmerchant/commit/1ed05937676c3b6961fcbbb1f3aa80afc3411ac3))
* **store:** add some italian stores with ps5 links ([#976](https://www.github.com/jef/streetmerchant/issues/976)) ([f663579](https://www.github.com/jef/streetmerchant/commit/f663579f3d744a5270878975407ad30b31ee0c0a))
* **store:** add spielegrotte ([#1056](https://www.github.com/jef/streetmerchant/issues/1056)) ([cf70f1f](https://www.github.com/jef/streetmerchant/commit/cf70f1ff4f942922bfa52adcd5b905e0b39c812a))
* **store:** add wipoid store ([#1018](https://www.github.com/jef/streetmerchant/issues/1018)) ([feae978](https://www.github.com/jef/streetmerchant/commit/feae978de9e90b96f542d2e53807144d82e380a4))
* **store:** update the italian store links ([#1002](https://www.github.com/jef/streetmerchant/issues/1002)) ([de7036c](https://www.github.com/jef/streetmerchant/commit/de7036c7cc6dd7e436ad1d31b988d9d56ad31f76))
* **topachat:** add `maxPrice` ([d7f2427](https://www.github.com/jef/streetmerchant/commit/d7f242780ef1a0a06d5b65ccfc0999e36a87d49d)), closes [#1097](https://www.github.com/jef/streetmerchant/issues/1097)
* add proxy rotation (settable per store) ([#1026](https://www.github.com/jef/streetmerchant/issues/1026)) ([490d44e](https://www.github.com/jef/streetmerchant/commit/490d44e1fdfdf91db7344dd3050ba8fd8d069631))
### Bug Fixes
* **amazon:** price and cart buttons ([6fd023e](https://www.github.com/jef/streetmerchant/commit/6fd023e81e0c54e8fb53b45817b63cb49b8a37ce)), closes [#1125](https://www.github.com/jef/streetmerchant/issues/1125)
* **amazon-de:** `inStock` selector ([14cbd5a](https://www.github.com/jef/streetmerchant/commit/14cbd5a05b6f9c3a3ebbc5978156ff2b090efd32)), closes [#1178](https://www.github.com/jef/streetmerchant/issues/1178)
* **amazon-de:** remove xbox cart links ([cbc4330](https://www.github.com/jef/streetmerchant/commit/cbc43304bf49863000f422fbff4ed200ea610914)), closes [#1095](https://www.github.com/jef/streetmerchant/issues/1095)
* **bestbuy-ca:** model always indicating in stock ([#1145](https://www.github.com/jef/streetmerchant/issues/1145)) ([06f3aaf](https://www.github.com/jef/streetmerchant/commit/06f3aafae6ec460c6227a92e6105639be71fc9b3))
* **bestbuy-ca:** replace old evga xc3 ultra ([#1058](https://www.github.com/jef/streetmerchant/issues/1058)) ([65df944](https://www.github.com/jef/streetmerchant/commit/65df9449730bce2acb82f5edac25a91bdddd94db))
* **canadacomputers:** add `inStock` selector, use english links ([#889](https://www.github.com/jef/streetmerchant/issues/889)) ([06214eb](https://www.github.com/jef/streetmerchant/commit/06214eb4a8a5c2d8a180e8dcf846f828d5cce2ed))
* **memoryexpress:** add backorder to `outOfStock` selector ([#890](https://www.github.com/jef/streetmerchant/issues/890)) ([67605a6](https://www.github.com/jef/streetmerchant/commit/67605a6e280af35f210c536bc03571a84ea1a7e9))
* **newegg:** maxPrice selector using used price ([feddac7](https://www.github.com/jef/streetmerchant/commit/feddac76d3824e947b0a96524cd940e6b45ffe70)), closes [#1052](https://www.github.com/jef/streetmerchant/issues/1052)
* **newegg:** typo in 5800x url([#903](https://www.github.com/jef/streetmerchant/issues/903)) ([a99eecb](https://www.github.com/jef/streetmerchant/commit/a99eecb4613bc136e65afe4e5e8788316beae39e))
* **scan:** links builder ([#1161](https://www.github.com/jef/streetmerchant/issues/1161)) ([ca5553c](https://www.github.com/jef/streetmerchant/commit/ca5553cb2044c00857412a2af009e5e7f2c1aabf))
* **smythstoys:** add out of stock label ([5bbdfa2](https://www.github.com/jef/streetmerchant/commit/5bbdfa2abc23c2e1fb1c606227754a1701cab194))
* **store:** add backoffStatusCodes and new captcha container ([#1110](https://www.github.com/jef/streetmerchant/issues/1110)) ([0b11238](https://www.github.com/jef/streetmerchant/commit/0b11238370040e9cd31e793e9a782ad384c22abf))
* **store:** removes unnecessary newegg links from bestbuy ([#1126](https://www.github.com/jef/streetmerchant/issues/1126)) ([f2ae423](https://www.github.com/jef/streetmerchant/commit/f2ae423fa83d1671a98b9cf3733e587d33727a59)), closes [#1119](https://www.github.com/jef/streetmerchant/issues/1119)
* **store:** update euroFormat for expert and otto ([#1108](https://www.github.com/jef/streetmerchant/issues/1108)) ([e198e44](https://www.github.com/jef/streetmerchant/commit/e198e44613cda27c0e67dc7e42ca514e66e9cf48))
* **walmart:** instock container and add test:series ([21e74cf](https://www.github.com/jef/streetmerchant/commit/21e74cfe76a5ccf82247315c9951a25e44bb1ce5)), closes [#1106](https://www.github.com/jef/streetmerchant/issues/1106)
* related products being picked up on scan ([#954](https://www.github.com/jef/streetmerchant/issues/954)) ([db18157](https://www.github.com/jef/streetmerchant/commit/db18157a490b9c9672c32de3372bff0b472a48f3))
## [3.1.0](https://www.github.com/jef/streetmerchant/compare/v3.0.0...v3.1.0) (2020-11-22)
### Features
* **asus:** add backoff codes ([#790](https://www.github.com/jef/streetmerchant/issues/790)) ([501ea34](https://www.github.com/jef/streetmerchant/commit/501ea34a54e877600050d5a99fd3b71ec799e96a))
* **canadacomputers:** add ryzen 5000 series ([#842](https://www.github.com/jef/streetmerchant/issues/842)) ([6f27330](https://www.github.com/jef/streetmerchant/commit/6f273305df69ac7b420b5446b4c6824866821a7e))
* **coolmod:** add `maxPrice` ([#862](https://www.github.com/jef/streetmerchant/issues/862)) ([4b689cb](https://www.github.com/jef/streetmerchant/commit/4b689cb94e99b83c8829c11d1bfe4cd6db9fbd7a))
* **newegg-ca:** add big navi links ([#843](https://www.github.com/jef/streetmerchant/issues/843)) ([6d292a1](https://www.github.com/jef/streetmerchant/commit/6d292a11cd53bd3893d4a0ff5d13eb2ce3319faa))
* **notification:** add product link to email and telegram ([#816](https://www.github.com/jef/streetmerchant/issues/816)) ([777c31b](https://www.github.com/jef/streetmerchant/commit/777c31b420a38cab860d98bc6bd8b7ba990c55e7))
* **playstation:** add `outOfStock` label ([#812](https://www.github.com/jef/streetmerchant/issues/812)) ([eb314af](https://www.github.com/jef/streetmerchant/commit/eb314afda557369dd27266429ac991c47ecc6375))
* **store:** add `PlayStation` store ([#806](https://www.github.com/jef/streetmerchant/issues/806)) ([7c28c7f](https://www.github.com/jef/streetmerchant/commit/7c28c7f72b171ce914aba770d88e8b1213c41233))
* **store:** add 3070 models to pccomponentes & coolmod ([#820](https://www.github.com/jef/streetmerchant/issues/820)) ([d0ebffd](https://www.github.com/jef/streetmerchant/commit/d0ebffd056dc166e3557ccf694379bf8c10148b5))
* **store:** add amd rx 6000 series model ([#832](https://www.github.com/jef/streetmerchant/issues/832)) ([89a762e](https://www.github.com/jef/streetmerchant/commit/89a762e2f5cd2ebd56c2586b1ebead4171b67153))
* **store:** add captcha check to saturn and mediamarkt ([#876](https://www.github.com/jef/streetmerchant/issues/876)) ([2d01cfd](https://www.github.com/jef/streetmerchant/commit/2d01cfddff557f112c6d53473dad25eb299f2fc0))
* **store:** add corsair sfx PSUs ([#881](https://www.github.com/jef/streetmerchant/issues/881)) ([e552c91](https://www.github.com/jef/streetmerchant/commit/e552c9102dd9801dcfc35652f2aaa0b1eea18ebb))
* **store:** add topachat ([#776](https://www.github.com/jef/streetmerchant/issues/776)) ([c38bebb](https://www.github.com/jef/streetmerchant/commit/c38bebb49dbe8243d0e3f1205150a33f9ce745aa))
* **store:** add vsgamers ([#767](https://www.github.com/jef/streetmerchant/issues/767)) ([53739e0](https://www.github.com/jef/streetmerchant/commit/53739e05abf50bbaddb8079087339c9f353096c8))
* add amazon-fr to stores. ([#766](https://www.github.com/jef/streetmerchant/issues/766)) ([02d7c47](https://www.github.com/jef/streetmerchant/commit/02d7c47c4093ad71dfab31f93a9b1390f4cad8a0))
* **store:** support for canadacomputers ([#772](https://www.github.com/jef/streetmerchant/issues/772)) ([bd69e47](https://www.github.com/jef/streetmerchant/commit/bd69e471f7b47e7faf1d9858992d4157145518aa))
### Bug Fixes
* **amazon:** add 5800x and 5600x ([#802](https://www.github.com/jef/streetmerchant/issues/802)) ([167713b](https://www.github.com/jef/streetmerchant/commit/167713bb14080e5e1d2f77c7ee933918b6fd5cfc))
* **bestbuy-ca:** use proper selector ([#801](https://www.github.com/jef/streetmerchant/issues/801)) ([63d550c](https://www.github.com/jef/streetmerchant/commit/63d550ca63b9bfd534f37b7747a1fae057abedb4))
* **config:** correcting newline split for multiple user agents ([#824](https://www.github.com/jef/streetmerchant/issues/824)) ([f16a9fb](https://www.github.com/jef/streetmerchant/commit/f16a9fb331fd38590325f399bde369ffa17dbe10))
* **store:** generate links only for selected stores ([292e360](https://www.github.com/jef/streetmerchant/commit/292e3603fd527a4454639c9abb73bd80a8a95fae)), closes [#694](https://www.github.com/jef/streetmerchant/issues/694)
### Reverts
* correcting newline split for multiple user agents ([af631c8](https://www.github.com/jef/streetmerchant/commit/af631c86f1a74d810cabf2d0de1b7bb31d350095)), closes [#824](https://www.github.com/jef/streetmerchant/issues/824)
* pipeline changes ([efe0d64](https://www.github.com/jef/streetmerchant/commit/efe0d64f060e812fd9846073a13837a3f2a27862))
## [3.0.0](https://www.github.com/jef/streetmerchant/compare/v2.0.0...v3.0.0) (2020-11-12)
+1 -1
View File
@@ -1,6 +1,6 @@
FROM node:14.15.0-alpine3.12 AS builder
LABEL org.opencontainers.image.source=https://github.com/jef/streetmerchant
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
+78 -24
View File
@@ -28,15 +28,16 @@ getting `streetmerchant` running!
### Installation: native
| Branch | Note |
| Reference | Note |
|:---:|---|
| `main` | Latest release; usually tagged, stable |
| `develop` | Latest HEAD; not tagged, could be unstable |
| tag | Example, `v1.0.0`; stable |
| `main` | Latest HEAD; not tagged, could be unstable |
- [Node.js 14](https://nodejs.org/en/)
- [git](https://git-scm.com/)
- Clone this project `git clone https://github.com/jef/streetmerchant.git`
- To checkout a particular branch, use `git checkout <branch name>` after cloning
- To checkout a particular ref, use `git checkout <ref name>` after cloning
- Navigate to this project by entering `cd streetmerchant`
- Run `npm install`
- Copy `.env-example` to a new file `.env` and edit the `.env` file to your liking using
your [favorite text editor](https://code.visualstudio.com/)
@@ -53,8 +54,8 @@ Available via GitHub Container Registry.
| Tag | Note |
|:---:|---|
| `latest` | Latest release; usually tagged, stable |
| `nightly` | Latest HEAD; not tagged, could be unstable |
| `latest` | Latest release; stable |
| `nightly` | Latest HEAD each day at midnight UTC; could be unstable |
```sh
# to run
@@ -98,6 +99,7 @@ environment variables are **optional**._
| `PAGE_SLEEP_MIN` | Minimum sleep time between queries of the same product page | In milliseconds, default: `5000` |
| `PAGE_SLEEP_MAX` | Maximum sleep time between queries of the same product page | In milliseconds, default: `10000` |
| `PAGE_TIMEOUT` | Navigation Timeout in milliseconds | `0` for infinite, default: `30000` |
| `PROXY_PROTOCOL` | protocol of proxy server, such as `socks5` | default: `http` |
| `PROXY_ADDRESS` | IP Address or fqdn of proxy server |
| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections | Default: `80` |
| `SCREENSHOT` | Capture screenshot of page if a card is found | Default: `true` |
@@ -112,14 +114,19 @@ environment variables are **optional**._
| Environment variable | Description | Notes |
|:---:|---|---|
| `COUNTRY` | [Supported country](#supported-countries) you want to be scraped | Currently only used by Nvidia, default: `usa` |
| `COUNTRY` | [Supported country](#supported-countries) you want to be scraped | Only used with `nvidia-api`, default: `usa` |
| `MAX_PRICE_SERIES_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
| `MAX_PRICE_SERIES_3080` | Maximum price allowed for a match, applies 3080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
| `MAX_PRICE_SERIES_3090` | Maximum price allowed for a match, applies 3090 series cards (does not apply to these sites: Nvidia, Asus, EVGA) | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - Cards above `1234` will be skipped. |
| `MAX_PRICE_SERIES_CORSAIR_SF` | Maximum price allowed for a match, applies to Corsair PSUs | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PSUs above `1234` will be skipped. |
| `MAX_PRICE_SERIES_RYZEN5600` | Maximum price allowed for a match, applies AMD 5600 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
| `MAX_PRICE_SERIES_RYZEN5800` | Maximum price allowed for a match, applies AMD 5800 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
| `MAX_PRICE_SERIES_RYZEN5900` | Maximum price allowed for a match, applies AMD 5900 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
| `MAX_PRICE_SERIES_RYZEN5950` | Maximum price allowed for a match, applies AMD 5950 series cpus | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - CPUs above `1234` will be skipped. |
| `MAX_PRICE_SERIES_SONYPS5C` | Maximum price allowed for a match, applies PS5 console | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PS5 above `1234` will be skipped. |
| `MAX_PRICE_SERIES_SONYPS5DE` | Maximum price allowed for a match, applies PS5 digital edition | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PS5 above `1234` will be skipped. |
| `MAX_PRICE_SERIES_TEST` | Maximum price allowed for a match, applies `test:series` | Default: leave empty for no limit, otherwise enter a price (enter whole dollar amounts only, avoid use of: dollar symbols, commas, and periods.) e.g.: `1234` - PS5 above `1234` will be skipped. |
| `MICROCENTER_LOCATION` | Specific MicroCenter location(s) to search | Comma separated, e.g.: `marietta,duluth`, default: `web` |
| `NVIDIA_ADD_TO_CART_ATTEMPTS` | The maximum number of times the `nvidia-api` add to cart feature will be attempted before failing | Default: `10` |
| `NVIDIA_SESSION_TTL` | The time in milliseconds to keep the cart active while using `nvidia-api` | Default: `60000` |
@@ -141,11 +148,18 @@ environment variables are **optional**._
| Amazon | `amazon`|
| Amazon (CA) | `amazon-ca`|
| Amazon (DE) | `amazon-de`|
| Amazon (DE) Warehouse | `amazon-de-warehouse`|
| Amazon (ES) | `amazon-es`|
| Amazon (FR) | `amazon-fr`|
| Amazon (IT) | `amazon-it`|
| Amazon (NL) | `amazon-nl`|
| Amazon (UK) | `amazon-uk`|
| AMD | `amd`|
| AMD (CA) | `amd-ca`|
| AMD (DE) | `amd-de`|
| AMD (IT) | `amd-it`|
| AntOnline | `antonline`|
| Argos (UK) | `argos`|
| Aria PC (UK) | `aria`|
| ARLT (DE) | `arlt`|
| ASUS | `asus` |
@@ -155,21 +169,31 @@ environment variables are **optional**._
| Best Buy | `bestbuy`|
| Best Buy (CA) | `bestbuy-ca`|
| Box (UK) | `box`|
| CanadaComputers (CA) | `canadacomputers` |
| Caseking (DE) | `caseking`|
| CCL (UK) | `ccl`|
| Comet (IT) | `comet`|
| Computeruniverse (DE) | `computeruniverse` |
| Coolblue (NL) | `coolblue`|
| Coolmod (ES) | `coolmod`|
| Corsair | `corsair`|
| Currys (UK) | `currys`|
| Cyberport (DE) | `cyberport` |
| eBuyer (UK) | `ebuyer`|
| El Corte Inglés | `elcorteingles`|
| ePrice (IT) | `eprice`|
| Euronics (IT) | `euronics`|
| Euronics (DE) | `euronics-de`|
| EVGA | `evga`|
| EVGA (EU) | `evga-eu`|
| Expert | `expert`|
| Galaxus (DE) | `galaxus`|
| Game (UK) | `game`|
| Gamestop | `gamestop`|
| Gamestop (DE) | `gamestop-de`|
| Kabum (BR) | `kabum`|
| Mediamarkt (DE) | `mediamarkt`|
| Medimax | `medimax`|
| MemoryExpress (CA) | `memoryexpress`|
| Micro Center | `microcenter`|
| Mindfactory (DE) | `mindfactory` |
@@ -180,17 +204,24 @@ environment variables are **optional**._
| Nvidia | `nvidia`|
| Nvidia (API) | `nvidia-api`|
| Office Depot | `officedepot`|
| Otto | `otto`|
| Overclockers (UK) | `overclockers`|
| PCComponentes (ES) | `pccomponentes`|
| PlayStation | `playstation`|
| PNY | `pny`|
| Proshop (DE) | `proshop-de`|
| Proshop (DK) | `proshop-dk`|
| Saturn (DE) | `saturn`|
| Scan (UK) | `scan`|
| Smyths Toys (UK) | `smythstoys`|
| Spielegrotte | `spielegrotte`|
| Target | `target`|
| Unieuro (IT) | `unieuro`|
| Very (UK) | `very`|
| Walmart | `walmart`|
| Wipoid | `wipoid`|
| Zotac | `zotac`|
| TopAchat | `topachat`|
<details>
<summary>Micro Center stores</summary>
@@ -238,23 +269,50 @@ environment variables are **optional**._
| Brand | Model |
|:---:|---|
| `amd` | `5600x`, `5800x`, `5900x`, `5950x` |
| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` |
| `asus` | `dual`, `dual oc`, `strix`, `strix oc`, `tuf`, `tuf oc` |
| `corsair` | `750 platinum`, `600 platinum` |
| `evga` | `ftw3`, `ftw3 ultra`, `xc3`, `xc3 black`, `xc3 ultra` |
| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
| `gigabyte` | `aorus master`, `aorus xtreme`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `turbo`, `vision`, `vision oc` |
| `inno3d` | `gaming x3`, `ichill x3`, `ichill x4`, `twin x2 oc` |
| `kfa2` | `sg oc` |
| `microsoft` | `xboxsx` , `xboxss` |
| `kfa2` | `sg`, `sg oc` |
| `microsoft` | `xbox series x`, `xbox series s` |
| `msi` | `gaming x trio`, `ventus 2x oc`, `ventus 3x`, `ventus 3x oc` |
| `nvidia` | `founders edition` |
| `palit` | `gamerock oc`, `gaming pro`, `gaming pro oc` |
| `pny` | `dual fan`, `xlr8 revel`, `xlr8 uprising` |
| `sony` | `ps5 console`, `ps5 digital` |
| `xfx` | `merc`, `amd reference` |
| `zotac` | `amp holo`, `amp extreme holo`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc` |
</details>
<details>
<summary>Supported series</summary>
> :point_right: Used with the `SHOW_ONLY_SERIES` variable.
| Series | Environment variable |
|:---:|:---:|
| `AMD Ryzen 5600x` | `ryzen5600` |
| `AMD Ryzen 5800x` | `ryzen5800` |
| `AMD Ryzen 5900x` | `ryzen5900` |
| `AMD Ryzen 5950x` | `ryzen5950` |
| `AMD RX 6800` | `rx6800` |
| `AMD RX 6800XT` | `rx6800xt` |
| `AMD RX 6900XT` | `rx6900xt` |
| `Nvidia RTX 3060 Ti` | `3060ti` |
| `Nvidia RTX 3070` | `3070` |
| `Nvidia RTX 3080` | `3080` |
| `Nvidia RTX 3090` | `3090` |
| `Corsair SFX PSU` | `sf` |
| `Sony PS5` | `sonyps5c` |
| `Sony PS5 Digital Edition` | `sonyps5de` |
| `Xbox Series S` | `xboxss` |
| `Xbox Series X` | `xboxsx` |
</details>
<details>
<summary>Supported countries (used with nvidia and nvidia-api)</summary>
@@ -483,26 +541,22 @@ it. Very straight forward. Otherwise, Google more information related to your sy
</details>
**Q: Will I get banned from of the stores?** Perhaps, but getting a card is a nice outcome.
**Q: Will I get banned from of the stores?** Perhaps, but it's the risk we're willing to take! To help minimize this, take a look at [#1050](https://github.com/jef/streetmerchant/issues/1050).
**Q: I got a problem and need help!** File an [issue](https://github.com/jef/streetmerchant/issues/new/choose). I'll do
my best to get to you. I work a full time job and this is only a hobby of mine.
**Q: I got a problem and need help!** File an [issue](https://github.com/jef/streetmerchant/issues/new/choose). I'll do my best to get to you. I work a full time job and this is only a hobby of mine.
**Q: How do I get the latest code?** Take look at
this [wiki page](https://github.com/jef/streetmerchant/wiki/Troubleshoot:-General:-Getting-the-latest-code).
**Q: How do I get the latest code?** Take look at this [wiki page](https://github.com/jef/streetmerchant/wiki/Troubleshoot:-General:-Getting-the-latest-code).
**Q: Why don't my notifications work?** There is probably
an [issue](https://github.com/jef/streetmerchant/issues?q=is%3Aissue+sort%3Aupdated-desc+sound+is%3Aclosed) that
has [already](https://github.com/jef/streetmerchant/issues/182) [been](https://github.com/jef/streetmerchant/issues/116) [resolved](https://github.com/jef/streetmerchant/issues/155)
.
**Q: Why don't my notifications work?** There is probably an [issue](https://github.com/jef/streetmerchant/issues?q=is%3Aissue+sort%3Aupdated-desc+sound+is%3Aclosed) that has [already](https://github.com/jef/streetmerchant/issues/182) [been](https://github.com/jef/streetmerchant/issues/116) [resolved](https://github.com/jef/streetmerchant/issues/155).
**Q: I'd love to contribute, how do I do that?** Make
a [pull request](https://github.com/jef/streetmerchant/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc)! All contributions
are welcome.
**Q: I'd love to contribute, how do I do that?** Make a [pull request](https://github.com/jef/streetmerchant/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc)! All contributions are welcome.
**Q: Why do I have to download all this stuff just to get this bot working?** Well, I would rather you didn't either.
See [#11](https://github.com/jef/streetmerchant/issues/11).
**Q: How do I add a store?** Take a look at [this page](https://github.com/jef/streetmerchant/wiki/Help:-Configuration:-Adding-a-store) on the wiki.
**Q: Why do I have to download all this stuff just to get this bot working?** Well, I would rather you didn't either. See [#11](https://github.com/jef/streetmerchant/issues/11).
**Q: Why does Amazon show an error page (with a picture of an animal) instead of adding to cart or going to the detail page?** This is intended; see [#733](https://github.com/jef/streetmerchant/issues/733). This indicates that the item is out of stock and only available from a third-party seller (often at a markup).
**Q: I'm using streetmerchant in the cloud and X isn't working.** There is _a lot_ of undefined behavior with using streetmerchant in the cloud. Some sites may block IPs from your cloud provider. It is possible that a VPN will help circumvent these problems.
<p align="center"><a href="https://github.com/jef/streetmerchant#readme"><img src="https://raw.githubusercontent.com/jef/streetmerchant/main/media/terminal.gif" /></a></p>
+1524 -936
View File
File diff suppressed because it is too large Load Diff
+20 -18
View File
@@ -26,52 +26,54 @@
"homepage": "https://github.com/jef/streetmerchant#readme",
"dependencies": {
"@jef/pushbullet": "^2.4.3",
"@slack/web-api": "^5.13.0",
"@slack/web-api": "^5.14.0",
"chalk": "^4.1.0",
"cheerio": "^1.0.0-rc.3",
"discord-webhook-node": "^1.1.8",
"discord.js": "^12.5.1",
"dotenv": "^8.2.0",
"messaging-api-telegram": "^1.0.1",
"mqtt": "^4.2.4",
"mqtt": "^4.2.6",
"node-fetch": "^2.6.1",
"node-hue-api": "^4.0.9",
"node-notifier": "^8.0.0",
"node-pagerduty": "^1.3.5",
"nodemailer": "^6.4.15",
"node-pagerduty": "^1.3.6",
"nodemailer": "^6.4.16",
"open": "^7.3.0",
"play-sound": "^1.1.3",
"puppeteer": "^5.4.1",
"puppeteer": "^5.5.0",
"puppeteer-extra": "^3.1.15",
"puppeteer-extra-plugin-adblocker": "^2.11.8",
"puppeteer-extra-plugin-adblocker": "^2.11.9",
"puppeteer-extra-plugin-block-resources": "^2.2.7",
"puppeteer-extra-plugin-stealth": "^2.6.5",
"puppeteer-page-proxy": "^1.2.8",
"pushover-notifications": "^1.2.2",
"twilio": "^3.51.0",
"twitch": "^4.2.7",
"twitch-auth": "^4.2.7",
"twitch-chat-client": "^4.2.7",
"twilio": "^3.53.0",
"twitch": "^4.3.3",
"twitch-auth": "^4.3.3",
"twitch-chat-client": "^4.3.3",
"twitter": "^1.7.1",
"winston": "^3.3.3"
},
"devDependencies": {
"@types/async": "^3.2.3",
"@types/async": "^3.2.5",
"@types/cheerio": "^0.22.22",
"@types/node": "^14.14.7",
"@types/node": "^14.14.10",
"@types/node-fetch": "^2.5.7",
"@types/node-notifier": "^8.0.0",
"@types/nodemailer": "^6.4.0",
"@types/puppeteer": "^5.4.0",
"@types/puppeteer": "^5.4.1",
"@types/twitter": "^1.7.0",
"husky": "^4.3.0",
"nodemon": "^2.0.6",
"ts-node": "^9.0.0",
"typescript": "^4.0.5",
"webpack": "^5.4.0",
"xo": "^0.33.1"
"ts-node": "^9.1.0",
"typescript": "^4.1.2",
"webpack": "^5.10.0",
"xo": "^0.35.0"
},
"xo": {
"prettier": true,
"rules": {
"no-warning-comments": "off",
"sort-imports": "error",
"sort-keys": "error",
"sort-vars": "error"
+1
View File
@@ -5,6 +5,7 @@ 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'
};
+13 -2
View File
@@ -5,9 +5,20 @@ export const adBlocker = new PuppeteerExtraPluginAdblocker({
blockTrackers: true
});
export async function disableBlockerInPage(page: Page) {
export async function enableBlockerInPage(page: Page) {
const blockerObject = await adBlocker.getBlocker();
if (blockerObject.isBlockingEnabled(page)) {
await blockerObject.disableBlockingInPage(page);
return;
}
await blockerObject.enableBlockingInPage(page);
}
export async function disableBlockerInPage(page: Page) {
const blockerObject = await adBlocker.getBlocker();
if (!blockerObject.isBlockingEnabled(page)) {
return;
}
await blockerObject.disableBlockingInPage(page);
}
+30 -8
View File
@@ -2,6 +2,7 @@ import {banner} from './banner';
import {config as config_} from 'dotenv';
import path from 'path';
import {readFileSync} from 'fs';
config_({path: path.resolve(__dirname, '../.env')});
@@ -179,7 +180,7 @@ const notifications = {
desktop: process.env.DESKTOP_NOTIFICATIONS === 'true',
discord: {
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
webHookUrl: envOrArray(process.env.DISCORD_WEB_HOOK)
webhooks: envOrArray(process.env.DISCORD_WEB_HOOK)
},
email: {
password: envOrString(process.env.EMAIL_PASSWORD),
@@ -291,7 +292,8 @@ const page = {
const proxy = {
address: envOrString(process.env.PROXY_ADDRESS),
port: envOrNumber(process.env.PROXY_PORT, 80)
port: envOrNumber(process.env.PROXY_PORT, 80),
protocol: envOrString(process.env.PROXY_PROTOCOL, 'http')
};
// Check for deprecated configuration values
@@ -306,16 +308,21 @@ const store = {
country: envOrString(process.env.COUNTRY, 'usa'),
maxPrice: {
series: {
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
rx6800: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800),
rx6800xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800XT),
rx6900xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6900XT),
ryzen5600: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5600),
ryzen5800: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5800),
ryzen5900: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5900),
ryzen5950: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5950),
sonyps5c: -1,
sonyps5de: -1,
'test:series': -1,
sf: envOrNumber(process.env.MAX_PRICE_SERIES_CORSAIR_SF),
sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C),
sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE),
'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST),
xboxss: -1,
xboxsx: -1
}
@@ -330,20 +337,34 @@ const store = {
};
}),
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
'3060ti',
'3070',
'3080',
'3090',
'rx6800',
'rx6800xt',
'rx6900xt',
'ryzen5600',
'ryzen5800',
'ryzen5900',
'ryzen5950',
'sonyps5c',
'sonyps5de',
'xboxsx',
'xboxss'
'xboxss',
'xboxsx'
]),
stores: envOrArray(process.env.STORES, ['nvidia']).map((entry) => {
const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? [];
let proxyList;
try {
proxyList = readFileSync(`${name}.proxies`)
.toString()
.trim()
.split('\n')
.map((x) => x.trim());
} catch {}
return {
maxPageSleep: envOrNumberMax(
minPageSleep,
@@ -355,7 +376,8 @@ const store = {
maxPageSleep,
browser.minSleep
),
name: envOrString(name)
name: envOrString(name),
proxyList
};
})
};
+2 -13
View File
@@ -1,25 +1,14 @@
import {startAPIServer, stopAPIServer} from './web';
import {Browser} from 'puppeteer';
import {adBlocker} from './adblocker';
import {config} from './config';
import {getSleepTime} from './util';
import {logger} from './logger';
import puppeteer from 'puppeteer-extra';
import resourceBlock from 'puppeteer-extra-plugin-block-resources';
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
import {storeList} from './store/model';
import {tryLookupAndLoop} from './store';
puppeteer.use(stealthPlugin());
if (config.browser.lowBandwidth) {
puppeteer.use(
resourceBlock({
blockedTypes: new Set(['image', 'font'] as const)
})
);
} else {
puppeteer.use(adBlocker);
}
let browser: Browser | undefined;
@@ -44,7 +33,7 @@ async function main() {
// Add the address of the proxy server if defined
if (config.proxy.address) {
args.push(
`--proxy-server=http://${config.proxy.address}:${config.proxy.port}`
`--proxy-server=${config.proxy.protocol}://${config.proxy.address}:${config.proxy.port}`
);
}
@@ -94,7 +83,7 @@ async function stopAndExit() {
async function loopMain() {
try {
await main();
} catch (error) {
} catch (error: unknown) {
logger.error(
'✖ something bad happened, resetting streetmerchant in 5 seconds',
error
+10 -6
View File
@@ -121,7 +121,6 @@ export const Print = {
maxPrice(
link: Link,
store: Store,
price: number,
maxPrice: number,
color?: boolean
): string {
@@ -130,14 +129,13 @@ export const Print = {
'✖ ' +
buildProductString(link, store, true) +
' :: ' +
chalk.yellow(`PRICE ${price} EXCEEDS LIMIT ${maxPrice}`)
chalk.yellow(`PRICE ${link.price ?? ''} EXCEEDS LIMIT ${maxPrice}`)
);
}
return `${buildProductString(
link,
store
)} :: PRICE ${price} EXCEEDS LIMIT ${maxPrice}`;
return `${buildProductString(link, store)} :: PRICE ${
link.price ?? ''
} EXCEEDS LIMIT ${maxPrice}`;
},
message(
message: string,
@@ -180,6 +178,12 @@ export const Print = {
return `${buildProductString(link, store)} :: OUT OF STOCK`;
},
productInStock(link: Link): string {
let productString = `Product Page: ${link.url}`;
if (link.cartUrl) productString += `\nAdd To Cart Link: ${link.cartUrl}`;
return productString;
},
rateLimit(link: Link, store: Store, color?: boolean): string {
if (color) {
return (
+43 -21
View File
@@ -1,44 +1,66 @@
import {Link, Store} from '../store/model';
import {MessageBuilder, Webhook} from 'discord-webhook-node';
import Discord from 'discord.js';
import {config} from '../config';
import {logger} from '../logger';
const discord = config.notifications.discord;
const hooks = discord.webHookUrl;
const notifyGroup = discord.notifyGroup;
const {notifyGroup, webhooks} = discord;
function getIdAndToken(webhook: string) {
const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook);
if (!match) {
throw new Error('could not get discord webhook');
}
return {
id: match[1],
token: match[2]
};
}
export function sendDiscordMessage(link: Link, store: Store) {
if (discord.webHookUrl.length > 0) {
if (webhooks.length > 0) {
logger.debug('↗ sending discord message');
(async () => {
try {
const embed = new MessageBuilder();
embed.setTitle('Stock Notification');
if (link.cartUrl)
embed.addField('Add To Cart Link', link.cartUrl, true);
embed.addField('Product Page', link.url, true);
const embed = new Discord.MessageEmbed()
.setTitle('_**Stock alert!**_')
.setDescription(
'> provided by [streetmerchant](https://github.com/jef/streetmerchant) with :heart:'
)
.setThumbnail(
'https://raw.githubusercontent.com/jef/streetmerchant/main/media/streetmerchant-square.png'
)
.setColor('#52b788')
.setTimestamp();
embed.addField('Store', store.name, true);
if (link.price) embed.addField('Price', `$${link.price}`, true);
embed.addField('Product Page', link.url);
if (link.cartUrl) embed.addField('Add to Cart', link.cartUrl);
embed.addField('Brand', link.brand, true);
embed.addField('Series', link.series, true);
embed.addField('Model', link.model, true);
if (notifyGroup) {
embed.setText(notifyGroup.join(' '));
}
embed.setColor(0x76b900);
embed.setTimestamp();
embed.addField('Series', link.series, true);
const promises = [];
for (const hook of hooks) {
promises.push(new Webhook(hook).send(embed));
for (const webhook of webhooks) {
const {id, token} = getIdAndToken(webhook);
const client = new Discord.WebhookClient(id, token);
promises.push({
client,
message: client.send(notifyGroup.join(' '), {
embeds: [embed],
username: 'streetmerchant'
})
});
}
await Promise.all(promises);
(await Promise.all(promises)).forEach(({client}) => client.destroy());
logger.info('✔ discord message sent');
} catch (error) {
} catch (error: unknown) {
logger.error("✖ couldn't send discord message", error);
}
})();
+1 -1
View File
@@ -40,7 +40,7 @@ export function sendEmail(link: Link, store: Store) {
: undefined,
from: email.username,
subject: Print.inStock(link, store),
text: link.cartUrl ? link.cartUrl : link.url,
text: Print.productInStock(link),
to: email.to
};
+1 -1
View File
@@ -44,7 +44,7 @@ export function sendMqttMessage(link: Link, store: Store) {
try {
client.publish(topic, message, pubOptions);
logger.info('✔ mqtt message sent');
} catch (error) {
} catch (error: unknown) {
logger.error("✖ couldn't send mqtt message", error);
}
})();
+4 -3
View File
@@ -60,9 +60,10 @@ const adjustLightsWithAPI = (hueBridge: Api) => {
.then((allLights: any[]) => {
allLights.forEach((light: any) => {
logger.debug('adjusting specified lights');
(hueBridge.lights.setLightState(light, lightState) as Promise<
any
>).catch((error: Error) => {
(hueBridge.lights.setLightState(
light,
lightState
) as Promise<any>).catch((error: Error) => {
logger.error('Failed to adjust specified lights.');
logger.error(error);
throw error;
+1 -1
View File
@@ -27,7 +27,7 @@ export function sendSlackMessage(link: Link, store: Store) {
}
logger.info('✔ slack message sent');
} catch (error) {
} catch (error: unknown) {
logger.error("✖ couldn't send slack message", error);
}
})();
+3 -3
View File
@@ -14,7 +14,7 @@ export function sendTelegramMessage(link: Link, store: Store) {
logger.debug('↗ sending telegram message');
(async () => {
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
const message = Print.productInStock(link);
const results = [];
for (const chatId of telegram.chatId) {
@@ -22,11 +22,11 @@ export function sendTelegramMessage(link: Link, store: Store) {
results.push(
client.sendMessage(
chatId,
`${Print.inStock(link, store)}\n${givenUrl}`
`${Print.inStock(link, store)}\n${message}`
)
);
logger.info('✔ telegram message sent');
} catch (error) {
} catch (error: unknown) {
logger.error("✖ couldn't send telegram message", error);
}
}
+1 -1
View File
@@ -25,7 +25,7 @@ export function sendTwilioMessage(link: Link, store: Store) {
to: twilio.to
});
logger.info('✔ twilio message sent');
} catch (error) {
} catch (error: unknown) {
logger.error("✖ couldn't send twilio message", error);
}
})();
+1 -1
View File
@@ -65,7 +65,7 @@ chatClient.onJoin((channel: string, user: string) => {
try {
chatClient.say(channel, message);
logger.info('✔ twitch message sent');
} catch (error) {
} catch (error: unknown) {
logger.error("✖ couldn't send twitch message", error);
}
}
+8 -14
View File
@@ -72,7 +72,6 @@ export async function extractPageContents(
selector: Selector
): Promise<string | null> {
return page.evaluate((options: Selector) => {
// eslint-disable-next-line no-undef
const element: globalThis.HTMLElement | null = document.querySelector(
options.selector
);
@@ -117,27 +116,22 @@ export function includesLabels(
);
}
export async function cardPrice(
export async function getPrice(
page: Page,
query: Pricing,
max: number,
options: Selector
): Promise<number | null> {
if (!max || max === -1) {
return null;
}
const selector = {...options, selector: query.container};
const cardPrice = await extractPageContents(page, selector);
const priceString = await extractPageContents(page, selector);
if (cardPrice) {
const priceSeperator = query.euroFormat ? /\./g : /,/g;
const cardpriceNumber = Number.parseFloat(
cardPrice.replace(priceSeperator, '').match(/\d+/g)!.join('.')
if (priceString) {
const priceSeparator = query.euroFormat ? /\./g : /,/g;
const price = Number.parseFloat(
priceString.replace(priceSeparator, '').match(/\d+/g)!.join('.')
);
logger.debug(`Raw card price: ${cardPrice} | Limit: ${max}`);
return cardpriceNumber > max ? cardpriceNumber : null;
logger.debug('received price', price);
return price;
}
return null;
+217 -73
View File
@@ -1,7 +1,7 @@
import {Browser, Page, Response} from 'puppeteer';
import {Browser, Page, PageEventObj, Request, Response} from 'puppeteer';
import {Link, Store, getStores} from './model';
import {Print, logger} from '../logger';
import {Selector, cardPrice, pageIncludesLabels} from './includes-labels';
import {Selector, getPrice, pageIncludesLabels} from './includes-labels';
import {
closePage,
delay,
@@ -9,18 +9,109 @@ import {
getSleepTime,
isStatusCodeInRange
} from '../util';
import {disableBlockerInPage, enableBlockerInPage} from '../adblocker';
import {config} from '../config';
import {disableBlockerInPage} from '../adblocker';
import {fetchLinks} from './fetch-links';
import {filterStoreLink} from './filter';
import open from 'open';
import {processBackoffDelay} from './model/helpers/backoff';
import {sendNotification} from '../notification';
import useProxy from 'puppeteer-page-proxy';
const inStock: Record<string, boolean> = {};
const linkBuilderLastRunTimes: Record<string, number> = {};
function nextProxy(store: Store) {
if (!store.proxyList) {
return;
}
if (store.currentProxyIndex === undefined) {
store.currentProxyIndex = 0;
}
store.currentProxyIndex++;
if (store.currentProxyIndex >= store.proxyList.length) {
store.currentProxyIndex = 0;
}
logger.info(
` [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${store.proxyList.length}`
);
return store.proxyList[store.currentProxyIndex];
}
async function handleLowBandwidth(request: Request) {
if (!config.browser.lowBandwidth) {
return false;
}
const typ = request.resourceType();
if (typ === 'font' || typ === 'image') {
try {
await request.abort();
} catch {}
return true;
}
return false;
}
async function handleProxy(request: Request, proxy?: string) {
if (!proxy) {
return false;
}
try {
await useProxy(request, proxy);
} catch (error: unknown) {
logger.error(error);
try {
await request.abort();
} catch {}
}
return true;
}
async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
if (!adBlockRequestHandler) {
return false;
}
return new Promise((resolve) => {
const continueFunc = async () => {
resolve(false);
};
const abortFunc = async () => {
try {
await request.abort();
} catch {}
resolve(true);
};
const requestProxy = new Proxy(request, {
get(target, prop, receiver) {
if (prop === 'continue') {
return continueFunc;
}
if (prop === 'abort') {
return abortFunc;
}
return Reflect.get(target, prop, receiver);
}
});
adBlockRequestHandler(requestProxy);
});
}
/**
* Responsible for looking up information about a each product within
* a `Store`. It's important that we ignore `no-await-in-loop` here
@@ -34,6 +125,20 @@ async function lookup(browser: Browser, store: Store) {
return;
}
if (store.linksBuilder) {
logger.info(`[${store.name}] Running linksBuilder...`);
const lastRunTime = linkBuilderLastRunTimes[store.name] ?? -1;
const ttl = store.linksBuilder.ttl ?? Number.MAX_SAFE_INTEGER;
if (lastRunTime === -1 || Date.now() - lastRunTime > ttl) {
try {
await fetchLinks(store, browser);
linkBuilderLastRunTimes[store.name] = Date.now();
} catch (error: unknown) {
logger.error(error);
}
}
}
/* eslint-disable no-await-in-loop */
for (const link of store.links) {
if (!filterStoreLink(link)) {
@@ -45,36 +150,79 @@ async function lookup(browser: Browser, store: Store) {
continue;
}
const context = config.browser.isIncognito
const proxy = nextProxy(store);
const useAdBlock = !config.browser.lowBandwidth && !store.disableAdBlocker;
const customContext = config.browser.isIncognito;
const context = customContext
? await browser.createIncognitoBrowserContext()
: browser.defaultBrowserContext();
const page = config.browser.isIncognito
? await context.newPage()
: await browser.newPage();
const page = await context.newPage();
page.setDefaultNavigationTimeout(config.page.timeout);
await page.setUserAgent(getRandomUserAgent());
if (store.disableAdBlocker) {
try {
await disableBlockerInPage(page);
} catch (error) {
logger.error(error);
}
let adBlockRequestHandler: any;
let pageProxy;
if (useAdBlock) {
const onProxyFunc = (event: keyof PageEventObj, handler: any) => {
if (event !== 'request') {
page.on(event, handler);
return;
}
adBlockRequestHandler = handler;
};
pageProxy = new Proxy(page, {
get(target, prop, receiver) {
if (prop === 'on') {
return onProxyFunc;
}
return Reflect.get(target, prop, receiver);
}
});
await enableBlockerInPage(pageProxy);
}
await page.setRequestInterception(true);
page.on('request', async (request) => {
if (await handleLowBandwidth(request)) {
return;
}
if (await handleAdBlock(request, adBlockRequestHandler)) {
return;
}
if (await handleProxy(request, proxy)) {
return;
}
try {
await request.continue();
} catch {}
});
let statusCode = 0;
try {
statusCode = await lookupCard(browser, store, page, link);
} catch (error) {
} catch (error: unknown) {
logger.error(
`✖ [${store.name}] ${link.brand} ${link.series} ${link.model} - ${
error.message as string
(error as Error).message
}`
);
const client = await page.target().createCDPSession();
await client.send('Network.clearBrowserCookies');
await client.send('Network.clearBrowserCache');
// Await client.send('Network.clearBrowserCache');
}
if (pageProxy) {
await disableBlockerInPage(pageProxy);
}
// Must apply backoff before closing the page, e.g. if CloudFlare is
@@ -82,7 +230,7 @@ async function lookup(browser: Browser, store: Store) {
// before redirecting to the next page
await processBackoffDelay(store, link, statusCode);
await closePage(page);
if (config.browser.isIncognito) {
if (customContext) {
await context.close();
}
}
@@ -122,11 +270,9 @@ async function lookupCard(
logger.info(`${Print.inStock(link, store, true)}\n${givenUrl}`);
if (config.browser.open) {
if (link.openCartAction === undefined) {
await open(givenUrl);
} else {
await link.openCartAction(browser);
}
await (link.openCartAction === undefined
? open(givenUrl)
: link.openCartAction(browser));
}
sendNotification(link, store);
@@ -157,22 +303,10 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
type: 'textContent'
};
if (store.labels.inStock) {
const options = {
...baseOptions,
requireVisible: true,
type: 'outerHTML' as const
};
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
logger.info(Print.outOfStock(link, store, true));
return false;
}
}
if (store.labels.outOfStock) {
if (await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)) {
logger.info(Print.outOfStock(link, store, true));
if (store.labels.captcha) {
if (await pageIncludesLabels(page, store.labels.captcha, baseOptions)) {
logger.warn(Print.captcha(link, store, true));
await delay(getSleepTime(store));
return false;
}
}
@@ -187,33 +321,56 @@ async function lookupCardInStock(store: Store, page: Page, link: Link) {
}
if (store.labels.maxPrice) {
const price = await cardPrice(
page,
store.labels.maxPrice,
config.store.maxPrice.series[link.series],
baseOptions
);
const maxPrice = config.store.maxPrice.series[link.series];
if (price) {
logger.info(Print.maxPrice(link, store, price, maxPrice, true));
return false;
}
}
if (store.labels.captcha) {
if (await pageIncludesLabels(page, store.labels.captcha, baseOptions)) {
logger.warn(Print.captcha(link, store, true));
await delay(getSleepTime(store));
link.price = await getPrice(page, store.labels.maxPrice, baseOptions);
if (link.price && link.price > maxPrice && maxPrice > 0) {
logger.info(Print.maxPrice(link, store, maxPrice, true));
return false;
}
}
// Fixme: currently causing issues
// Do API inventory validation in realtime (no cache) if available
if (
store.realTimeInventoryLookup !== undefined &&
link.itemNumber !== undefined
) {
return store.realTimeInventoryLookup(link.itemNumber);
// if (
// store.realTimeInventoryLookup !== undefined &&
// link.itemNumber !== undefined
// ) {
// return store.realTimeInventoryLookup(link.itemNumber);
// }
if (store.labels.inStock) {
const options = {
...baseOptions,
requireVisible: true,
type: 'outerHTML' as const
};
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
logger.info(Print.outOfStock(link, store, true));
return false;
}
}
if (link.labels?.inStock) {
const options = {
...baseOptions,
requireVisible: true,
type: 'outerHTML' as const
};
if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
logger.info(Print.outOfStock(link, store, true));
return false;
}
}
if (store.labels.outOfStock) {
if (await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)) {
logger.info(Print.outOfStock(link, store, true));
return false;
}
}
return true;
@@ -225,23 +382,10 @@ export async function tryLookupAndLoop(browser: Browser, store: Store) {
return;
}
if (store.linksBuilder) {
const lastRunTime = linkBuilderLastRunTimes[store.name] ?? -1;
const ttl = store.linksBuilder.ttl ?? Number.MAX_SAFE_INTEGER;
if (lastRunTime === -1 || Date.now() - lastRunTime > ttl) {
try {
await fetchLinks(store, browser);
linkBuilderLastRunTimes[store.name] = Date.now();
} catch (error) {
logger.error(error.message);
}
}
}
logger.debug(`[${store.name}] Starting lookup...`);
try {
await lookup(browser, store);
} catch (error) {
} catch (error: unknown) {
logger.error(error);
}
+59 -5
View File
@@ -15,17 +15,23 @@ export const Alternate: Store = {
container: 'div.price > span',
euroFormat: true
},
outOfStock: {
container: '.stockStatus',
text: ['liefertermin unbekannt']
}
outOfStock: [
{
container: '.stockStatus',
text: ['liefertermin unbekannt']
},
{
container: '.stockStatus',
text: ['Artikel kann nicht gekauft werden']
}
]
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.alternate.de/product/1516616'
url: 'https://www.alternate.de/product/1662088'
},
{
brand: 'asus',
@@ -356,6 +362,54 @@ export const Alternate: Store = {
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.alternate.de/product/1651221'
},
{
brand: 'xfx',
model: 'merc',
series: 'rx6800xt',
url: 'https://www.alternate.de/product/1698792'
},
{
brand: 'sapphire',
model: 'nitro oc se',
series: 'rx6800xt',
url: 'https://www.alternate.de/product/1696478'
},
{
brand: 'sapphire',
model: 'nitro oc',
series: 'rx6800xt',
url: 'https://www.alternate.de/product/1696482'
},
{
brand: 'asus',
model: 'strix lc',
series: 'rx6800xt',
url: 'https://www.alternate.de/product/1695392'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: 'rx6800xt',
url: 'https://www.alternate.de/product/1697044'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.alternate.de/product/1675115'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.alternate.de/product/1675117'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.alternate.de/product/1676874'
}
],
name: 'alternate'
+51 -2
View File
@@ -11,157 +11,206 @@ export const AmazonCa: Store = {
text: ['add to cart']
},
maxPrice: {
container: 'span[class*="PriceString"]',
euroFormat: false
container: '#priceblock_ourprice'
}
},
links: [
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B07PBLD2MX&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.ca/dp/B07PBLD2MX'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR7SV3M'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR5SXPS'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1',
model: 'ftw3',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR3DPGW'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR3Y5GQ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR55YB5'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR4RJ3Q'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HR6FMF3'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HJTH61J'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HJS2JLJ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HHDP9DW'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HH5WF97'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.ca/dp/B08HJNKT3P'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity',
series: '3090',
url: 'https://www.amazon.ca/dp/B08HJQ182D'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
model: 'ventus 3x oc',
series: '3090',
url: 'https://www.amazon.ca/dp/B08HR9D2JS'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc',
series: '3090',
url: 'https://www.amazon.ca/dp/B08HJRF2CN'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc',
series: '3090',
url: 'https://www.amazon.ca/dp/B08HJPDJTY'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
model: 'tuf',
series: '3090',
url: 'https://www.amazon.ca/dp/B08HJGNJ81'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.ca/dp/B08HJLLF7G'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.ca/dp/B08166SLDF'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.ca/dp/B0815XFSGK'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.ca/dp/B08164VTWH'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.ca/dp/B0815Y8J9N'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GSC5D9G&Quantity.1=1',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.ca/dp/B08GSC5D9G'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GS1N24H&Quantity.1=1',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.ca/dp/B08GS1N24H'
+63
View File
@@ -0,0 +1,63 @@
import {Store} from './store';
export const AmazonDeWarehouse: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'body',
text: [
'geben sie die unten angezeigten zeichen ein',
'geben sie die zeichen unten ein'
]
},
inStock: {
container: '#a-autoid-0-announce',
text: ['In den Einkaufswagen']
},
maxPrice: {
container: 'a-size-large a-color-price olpOfferPrice a-text-bold',
euroFormat: true
},
outOfStock: [
{
container: '.a-size-medium',
text: [
'Derzeit gibt es keine Verkäufer, die diesen Artikel an Ihren Standort liefern können'
]
}
]
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.de/gp/offer-listing/B07PW9VBK5'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRK9'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.de/gp/offer-listing/B08H98GVK8'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.de/gp/offer-listing/B087VM5XC6'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRLL'
}
],
name: 'amazon-de-warehouse'
};
+164 -4
View File
@@ -11,386 +11,546 @@ export const AmazonDe: Store = {
]
},
inStock: {
container: '#desktop_buybox',
container: '#add-to-cart-button',
text: ['in den einkaufswagen']
},
maxPrice: {
container: 'span[class*="PriceString"]',
container: '#priceblock_ourprice',
euroFormat: true
}
},
outOfStock: [
{
container: '#availability',
text: ['Derzeit nicht verfügbar']
}
]
},
links: [
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.de/dp/B083JX52VG/'
url: 'https://www.amazon.de/dp/B07PW9VBK5'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
model: 'strix',
series: '3080',
url: 'https://www.amazon.de/dp/B08HN7VVLJ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
model: 'strix oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08HN6KYS3'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.de/dp/B08HN37VQK'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08HN4DSTC'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
model: 'ftw3',
series: '3080',
url: 'https://www.amazon.de/dp/B08HGBYWQ6'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.de/dp/B08HGYXP4C'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.de/dp/B08HGLN78Q'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.de/dp/B08HH1BMQQ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.de/dp/B08HJ9XFNM'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHLDS72&Quantity.1=1',
model: 'aorus master',
series: '3080',
url: 'https://www.amazon.de/dp/B08KHLDS72'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08HHZVZ3N'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08HLZXHZY'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KH7RL89&Quantity.1=1',
model: 'vision oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08KH7RL89'
},
{
brand: 'inno3d',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JD6QPXD&Quantity.1=1',
model: 'twin x2 oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08JD6QPXD'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.de/dp/B08HM4V2DH'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08HM4M621'
},
{
brand: 'palit',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JCVWTQY&Quantity.1=1',
model: 'gaming pro',
series: '3080',
url: 'https://www.amazon.de/dp/B08JCVWTQY'
},
{
brand: 'palit',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JCKYYL8&Quantity.1=1',
model: 'gaming pro oc',
series: '3080',
url: 'https://www.amazon.de/dp/B08JCKYYL8'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.de/dp/B08HR1NPPQ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN642LY&Quantity.1=1',
model: 'strix',
series: '3090',
url: 'https://www.amazon.de/dp/B08HN642LY'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN51T8Q&Quantity.1=1',
model: 'strix oc',
series: '3090',
url: 'https://www.amazon.de/dp/B08HN51T8Q'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN4FLFJ&Quantity.1=1',
model: 'tuf',
series: '3090',
url: 'https://www.amazon.de/dp/B08HN4FLFJ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HN5B8FJ&Quantity.1=1',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.de/dp/B08HN5B8FJ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGFNPJQ&Quantity.1=1',
model: 'ftw3',
series: '3090',
url: 'https://www.amazon.de/dp/B08HGFNPJQ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08J5NMDP7&Quantity.1=1',
model: 'ftw3',
series: '3090',
url: 'https://www.amazon.de/dp/B08J5NMDP7'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGS1SXH&Quantity.1=1',
model: 'ftw3 ultra',
series: '3090',
url: 'https://www.amazon.de/dp/B08HGS1SXH'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGZ4XSZ&Quantity.1=1',
model: 'xc3',
series: '3090',
url: 'https://www.amazon.de/dp/B08HGZ4XSZ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGKQ527&Quantity.1=1',
model: 'xc3 black',
series: '3090',
url: 'https://www.amazon.de/dp/B08HGKQ527'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HGTNDL4&Quantity.1=1',
model: 'xc3 ultra',
series: '3090',
url: 'https://www.amazon.de/dp/B08HGTNDL4'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KH7R4FQ&Quantity.1=1',
model: 'aorus master',
series: '3090',
url: 'https://www.amazon.de/dp/B08KH7R4FQ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc',
series: '3090',
url: 'https://www.amazon.de/dp/B08HJPDJTY'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHKDTSJ&Quantity.1=1',
model: 'turbo',
series: '3090',
url: 'https://www.amazon.de/dp/B08KHKDTSJ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc',
series: '3090',
url: 'https://www.amazon.de/dp/B08HJRF2CN'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
model: 'gaming x trio',
series: '3090',
url: 'https://www.amazon.de/dp/B08HRBW6VB'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HM661YM&Quantity.1=1',
model: 'ventus 3x oc',
series: '3090',
url: 'https://www.amazon.de/dp/B08HM661YM'
},
{
brand: 'palit',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08JQQ1VD1&Quantity.1=1',
model: 'gaming pro',
series: '3090',
url: 'https://www.amazon.de/dp/B08JQQ1VD1'
},
{
brand: 'nvidia',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HR6ZBYJ&Quantity.1=1',
model: 'founders edition',
series: '3090',
url: 'https://www.amazon.de/dp/B08HR6ZBYJ'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity',
series: '3090',
url: 'https://www.amazon.de/dp/B08HJQ182D'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HSJ1622&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.de/dp/B08HSJ1622'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
model: 'dual oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08KHFZN9P'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HT7PR9Y&Quantity.1=1',
model: 'strix',
series: '3070',
url: 'https://www.amazon.de/dp/B08HT7PR9Y'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08L8JNTXQ'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08KWPDXJZ'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L6PCZTR&Quantity.1=1',
model: 'ventus 3x oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08L6PCZTR'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming x trio',
series: '3070',
url: 'https://www.amazon.de/dp/B08KWN2LZG'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08M13DXSZ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHL21CV&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08KHL21CV'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08KHL2J5X&Quantity.1=1',
model: 'eagle oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08KHL2J5X'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3QCZKZ&Quantity.1=1',
model: 'xc3 black',
series: '3070',
url: 'https://www.amazon.de/dp/B08L3QCZKZ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3QZP7W&Quantity.1=1',
model: 'xc3',
series: '3070',
url: 'https://www.amazon.de/dp/B08L3QZP7W'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08L3Q41SM&Quantity.1=1',
model: 'xc3 ultra',
series: '3070',
url: 'https://www.amazon.de/dp/B08L3Q41SM'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HRBR7K9&Quantity.1=1',
model: 'twin edge',
series: '3070',
url: 'https://www.amazon.de/dp/B08HRBR7K9'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08LBVNKT1&Quantity.1=1',
model: 'twin edge oc',
series: '3070',
url: 'https://www.amazon.de/dp/B08LBVNKT1'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'dual fan',
series: '3070',
url: 'https://www.amazon.de/dp/B08HBF5L3K'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel',
series: '3070',
url: 'https://www.amazon.de/dp/B08HBJB7YD'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.de/dp/B08166SLDF'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.de/dp/B0815XFSGK'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.de/dp/B08164VTWH'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.de/dp/B0815Y8J9N'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRK9&Quantity.1=1',
labels: {
inStock: {
container: '#productTitle',
text: ['sony playstation 5']
}
},
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.de/dp/B08H93ZRK9'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H98GVK8&Quantity.1=1',
labels: {
inStock: {
container: '#productTitle',
text: ['sony playstation 5']
}
},
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.de/dp/B08H98GVK8'
},
{
brand: 'microsoft',
// Fixme: disabled because of #1095, enable when working again
// cartUrl:
// 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.de/dp/B08H93ZRLL'
},
{
brand: 'microsoft',
// Fixme: disabled because of #1095, enable when working again
// cartUrl:
// 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.de/dp/B087VM5XC6'
}
],
name: 'amazon-de'
+102 -4
View File
@@ -1,6 +1,7 @@
import {Store} from './store';
export const AmazonEs: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'body',
@@ -11,94 +12,191 @@ export const AmazonEs: Store = {
text: ['añadir a la cesta']
},
maxPrice: {
container: 'span[class*="PriceString"]',
euroFormat: true
}
container: '#priceblock_ourprice'
},
outOfStock: [
{
container: '#availability',
text: ['No disponible']
}
]
},
links: [
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.es/dp/B083JX52VG/'
url: 'https://www.amazon.es/dp/B07PW9VBK5'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.es/dp/B08HM4V2DH'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.es/dp/B08HGYXP4C'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.es/dp/B08HJ9XFNM'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
model: 'ftw3',
series: '3080',
url: 'https://www.amazon.es/dp/B08HGBYWQ6'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.es/dp/B08HGLN78Q'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.es/dp/B08HH1BMQQ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.es/dp/B08HLZXHZY'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.es/dp/B08HHZVZ3N'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.es/dp/B08HN37VQK'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.es/dp/B08HN4DSTC'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
model: 'strix oc',
series: '3080',
url: 'https://www.amazon.es/dp/B08HN6KYS3'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.es/dp/B08HM4M621'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.es/dp/B08HR1NPPQ'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.es/dp/B08166SLDF'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.es/dp/B0815XFSGK'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.es/dp/B08164VTWH'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.es/dp/B0815Y8J9N'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.es/dp/B08KKJ37F7'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.es/dp/B08KJF2D25'
},
{
brand: 'microsoft',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.es/dp/B08H93ZRLL'
},
{
brand: 'microsoft',
cartUrl:
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.es/dp/B087VM5XC6'
}
],
name: 'amazon-es'
+190
View File
@@ -0,0 +1,190 @@
import {Store} from './store';
export const AmazonFr: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'body',
text: ['entrez les caractères que vous voyez ci-dessous']
},
inStock: {
container: '#desktop_buybox',
text: ['ajouter au panier']
},
maxPrice: {
container: '#priceblock_ourprice',
euroFormat: true
},
outOfStock: [
{
container: '#availability',
text: ['Actuellement indisponible']
}
]
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.fr/dp/B07PW9VBK5'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR7SV3M'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR5SXPS'
},
{
brand: 'evga',
model: 'ftw3',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR3DPGW'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR3Y5GQ'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR55YB5'
},
{
brand: 'evga',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR4RJ3Q'
},
{
brand: 'evga',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HR6FMF3'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HJTH61J'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HJS2JLJ'
},
{
brand: 'asus',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HHDP9DW'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HH5WF97'
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.fr/dp/B08HJNKT3P'
},
{
brand: 'zotac',
model: 'trinity',
series: '3090',
url: 'https://www.amazon.fr/dp/B08HJQ182D'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3090',
url: 'https://www.amazon.fr/dp/B08HR9D2JS'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3090',
url: 'https://www.amazon.fr/dp/B08HJRF2CN'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3090',
url: 'https://www.amazon.fr/dp/B08HJPDJTY'
},
{
brand: 'asus',
model: 'tuf',
series: '3090',
url: 'https://www.amazon.fr/dp/B08HJGNJ81'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.fr/dp/B08HJLLF7G'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.fr/dp/B08166SLDF'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.fr/dp/B0815XFSGK'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.fr/dp/B08164VTWH'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.fr/dp/B0815Y8J9N'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.fr/dp/B08H93ZRK9'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.fr/dp/B08H98GVK8'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.fr/dp/B08H93ZRLL'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.fr/dp/B087VM5XC6'
}
],
name: 'amazon-fr'
};
+413
View File
@@ -0,0 +1,413 @@
import {Store} from './store';
export const AmazonIt: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'body',
text: ['enter the characters you see below']
},
inStock: {
container: '#desktop_buybox',
text: ['Aggiungi al carrello']
},
maxPrice: {
container: '#priceblock_ourprice'
}
},
links: [
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.it/dp/B07PW9VBK5'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.it/dp/B08L8HPKR6'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix',
series: '3070',
url: 'https://www.amazon.it/dp/B08L8JNTXQ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
model: 'tuf',
series: '3070',
url: 'https://www.amazon.it/dp/B08L8KC1J7'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.it/dp/B08KY266MG'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.it/dp/B08KWN2LZG'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
model: 'xlr8 revel',
series: '3070',
url: 'https://www.amazon.it/dp/B08HBJB7YD'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
model: 'xlr8 uprising',
series: '3070',
url: 'https://www.amazon.it/dp/B08HBF5L3K'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc',
series: '3070',
url: 'https://www.amazon.it/dp/B08KWPDXJZ'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
model: 'ventus 3x oc',
series: '3070',
url: 'https://www.amazon.it/dp/B08KWLMZV4'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.it/dp/B08LF32LJ6'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra',
series: '3070',
url: 'https://www.amazon.it/dp/B08L8L71SM'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3',
series: '3070',
url: 'https://www.amazon.it/dp/B08L8L9TCZ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.it/dp/B08KY266MG'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc',
series: '3070',
url: 'https://www.amazon.it/dp/B08M13DXSZ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
model: 'eagle',
series: '3070',
url: 'https://www.amazon.it/dp/B08KXZV626'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
model: 'xlr8 revel',
series: '3080',
url: 'https://www.amazon.it/dp/B08HBR7QBM'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
model: 'xlr8 revel',
series: '3080',
url: 'https://www.amazon.it/dp/B08HBTJMLJ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.amazon.it/dp/B08HR3Y5GQ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.it/dp/B08HR55YB5'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
model: 'xc3',
series: '3080',
url: 'https://www.amazon.it/dp/B08HR4RJ3Q'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.it/dp/B08HR6FMF3'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
model: 'gaming oc',
series: '3080',
url: 'https://www.amazon.it/dp/B08HJTH61J'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
model: 'eagle oc',
series: '3080',
url: 'https://www.amazon.it/dp/B08HJS2JLJ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
model: 'tuf oc',
series: '3080',
url: 'https://www.amazon.it/dp/B08HH5WF97'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
model: 'tuf',
series: '3080',
url: 'https://www.amazon.it/dp/B08HHDP9DW'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
model: 'strix oc',
series: '3090',
url: 'https://www.amazon.it/dp/B08J6GMWCQ'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.it/dp/B08HR5SXPS'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
model: 'trinity',
series: '3080',
url: 'https://www.amazon.it/dp/B08HJNKT3P'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
model: 'trinity',
series: '3090',
url: 'https://www.amazon.it/dp/B08HJQ182D'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
model: 'xlr8 revel',
series: '3090',
url: 'https://www.amazon.it/dp/B08HBQWBHH'
},
{
brand: 'pny',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
model: 'xlr8 revel',
series: '3090',
url: 'https://www.amazon.it/dp/B08HBVX53D'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
model: 'gaming x trio',
series: '3090',
url: 'https://www.amazon.it/dp/B08HRBW6VB'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
model: 'ventus 3x',
series: '3090',
url: 'https://www.amazon.it/dp/B08HR9D2JS'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
model: 'gaming oc',
series: '3090',
url: 'https://www.amazon.it/dp/B08HJRF2CN'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
model: 'eagle oc',
series: '3090',
url: 'https://www.amazon.it/dp/B08HJPDJTY'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.it/dp/B08HJGNJ81'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
model: 'tuf oc',
series: '3090',
url: 'https://www.amazon.it/dp/B08HJLLF7G'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.it/dp/B08166SLDF'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.it/dp/product/B0815XFSGK'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.it/dp/B08164VTWH'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.it/dp/B0815Y8J9N'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.it/dp/B08MVC76SR'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.it/dp/B08MVCLBWK'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.it/dp/B08KKJ37F7'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.it/dp/B08KJF2D25'
},
{
brand: 'microsoft',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDSW1ZW&Quantity.1=1',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.it/dp/B08JDSW1ZW'
},
{
brand: 'microsoft',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDTCXRG&Quantity.1=1',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.it/dp/B08JDTCXRG'
},
{
brand: 'corsair',
cartUrl:
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
model: '750 platinum',
series: 'sf',
url: 'https://www.amazon.it/dp/B07M63H81H'
}
],
name: 'amazon-it'
};
+45 -1
View File
@@ -16,7 +16,7 @@ export const AmazonNl: Store = {
]
},
maxPrice: {
container: 'span[class*="PriceString"]',
container: '#priceblock_ourprice',
euroFormat: true
},
outOfStock: [
@@ -33,39 +33,83 @@ export const AmazonNl: Store = {
links: [
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B083GGYNQ6&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.nl/dp/B083GGYNQ6'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.amazon.nl/dp/B08HM4M621'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
model: 'gaming x trio',
series: '3080',
url: 'https://www.amazon.nl/dp/B08HM4V2DH'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.amazon.nl/dp/B08HJ9XFNM'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
model: 'xc3 black',
series: '3080',
url: 'https://www.amazon.nl/dp/B08HH1BMQQ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
model: 'strix',
series: '3080',
url: 'https://www.amazon.nl/dp/B08HN7VVLJ'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.nl/dp/B08166SLDF'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.nl/dp/B0815XFSGK'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.nl/dp/B08164VTWH'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.nl/dp/B0815Y8J9N'
}
],
name: 'amazon-nl'
+29 -8
View File
@@ -14,7 +14,7 @@ export const AmazonUk: Store = {
text: ['in stock']
},
maxPrice: {
container: 'span[class*="PriceString"]'
container: '#priceblock_ourprice'
},
outOfStock: [
{
@@ -31,26 +31,42 @@ export const AmazonUk: Store = {
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B081265T5Z&Quantity.1=1',
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B0753R2TWC&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.co.uk/dp/B081265T5Z/'
url: 'https://www.amazon.co.uk/dp/B0753R2TWC/'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08FC5L3RG&Quantity.1=1',
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H95Y452&Quantity.1=1',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.amazon.com/dp/B08FC5L3RG'
url: 'https://www.amazon.co.uk/dp/B08H95Y452'
},
{
brand: 'sony',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08H97NYGP&Quantity.1=1',
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H97NYGP&Quantity.1=1',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.amazon.co.uk/dp/B08H97NYGP/'
url: 'https://www.amazon.co.uk/dp/B08H97NYGP'
},
{
brand: 'microsoft',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H93GKNJ&Quantity.1=1',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.amazon.co.uk/dp/B08H93GKNJ'
},
{
brand: 'microsoft',
cartUrl:
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08GD9MNZB&Quantity.1=1',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.co.uk/dp/B08GD9MNZB'
}
],
linksBuilder: {
@@ -88,7 +104,7 @@ export const AmazonUk: Store = {
url
});
} else {
logger.error(`Failed to parse card: ${title}`);
logger.error(`Failed to parse card: ${title}`, {url});
}
}
@@ -109,6 +125,11 @@ export const AmazonUk: Store = {
'https://www.amazon.co.uk/s?k=%2B%22RTX+3090%22+-3080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675291',
'https://www.amazon.co.uk/s?k=%2B%22RTX+3090%22+-3080+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675594&page=2'
]
},
{
series: '3060ti',
url:
'https://www.amazon.co.uk/s?k=%2B%22RTX+3060+TI%22+-2060+-2070+-2080+-SUPER+-GTX&i=computers&rh=n%3A430500031%2Cp_n_availability%3A419162031&s=relevancerank&dc&qid=1601675291sb_noss'
}
]
},
+288 -9
View File
@@ -1,27 +1,42 @@
import {Store} from './store';
export const Amazon: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'body',
text: ['enter the characters you see below']
},
inStock: {
container: '#desktop_buybox',
text: ['add to cart']
},
inStock: [
{
container: '#add-to-cart-button',
text: ['add to cart']
},
{
container: '#buy-now-button',
text: ['buy now']
}
],
maxPrice: {
container: 'span[class*="PriceString"]'
container: '#priceblock_ourprice'
}
},
links: [
{
brand: 'test:brand',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07TDN1SC5&Quantity.1=1',
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B083248S3B&Quantity.1=1',
model: 'test:model',
series: 'test:series',
url: 'https://www.amazon.com/dp/B07TDN1SC5'
url: 'https://www.amazon.com/dp/B083248S3B'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8LG4M3&Quantity.1=1',
model: 'dual',
series: '3070',
url: 'https://www.amazon.com/dp/B08L8LG4M3'
},
{
brand: 'asus',
@@ -39,6 +54,22 @@ export const Amazon: Store = {
series: '3070',
url: 'https://www.amazon.com/dp/B08LW46GH2'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
model: 'strix',
series: '3070',
url: 'https://www.amazon.com/dp/B08L8JNTXQ'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
model: 'tuf',
series: '3070',
url: 'https://www.amazon.com/dp/B08L8KC1J7'
},
{
brand: 'gigabyte',
cartUrl:
@@ -47,6 +78,14 @@ export const Amazon: Store = {
series: '3070',
url: 'https://www.amazon.com/dp/B08KY266MG'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.com/dp/B08KWN2LZG'
},
{
brand: 'pny',
cartUrl:
@@ -63,6 +102,14 @@ export const Amazon: Store = {
series: '3070',
url: 'https://www.amazon.com/dp/B08HBF5L3K'
},
{
brand: 'msi',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
model: 'ventus 2x oc',
series: '3070',
url: 'https://www.amazon.com/dp/B08KWPDXJZ'
},
{
brand: 'msi',
cartUrl:
@@ -79,6 +126,78 @@ export const Amazon: Store = {
series: '3070',
url: 'https://www.amazon.com/dp/B08LF1CWT2'
},
{
brand: 'zotac',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
model: 'gaming',
series: '3070',
url: 'https://www.amazon.com/dp/B08LF32LJ6'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
model: 'xc3 ultra',
series: '3070',
url: 'https://www.amazon.com/dp/B08L8L71SM'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
model: 'ftw3',
series: '3070',
url: 'https://www.amazon.com/dp/B08L8L9TCZ'
},
{
brand: 'evga',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
model: 'xc3 black',
series: '3070',
url: 'https://www.amazon.com/dp/B08LW46GH2'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.com/dp/B08KY266MG'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
model: 'vision oc',
series: '3070',
url: 'https://www.amazon.com/dp/B08M13DXSZ'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08M4YFNX2&Quantity.1=1',
model: 'gaming oc',
series: '3070',
url: 'https://www.amazon.com/dp/B08M4YFNX2'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
model: 'eagle',
series: '3070',
url: 'https://www.amazon.com/dp/B08KXZV626'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08KY322TH&Quantity.1=1',
model: 'eagle oc',
series: '3070',
url: 'https://www.amazon.com/dp/B08KY322TH'
},
{
brand: 'pny',
cartUrl:
@@ -279,13 +398,29 @@ export const Amazon: Store = {
series: '3090',
url: 'https://www.amazon.com/dp/B08HJLLF7G'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amazon.com/dp/B08166SLDF'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amazon.com/dp/product/B0815XFSGK'
},
{
brand: 'amd',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amazon.com/dp/product/B08164VTWH'
url: 'https://www.amazon.com/dp/B08164VTWH'
},
{
brand: 'amd',
@@ -293,7 +428,135 @@ export const Amazon: Store = {
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amazon.com/dp/product/B0815Y8J9N'
url: 'https://www.amazon.com/dp/B0815Y8J9N'
},
{
brand: 'gigabyte',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NS4W2ZY&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NS4W2ZY'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08MVC76SR'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXXT7WN&Quantity.1=1',
model: 'nitro+',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NXXT7WN'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYNLMR&Quantity.1=1',
model: 'pulse',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NXYNLMR'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXVNMPQ&Quantity.1=1',
model: 'nitro+',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NXVNMPQ'
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08N6ZLX9B&Quantity.1=1',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08N6ZLX9B'
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
model: 'merc',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NX14LV1'
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NN76VJD&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NN76VJD'
},
{
brand: 'xfx',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P5YFZCY&Quantity.1=1',
model: 'merc',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08P5YFZCY'
},
{
brand: 'powercolor',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MNZM5TK&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08MNZM5TK'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08MVCLBWK'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXZSPMY&Quantity.1=1',
model: 'nitro+',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NXZSPMY'
},
{
brand: 'sapphire',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NXYBVDB&Quantity.1=1',
model: 'pulse',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NXYBVDB'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWJ29NB&Quantity.1=1',
model: 'strix oc',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08NWJ29NB'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08P3YT3MY&Quantity.1=1',
model: 'tuf oc',
series: 'rx6800',
url: 'https://www.amazon.com/dp/B08P3YT3MY'
},
{
brand: 'asus',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NWHKGS9&Quantity.1=1',
model: 'strix lc',
series: 'rx6800xt',
url: 'https://www.amazon.com/dp/B08NWHKGS9'
},
{
brand: 'sony',
@@ -322,6 +585,22 @@ export const Amazon: Store = {
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.amazon.com/dp/B08G9J44ZN'
},
{
brand: 'corsair',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
model: '750 platinum',
series: 'sf',
url: 'https://www.amazon.com/dp/B07M63H81H'
},
{
brand: 'corsair',
cartUrl:
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B07F84FJ1G&Quantity.1=1',
model: '600 platinum',
series: 'sf',
url: 'https://www.amazon.com/dp/B07F84FJ1G'
}
],
name: 'amazon'
+39
View File
@@ -0,0 +1,39 @@
import {Store} from './store';
export const AmdCa: Store = {
labels: {
inStock: {
container: '.btn-shopping-cart',
text: ['add to cart']
},
maxPrice: {
container: '.product-page-description h4',
euroFormat: false
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.amd.com/en/direct-buy/5458373400/ca'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5458373400/ca?add-to-cart=true',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amd.com/en/direct-buy/5458373400/ca'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5458372800/ca?add-to-cart=true',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5458372800/ca'
}
],
name: 'amd-ca'
};
+9 -1
View File
@@ -1,6 +1,6 @@
import {Store} from './store';
export const AMDDe: Store = {
export const AmdDe: Store = {
labels: {
inStock: {
container: '.btn-shopping-cart',
@@ -49,6 +49,14 @@ export const AMDDe: Store = {
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amd.com/de/direct-buy/5450881700/de'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/de/direct-buy/5458374100/de?add-to-cart=true',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amd.com/de/direct-buy/5458374100/de'
}
],
name: 'amd-de'
+63
View File
@@ -0,0 +1,63 @@
import {Store} from './store';
export const AmdIt: Store = {
labels: {
inStock: {
container: '.btn-shopping-cart',
text: ['add to cart']
},
maxPrice: {
container: '.product-page-description h4',
euroFormat: true
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.amd.com/en/direct-buy/5450881400/it'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5450881400/it?add-to-cart=true',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.amd.com/en/direct-buy/5450881400/it'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5450881500/it?add-to-cart=true',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.amd.com/en/direct-buy/5450881500/it'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5450881600/it?add-to-cart=true',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.amd.com/en/direct-buy/5450881600/it'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5450881700/it?add-to-cart=true',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amd.com/en/direct-buy/5450881700/it'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5458374100/it?add-to-cart=true',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5458374100/it'
}
],
name: 'amd-it'
};
+17 -1
View File
@@ -1,6 +1,6 @@
import {Store} from './store';
export const AMD: Store = {
export const Amd: Store = {
labels: {
inStock: {
container: '.btn-shopping-cart',
@@ -49,6 +49,22 @@ export const AMD: Store = {
model: '5600x',
series: 'ryzen5600',
url: 'https://www.amd.com/en/direct-buy/5450881700/us'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5458372800/us?add-to-cart=true',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5458372800/us'
},
{
brand: 'amd',
cartUrl:
'https://www.amd.com/en/direct-buy/5458373400/us?add-to-cart=true',
model: 'amd reference',
series: 'rx6800',
url: 'https://www.amd.com/en/direct-buy/5458373400/us'
}
],
name: 'amd'
+42
View File
@@ -0,0 +1,42 @@
import {Store} from './store';
export const AntOnline: Store = {
labels: {
inStock: {
container: '.uk-button',
text: ['Add to Cart']
},
maxPrice: {
container: '.cPrice',
euroFormat: false
},
outOfStock: {
container: '.priceView-price .priceView-hero-price span',
text: ['Sold Out']
}
},
links: [
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.antonline.com/Sony/Electronics/Gaming_Devices/Gaming_Consoles/1409507'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url:
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1414487'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url:
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1409527'
}
],
name: 'antonline'
};
+34
View File
@@ -0,0 +1,34 @@
import {Store} from './store';
export const Argos: Store = {
labels: {
inStock: {
container: 'button[data-test="add-to-trolley-button-button"',
text: ['to trolley']
},
maxPrice: {
container: 'li[itemprop="price"]'
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.argos.co.uk/product/5718469'
},
{
brand: 'asus',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.argos.co.uk/product/6795199'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.argos.co.uk/product/6795151'
}
],
name: 'argos'
};
+17
View File
@@ -23,6 +23,13 @@ export const Aria: Store = {
series: 'test:series',
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'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
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'
}
],
linksBuilder: {
@@ -32,6 +39,11 @@ export const Aria: Store = {
titleSelector: 'strong > a[href]'
}),
urls: [
{
series: '3060ti',
url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti'
},
{
series: '3080',
url:
@@ -41,6 +53,11 @@ export const Aria: Store = {
series: '3090',
url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3090'
},
{
series: '3060ti',
url:
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti'
}
]
},
+1
View File
@@ -2,6 +2,7 @@ import {Store} from './store';
import fetch from 'node-fetch';
export const Asus: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
inStock: {
container: '#item_add_cart',
+116
View File
@@ -0,0 +1,116 @@
import {Store} from './store';
import {getProductLinksBuilder} from './helpers/card';
export const Awd: Store = {
labels: {
inStock: {
container: '.vs-stock .ty-qty-in-stock',
text: ['item(s)']
},
maxPrice: {
container: '.product-info .ty-price-num',
euroFormat: false // Note: Awd uses non-euroFromat as price seperator
},
outOfStock: {
container: '.vs-stock',
text: ['out of stock']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.awd-it.co.uk/asus-nvidia-geforce-gt-710-silent-low-profile-2gb-gddr5-graphics-card-pci-e.html'
},
{
brand: 'asus',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.awd-it.co.uk/asus-tuf-gaming-radeon-rx-6800-oc-edition-16gb-gddr6-graphics-card.html'
},
{
brand: 'asus',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.awd-it.co.uk/asus-rog-strix-radeon-rx-6800-oc-edition-16gb-gddr6-graphics-card.html'
},
{
brand: 'gigabyte',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.awd-it.co.uk/gigabyte-radeon-rx-6800-gaming-oc-16gb-gddr6-graphics-card.html'
},
{
brand: 'gigabyte',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.awd-it.co.uk/gigabyte-radeon-rx-6800-xt-gaming-oc-16gb-gddr6-graphics-card.html'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.awd-it.co.uk/amd-ryzen-5-5600x-cpu-six-core-3.7ghz-processor-socket-am4-retail.html'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.awd-it.co.uk/amd-ryzen-7-5800x-cpu-eight-core-3.8ghz-processor-socket-am4-retail.html'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.awd-it.co.uk/amd-ryzen-9-5900x-cpu-twelve-core-3.7ghz-processor-socket-am4-retail.html'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.awd-it.co.uk/amd-ryzen-9-5950x-sixteen-core-socket-am4-3.4ghz-processor.html'
}
],
linksBuilder: {
builder: getProductLinksBuilder({
productsSelector: '.grid-list .ty-grid-list__item',
sitePrefix: 'https://www.awd-it.co.uk',
titleSelector: '.title-price-wrapper',
urlSelector: 'a[href]'
}),
urls: [
{
series: '3070',
url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3070.html'
},
{
series: '3080',
url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3080.html'
},
{
series: '3090',
url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3090.html'
},
{
series: '3060ti',
url:
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html'
}
]
},
name: 'awd',
waitUntil: 'domcontentloaded'
};
+71
View File
@@ -20,6 +20,27 @@ export const BAndH: Store = {
url:
'https://www.bhphotovideo.com/c/product/1452927-REG/evga_06g_p4_2063_kr_geforce_rtx_2060_xc.html'
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1602755-REG/asus_dualrtx30708g_geforce_rtx_3070_8g.html'
},
{
brand: 'pny',
model: 'dual fan',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1595984-REG/pny_technologies_vcg30708tfxppb_geforce_rtx_3070_epic_x.html'
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url:
'https://www.bhphotovideo.com/c/product/1602756-REG/asus_strixrtx3070o8_rog_strix_geforce_rtx.html'
},
// TUF was removed from BH, not sure why so commenting out listing for now
// {
// brand: 'asus',
@@ -48,6 +69,42 @@ export const BAndH: Store = {
// series: '3080',
// url: 'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html'
// },
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1606948-REG/gigabyte_gv_n306teagle_oc_8gd_rtx_3060_ti_eagle.html'
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1606949-REG/gigabyte_gv_n306teagle_8gd_rtx_3060_ti_eagle.html'
},
{
brand: 'gigabyte',
model: 'aorus',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1606945-REG/gigabyte_gv_n306taorus_m_8gd_aorus_rtx_3060_ti.html'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1606947-REG/gigabyte_gv_n306tgaming_oc_8gd_rtx_3060_ti_gaming.html'
},
{
brand: 'gigabyte',
model: 'gaming pro',
series: '3060ti',
url:
'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html'
},
{
brand: 'msi',
model: 'gaming x trio',
@@ -166,6 +223,20 @@ export const BAndH: Store = {
series: 'ryzen5600',
url:
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html'
},
{
brand: 'corsair',
model: '750 platinum',
series: 'sf',
url:
'https://www.bhphotovideo.com/c/product/1560680-REG/corsair_cp_9020186_na_corsair_sf750_power_supply.html'
}
],
name: 'bandh'
+57 -4
View File
@@ -3,13 +3,17 @@ import {Store} from './store';
export const BestBuyCa: Store = {
labels: {
inStock: {
container: '#root',
text: ['available online']
container: '.x-checkout-experience-new',
text: ['add to cart']
},
maxPrice: {
container:
'div[class^="productPricingContainer"] span[class^="screenReaderOnly_"',
euroFormat: false
},
outOfStock: {
container: 'button.addToCartButton.disabled_XY3i_',
text: ['Add to Cart']
}
},
links: [
@@ -18,7 +22,42 @@ export const BestBuyCa: Store = {
model: 'test:model',
series: 'test:series',
url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-2060-super-gaming-x-8gb-gddr6-video-card/14419420?intl=nosplash'
'https://www.bestbuy.ca/en-ca/product/evga-geforce-gtx-1660-xc-ultra-6gb-gddr5-video-card/14119081?intl=nosplash'
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3060ti',
url:
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ti-ventus-2x-oc-8gb-gddr6-video-card/15178453?intl=nosplash'
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3060ti',
url:
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3060-ti-8gb-gddr6-video-card/15166285?intl=nosplash'
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060ti',
url:
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-oc-8gb-gddr6-video-card/15178452?intl=nosplash'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url:
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-8gb-gddr6-video-card/15178583?intl=nosplash'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3060ti',
url:
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3060-ti-ftw3-ultra-8gb-gddr6-video-card/15200164?intl=nosplash'
},
{
brand: 'zotac',
@@ -39,7 +78,7 @@ export const BestBuyCa: Store = {
model: 'xc3 ultra',
series: '3080',
url:
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/14961449?intl=nosplash'
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/15084753?intl=nosplash'
},
{
brand: 'asus',
@@ -110,6 +149,20 @@ export const BestBuyCa: Store = {
series: '3070',
url:
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3070-8gb-gddr6-video-card-only-at-best-buy/15078017?intl=nosplash'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.bestbuy.ca/en-ca/product/playstation-5-console-online-only/14962185?intl=nosplash'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5de',
url:
'https://www.bestbuy.ca/en-ca/product/playstation-5-digital-edition-console-online-only/14962184?intl=nosplash'
}
],
name: 'bestbuy-ca',
+212 -41
View File
@@ -18,7 +18,7 @@ export const BestBuy: Store = {
model: 'test:model',
series: 'test:series',
url:
'https://www.bestbuy.com/site/evga-ko-ultra-gaming-nvidia-geforce-rtx-2060-6gb-gddr6-pci-express-3-0-graphics-card-black-gray/6403801.p?skuId=6403801&intl=nosplash'
'https://www.bestbuy.com/site/insignia-8qt-digital-multi-cooker-stainless-steel/6258941.p?skuId=6258941&intl=nosplash'
},
{
brand: 'nvidia',
@@ -28,6 +28,102 @@ export const BestBuy: Store = {
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6439300/cart',
model: 'xc3 black',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6437912/cart',
model: 'eagle',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6437909/cart',
model: 'gaming oc',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6432654/cart',
model: 'dual fan',
series: '3070',
url:
'https://www.bestbuy.com/site/pny-geforce-rtx-3070-8gb-dual-fan-graphics-card/6432654.p?skuId=6432654&intl=nosplash'
},
{
brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432653/cart',
model: 'xlr8 revel',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6439384/cart',
model: 'aorus',
series: '3070',
url:
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3070-8g-gddr6-pci-express-4-0-graphics-card-black/6439384.p?skuId=6439384'
},
{
brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6439385/cart',
model: 'vision',
series: '3070',
url:
'https://www.bestbuy.com/site/gigabyte-geforce-rtx-3070-8g-gddr6-pci-express-4-0-graphics-card-white/6439385.p?skuId=6439385'
},
{
brand: 'asus',
cartUrl: 'https://api.bestbuy.com/click/-/6439128/cart',
model: 'tuf',
series: '3070',
url:
'https://www.bestbuy.com/site/asus-tuf-rtx3070-8gb-gddr6-pci-express-4-0-graphics-card-black/6439128.p?skuId=6439128'
},
{
brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6438278/cart',
model: 'ventus 3x oc',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6439127/cart',
model: 'strix',
series: '3070',
url:
'https://www.bestbuy.com/site/asus-rog-strix-rtx3070-8gb-gddr6-pci-express-4-0-graphics-card-black/6439127.p?skuId=6439127'
},
{
brand: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6439301/cart',
model: 'ftw3 ultra',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6439299/cart',
model: 'xc3 ultra',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart',
@@ -44,14 +140,6 @@ export const BestBuy: Store = {
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6439300/cart',
model: 'xc3 black',
series: '3070',
url:
'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: 'evga',
cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart',
@@ -92,22 +180,6 @@ export const BestBuy: Store = {
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6437912/cart',
model: 'eagle',
series: '3070',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6437909/cart',
model: 'gaming oc',
series: '3070',
url:
'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: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart',
@@ -148,22 +220,6 @@ export const BestBuy: Store = {
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6432654/cart',
model: 'dual fan',
series: '3070',
url:
'https://www.bestbuy.com/site/pny-geforce-rtx-3070-8gb-dual-fan-graphics-card/6432654.p?skuId=6432654&intl=nosplash'
},
{
brand: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432653/cart',
model: 'xlr8 revel',
series: '3070',
url:
'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: 'pny',
cartUrl: 'https://api.bestbuy.com/click/-/6432655/cart',
@@ -260,6 +316,38 @@ export const BestBuy: Store = {
url:
'https://www.bestbuy.com/site/pny-geforce-rtx-3090-24gb-xlr8-gaming-epic-x-rgb-triple-fan-graphics-card/6432657.p?skuId=6432657&intl=nosplash'
},
{
brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
model: 'founders edition',
series: '3060ti',
url:
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3060-ti-8gb-gddr6-pci-express-4-0-graphics-card-steel-and-black/6439402.p?skuId=6439402&intl=nosplash'
},
{
brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
model: 'ventus 2x',
series: '3060ti',
url:
'https://www.bestbuy.com/site/msi-geforce-rtx-3060-ti-ventus-2x-oc-bv-8gb-gddr6-pci-express-4-0-graphics-card-black-black/6441172.p?skuId=6441172&intl=nosplash'
},
{
brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-gaming-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442484.p?skuId=6442484?intl=nosplash'
},
{
brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
model: 'eagle',
series: '3060ti',
url:
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-eagle-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442485.p?skuId=6442485?intl=nosplash'
},
{
brand: 'amd',
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
@@ -321,6 +409,89 @@ export const BestBuy: Store = {
series: 'xboxss',
url:
'https://www.bestbuy.com/site/microsoft-xbox-series-s-512-gb-all-digital-console-disc-free-gaming-white/6430277.p?skuId=6430277'
},
{
brand: 'msi',
model: 'amd reference',
series: 'rx6800xt',
url:
'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',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.bestbuy.com/site/msi-radeon-rx-6800-16g-16gb-gddr6-pci-express-4-0-graphics-card-black-black/6441020.p?skuId=6441020'
},
{
brand: 'xfx',
model: 'amd reference',
series: 'rx6800',
url:
'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',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.bestbuy.com/site/xfx-amd-radeon-rx-6800xt-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6441226.p?skuId=6441226'
},
{
brand: 'xfx',
model: 'merc',
series: 'rx6800xt',
url:
'https://www.bestbuy.com/site/xfx-merc-319-amd-radeon-rx-6800xt-16gb-gddr6-pci-express-4-0-gaming-graphics-card-black/6442585.p?skuId=6442585'
},
{
brand: 'corsair',
cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart',
model: '750 platinum',
series: 'sf',
url:
'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',
cartUrl: 'https://api.bestbuy.com/click/-/6351844/cart',
model: '600 platinum',
series: 'sf',
url:
'https://www.bestbuy.com/site/corsair-sf-series-600w-atx12v-2-4-eps12v-2-92-sfx12v-80-plus-platinum-modular-power-supply-black/6351844.p?skuId=6351844'
},
{
brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
model: 'founders edition',
series: '3060ti',
url:
'https://www.bestbuy.com/site/nvidia-geforce-rtx-3060-ti-8gb-gddr6-pci-express-4-0-graphics-card-steel-and-black/6439402.p?skuId=6439402&intl=nosplash'
},
{
brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-gaming-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442484.p?skuId=6442484&intl=nosplash'
},
{
brand: 'gigabyte',
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
model: 'eagle oc',
series: '3060ti',
url:
'https://www.bestbuy.com/site/gigabyte-nvidia-geforce-rtx-3060-ti-eagle-oc-8g-gddr6-pci-express-4-0-graphics-card-black/6442485.p?skuId=6442485&intl=nosplash'
},
{
brand: 'msi',
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
model: 'ventus 2x oc',
series: '3060ti',
url:
'https://www.bestbuy.com/site/msi-geforce-rtx-3060-ti-ventus-2x-oc-bv-8gb-gddr6-pci-express-4-0-graphics-card-black-black/6441172.p?skuId=6441172&intl=nosplash'
}
],
name: 'bestbuy'
+8
View File
@@ -31,6 +31,10 @@ export const Box: Store = {
titleSelector: '.p-list-section > h3 > a[href]'
}),
urls: [
{
series: '3060ti',
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards'
},
{
series: '3070',
url: 'https://www.box.co.uk/rtx-3070-graphics-cards'
@@ -42,6 +46,10 @@ export const Box: Store = {
{
series: '3090',
url: 'https://www.box.co.uk/rtx-3090-graphics-cards'
},
{
series: '3060ti',
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards'
}
]
},
+487
View File
@@ -0,0 +1,487 @@
import {Store} from './store';
export const CanadaComputers: Store = {
labels: {
inStock: {
container: 'div[class="pi-prod-availability"]',
text: ['Online In Stock']
},
outOfStock: {
container: 'div[class="pi-prod-availability"]',
text: ['Not Available Online']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181348&language=en'
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183101&language=en'
},
{
brand: 'evga',
model: 'xc3 black',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183500&language=en'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183099&language=en'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3070',
url:
'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',
model: 'dual oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183636&language=en'
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183637&language=en'
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184168&language=en'
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184167&language=en'
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183561&language=en'
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183208&language=en'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183560&language=en'
},
{
brand: 'asus',
model: 'gaming oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183638&language=en'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183498&language=en'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183209&language=en'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183100&language=en'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183499&language=en'
},
{
brand: 'asus',
model: 'gaming',
series: '3070',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184743&language=en'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181376&language=en'
},
{
brand: 'asus',
model: 'strix',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181842&language=en'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181348&language=en'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url:
'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',
model: 'xc3 ultra',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181375&language=en'
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181420&language=en'
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184837&language=en'
},
{
brand: 'asus',
model: 'gaming oc',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181415&language=en'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url:
'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',
model: 'ventus 3x',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181347&language=en'
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=182754&language=en'
},
{
brand: 'evga',
model: 'xc3 black',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181797&language=en'
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=182755&language=en'
},
{
brand: 'gigabyte',
model: 'aorus xtreme',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183098&language=en'
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183510&language=en'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184166&language=en'
},
{
brand: 'evga',
model: 'xc3',
series: '3080',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181798&language=en'
},
{
brand: 'asus',
model: 'strix oc',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181841&language=en'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181854&language=en'
},
{
brand: 'asus',
model: 'gaming oc',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181413&language=en'
},
{
brand: 'zotac',
model: 'trinity',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181419&language=en'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181351&language=en'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3090',
url:
'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',
model: 'ventus 3x',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181349&language=en'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181853&language=en'
},
{
brand: 'gigabyte',
model: 'aorus xtreme',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=183096&language=en'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3090',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=181352&language=en'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185086&language=en'
},
{
brand: 'asus',
model: 'tuf',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184759&language=en'
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185087&language=en'
},
{
brand: 'asus',
model: 'dual',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184760&language=en'
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185751&language=en'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185752&language=en'
},
{
brand: 'asus',
model: 'strix',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=184431&language=en'
},
{
brand: 'evga',
model: 'xc gaming',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185988&language=en'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185987&language=en'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185408&language=en'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185407&language=en'
},
{
brand: 'gigabyte',
model: 'gaming oc pro',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185406&language=en'
},
{
brand: 'gigabyte',
model: 'aorus',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185405&language=en'
},
{
brand: 'asus',
model: 'ko',
series: '3060ti',
url:
'https://www.canadacomputers.com/product_info.php?cPath=43_557_559&item_id=185168&language=en'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183432&language=en'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183431&language=en'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183430&language=en'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.canadacomputers.com/product_info.php?cPath=4_64&item_id=183427&language=en'
}
],
name: 'canadacomputers',
waitUntil: 'domcontentloaded'
};
+42
View File
@@ -338,6 +338,48 @@ export const Caseking: Store = {
series: 'ryzen5950',
url:
'https://www.caseking.de/amd-ryzen-9-5950x-3-4-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-205.html'
},
{
brand: 'sapphire',
model: 'nitro oc se',
series: 'rx6800xt',
url:
'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-16g-16384-mb-gddr6-gcsp-215.html'
},
{
brand: 'sapphire',
model: 'nitro oc',
series: 'rx6800xt',
url:
'https://www.caseking.de/sapphire-nitro-radeon-rx-6800-xt-oc-se-16g-16384-mb-gddr6-gcsp-214.html'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: 'rx6800xt',
url:
'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-gaming-oc-16g-16384-mb-gddr6-gcgb-356.html'
},
{
brand: 'gigabyte',
model: 'gaming',
series: 'rx6800xt',
url:
'https://www.caseking.de/gigabyte-radeon-rx-6800-xt-16g-16384-mb-gddr6-gcgb-357.html'
},
{
brand: 'asus',
model: 'strix lc',
series: 'rx6800xt',
url:
'https://www.caseking.de/asus-radeon-rx-6800-xt-rog-strix-lc-o16g-16384-mb-gddr6-gcas-416.html'
},
{
brand: 'asus',
model: 'tuf',
series: 'rx6800xt',
url:
'https://www.caseking.de/asus-radeon-rx-6800-xt-tuf-o16g-16384-mb-gddr6-gcas-417.html'
}
],
name: 'caseking'
+44
View File
@@ -2,6 +2,7 @@ import {Store} from './store';
import {getProductLinksBuilder} from './helpers/card';
export const Ccl: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
inStock: {
container: '#pnlAddToBasket',
@@ -23,6 +24,34 @@ export const Ccl: Store = {
series: 'test:series',
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/'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
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/'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
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/'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
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/'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
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/'
}
],
linksBuilder: {
@@ -47,6 +76,21 @@ export const Ccl: Store = {
series: '3090',
url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3090-Graphics-Cards/'
},
{
series: 'rx6800',
url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-Graphics-Cards/'
},
{
series: 'rx6800xt',
url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/'
},
{
series: '3060ti',
url:
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/'
}
]
},
+40
View File
@@ -0,0 +1,40 @@
import {Store} from './store';
export const Comet: Store = {
labels: {
inStock: {
container: '.caption',
text: ['Aggiungi al carrello']
}
},
links: [
{
brand: 'sony',
cartUrl: 'https://www.comet.it/cart/insert/PSX01802A/online',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.comet.it/ps5/sony-playstation-5'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.comet.it/ps5/sony-playstation-5-digital-edition'
},
{
brand: 'microsoft',
cartUrl: 'https://www.comet.it/cart/insert/MIS01077A/online',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.comet.it/xbox-serie-x/xbox-series-x'
},
{
brand: 'microsoft',
cartUrl: 'https://www.comet.it/cart/insert/MIS010761/online',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.comet.it/xbox-serie-x/xbox-series-s'
}
],
name: 'comet'
};
+18
View File
@@ -13,6 +13,10 @@ export const Computeruniverse: Store = {
maxPrice: {
container: '.product-price',
euroFormat: true
},
outOfStock: {
container: '.availability',
text: ['nicht verfügbar']
}
},
links: [
@@ -552,6 +556,20 @@ export const Computeruniverse: Store = {
series: 'ryzen5950',
url:
'https://www.computeruniverse.net/de/amd-ryzen-9-5950x-box-ohne-kuehler'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.computeruniverse.net/de/sony-playstation-5-weiss-schwarz-825gb-ssd'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.computeruniverse.net/de/sony-playstation-5-digital-edition-weiss-schwarz-825gb-ssd'
}
],
name: 'computeruniverse'
+74
View File
@@ -6,6 +6,10 @@ export const Coolmod: Store = {
container: '.product-availability',
text: ['Envío']
},
maxPrice: {
container: '.text-price-total',
euroFormat: true
},
outOfStock: {
container: '.product-availability',
text: ['Sin Stock']
@@ -214,6 +218,76 @@ export const Coolmod: Store = {
series: 'ryzen5950',
url:
'https://www.coolmod.com/amd-ryzen-9-5950x-49ghz-socket-am4-boxed-procesador-precio'
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url:
'https://www.coolmod.com/asus-dual-geforce-rtx-3070-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3070',
url:
'https://www.coolmod.com/msi-geforce-rtx-3070-gaming-x-trio-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'msi',
model: 'ventus 2x',
series: '3070',
url:
'https://www.coolmod.com/msi-geforce-rtx-3070-ventus-2x-oc-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'evga',
model: 'xc3',
series: '3070',
url:
'https://www.coolmod.com/evga-geforce-rtx-3070-xc3-black-gaming-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'asus',
model: 'strix',
series: '3070',
url:
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3070-gaming-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3070',
url:
'https://www.coolmod.com/gigabyte-geforce-rtx-3070-eagle-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3070',
url:
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3070-master-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3070',
url:
'https://www.coolmod.com/pny-geforce-rtx-3070-xlr8-gaming-epic-x-rgb-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3070-twin-edge-8gb-gddr6-tarjeta-grafica-precio'
},
{
brand: 'kfa2',
model: 'sg oc',
series: '3070',
url:
'https://www.coolmod.com/kfa2-geforce-rtx-3070-sg-1-click-oc-8gb-gddr6-tarjeta-grafica-precio'
}
],
name: 'coolmod'
+38
View File
@@ -0,0 +1,38 @@
import {Store} from './store';
export const Corsair: Store = {
labels: {
inStock: {
container: '.add_to_cart_form',
text: ['add to cart']
},
maxPrice: {
container: '.product-price',
euroFormat: false
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020181-NA'
},
{
brand: 'corsair',
model: '750 platinum',
series: 'sf',
url:
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020186-NA'
},
{
brand: 'corsair',
model: '600 platinum',
series: 'sf',
url:
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020182-NA'
}
],
name: 'corsair'
};
+43
View File
@@ -23,6 +23,34 @@ export const Currys: Store = {
series: 'test:series',
url:
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/graphics-cards/msi-geforce-rtx-2060-8-gb-super-ventus-gp-oc-graphics-card-10196803-pdt.html'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-5-5600x-processor-10216691-pdt.html'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-7-5800x-processor-10216690-pdt.html'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5900x-processor-10216689-pdt.html'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5950x-processor-10216688-pdt.html'
}
],
linksBuilder: {
@@ -33,6 +61,16 @@ export const Currys: Store = {
urlSelector: 'a[href]'
}),
urls: [
{
series: '3060ti',
url:
'https://www.currys.co.uk/gbuk/rtx-3060-ti/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313952/xx-criteria.html'
},
{
series: '3070',
url:
'https://www.currys.co.uk/gbuk/rtx-3070/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313849/xx-criteria.html'
},
{
series: '3080',
url:
@@ -42,6 +80,11 @@ export const Currys: Store = {
series: '3090',
url:
'https://www.currys.co.uk/gbuk/rtx-3090/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313725/xx-criteria.html'
},
{
series: '3060ti',
url:
'https://www.currys.co.uk/gbuk/rtx-3060-ti/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313952/xx-criteria.html'
}
]
},
+48
View File
@@ -36,6 +36,34 @@ export const Ebuyer: Store = {
series: 'sonyps5de',
url:
'https://www.ebuyer.com/1125332-sony-playstation-5-digital-edition-cfi-1015b'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.ebuyer.com/1126988-amd-ryzen-5-5600x-am4-processor-100-100000065box'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.ebuyer.com/1126987-amd-ryzen-7-5800x-am4-processor-100-100000063wof'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.ebuyer.com/1126986-amd-ryzen-9-5900x-am4-processor-100-100000061wof'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.ebuyer.com/1126985-amd-ryzen-9-5950x-am4-processor-100-100000059wof'
}
],
linksBuilder: {
@@ -46,6 +74,21 @@ export const Ebuyer: Store = {
urlSelector: 'a[href]'
}),
urls: [
{
series: 'rx6800',
url:
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800'
},
{
series: 'rx6800xt',
url:
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800-XT'
},
{
series: '3060ti',
url:
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti'
},
{
series: '3070',
url:
@@ -60,6 +103,11 @@ export const Ebuyer: Store = {
series: '3090',
url:
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3090'
},
{
series: '3060ti',
url:
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti'
}
]
},
+69
View File
@@ -0,0 +1,69 @@
import {Store} from './store';
export const Elcorteingles: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
// Captcha: {
// container: 'body',
// text: [
// 'geben sie die unten angezeigten zeichen ein',
// 'geben sie die zeichen unten ein'
// ]
// },
inStock: [
{
container: '.product_detail-purchase.mb-2.c12 .js-add-cart-text',
text: ['a la cesta']
}
],
maxPrice: {
container: '.product_detail-buy-price-container .price._big',
euroFormat: true
},
outOfStock: [
{
container:
'.c12.mt-2.product_detail-add_to_cart.one_click_enabled .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
text: ['Agotado']
},
{
container:
'.product_detail-purchase.mb-2.c12 .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
text: ['No disponible']
}
]
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.elcorteingles.es/moda/A26324406/'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.elcorteingles.es/videojuegos/A37046604'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.elcorteingles.es/videojuegos/A37046605'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.elcorteingles.es/videojuegos/A37047078'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.elcorteingles.es/videojuegos/A37047080'
}
],
name: 'elcorteingles'
};
+77
View File
@@ -0,0 +1,77 @@
import {Store} from './store';
export const Eprice: Store = {
labels: {
inStock: {
container: '.form_aggiungi_articolo',
text: ['AGGIUNGI AL CARRELLO']
},
maxPrice: {
container: '#PrezzoClasic span[class*="big"]',
euroFormat: true
}
},
links: [
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url: 'https://www.eprice.it/schede-video-MSI/d-14039974'
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url: 'https://www.eprice.it/schede-video-ASUS/d-14042082'
},
{
brand: 'asus',
model: 'strix',
series: '3070',
url: 'https://www.eprice.it/schede-video-ASUS/d-14039878'
},
{
brand: 'asus',
model: 'tuf',
series: '3070',
url: 'https://www.eprice.it/schede-video-ASUS/d-14039876'
},
{
brand: 'msi',
model: 'gaming',
series: '3070',
url: 'https://www.eprice.it/schede-video-MSI/d-14039972'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url: 'https://www.eprice.it/schede-video-MSI/d-14039974'
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3070',
url: 'https://www.eprice.it/schede-video-MSI/d-14039973'
},
{
brand: 'zotac',
model: 'gaming',
series: '3070',
url: 'https://www.eprice.it/schede-video-ZOTAC/d-13979806'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.eprice.it/playstation-5-SONY/d-13981612'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.eprice.it/playstation-5-SONY/d-13981613'
}
],
name: 'eprice'
};
+60
View File
@@ -0,0 +1,60 @@
import {Store} from './store';
export const EuronicsDE: Store = {
labels: {
inStock: {
container: '.buy-btn--cart-text',
text: ['Warenkorb']
},
maxPrice: {
container: '.price--content',
euroFormat: true
},
outOfStock: {
container:
'.product--buybox .alert.is--error.is--rounded .alert--content',
text: [
'Artikel steht derzeit nicht zur Verfügung',
'Morgen im Laufe des Morgens und nur online unter'
]
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.euronics.de/telefon-und-navigation/festnetz/schnurlose-telefone/kx-tg6721gb-schnurlostelefon-mit-anrufbeantworter-schwarz-4051168442801'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url:
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/xbox-series-x/spielekonsole/xbox-series-s-512gb-konsole-4061856838076'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url:
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/xbox-series-x/spielekonsole/xbox-series-x-1tb-konsole-4061856838045'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-digital-edition-konsole-4061856837833'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-konsole-4061856837826'
}
],
name: 'euronics-de'
};
+41
View File
@@ -0,0 +1,41 @@
import {Store} from './store';
export const Euronics: Store = {
labels: {
inStock: {
container: '.purchaseButtonsWidth',
text: ['Aggiungi al carrello']
}
},
links: [
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.euronics.it/console/sony-computer/playstation-5/eProd202008906'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.euronics.it/console/sony-computer/playstation-5-digital-edition/eProd202008907'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url:
'https://www.euronics.it/console/microsoft/xbox-series-x-1tb-it-italy-sxto/eProd202008981'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url:
'https://www.euronics.it/console/microsoft/xbox-series-s-512gb-it-italy-ltsn/eProd202008982'
}
],
name: 'euronics'
};
+56
View File
@@ -0,0 +1,56 @@
import {Store} from './store';
export const Expert: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
inStock: [
{
container: 'span.widget-ArticleStatus-buttonText',
text: ['In den Warenkorb']
}
],
maxPrice: {
container: '.widget-Container-subContent .widget-ArticlePrice-price',
euroFormat: false
},
outOfStock: [
{
container:
'span[style="font-size: 14pt;"] > span[style="color: #ff5e19;"]',
text: ['Das von Ihnen ausgewählte Produkt ist ausverkauft']
},
{
container: 'span.widget-ArticleStatus-statusPointText',
text: ['Artikel ist derzeit nicht verfügbar']
}
]
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.expert.de/shop/11364114744-ps4-pro-1tb-jet-black.html'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.expert.de/shop/11364129744-playstation-r-5.html'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.expert.de/shop/11364133744-playstation-r-5-digital-edition.html'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.expert.de/shop/11350018530-xbox-series-s.html'
}
],
name: 'expert'
};
+40
View File
@@ -0,0 +1,40 @@
import {Store} from './store';
export const GamestopDE: Store = {
labels: {
inStock: [
{
container: '#btnAddToCart',
text: ['In den Warenkorb']
},
{
container: '#btnAddToCart',
text: ['Vorbestellen']
}
],
maxPrice: {
container: '.buySection .prodPriceCont',
euroFormat: true
},
outOfStock: {
container: '.megaButton',
text: ['Nicht verfügbar']
}
},
links: [
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.gamestop.de/PS5/Games/58665'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.gamestop.de/PS5/Games/60315'
}
],
name: 'gamestop-de',
successStatusCodes: [[0, 399], 404]
};
+4 -7
View File
@@ -24,13 +24,10 @@ export function getProductLinksBuilder(options: LinksBuilderOptions) {
for (let i = 0; i < productElements.length; i++) {
const productElement = productElements.eq(i);
const titleElement = productElement.find(options.titleSelector).first();
let title: string;
if (options.titleAttribute) {
title = titleElement.attr()?.[options.titleAttribute];
} else {
title = titleElement.text()?.replace(/\n/g, ' ').trim();
}
const title = options.titleAttribute
? titleElement.attr()?.[options.titleAttribute]
: titleElement.text()?.replace(/\n/g, ' ').trim();
if (!title) {
continue;
@@ -62,7 +59,7 @@ export function getProductLinksBuilder(options: LinksBuilderOptions) {
url
});
} else {
logger.error(`Failed to parse card: ${title}`);
logger.error(`Failed to parse card: ${title}`, {url});
}
}
+10 -7
View File
@@ -73,7 +73,7 @@ export class NvidiaCart {
cartUrl = await this.addToCartAndGetLocationRedirect(productId);
break;
} catch (error) {
} catch (error: unknown) {
logger.error(
`✖ [nvidia] ${name} could not automatically add to cart, attempt ${
i + 1
@@ -82,7 +82,7 @@ export class NvidiaCart {
);
logger.debug(error);
lastError = error;
lastError = error as Error;
}
}
/* eslint-enable no-await-in-loop */
@@ -96,11 +96,11 @@ export class NvidiaCart {
logger.info(cartUrl);
await open(cartUrl);
} catch (error) {
} catch (error: unknown) {
logger.error(
`✖ [nvidia] ${name} could not automatically add to cart, opening page`
`✖ [nvidia] ${name} could not automatically add to cart, opening page`,
error
);
logger.debug(error);
cartUrl = this.fallbackCartUrl;
@@ -142,8 +142,11 @@ export class NvidiaCart {
this.sessionToken = result.session_token;
logger.debug(` [nvidia] session_token=${result.session_token}`);
} catch (error) {
const message: string = typeof error === 'object' ? error.message : error;
} catch (error: unknown) {
const message: string =
typeof error === 'object'
? (error as Error).message
: (error as string);
logger.error(`✖ [nvidia] ${message}`);
}
}
+61 -5
View File
@@ -1,39 +1,57 @@
import {config, defaultStoreData} from '../../config';
import {AMD} from './amd';
import {AMDDe} from './amd-de';
import {Adorama} from './adorama';
import {Alternate} from './alternate';
import {AlternateNL} from './alternate-nl';
import {Amazon} from './amazon';
import {AmazonCa} from './amazon-ca';
import {AmazonDe} from './amazon-de';
import {AmazonDeWarehouse} from './amazon-de-warehouse';
import {AmazonEs} from './amazon-es';
import {AmazonFr} from './amazon-fr';
import {AmazonIt} from './amazon-it';
import {AmazonNl} from './amazon-nl';
import {AmazonUk} from './amazon-uk';
import {Amd} from './amd';
import {AmdCa} from './amd-ca';
import {AmdDe} from './amd-de';
import {AmdIt} from './amd-it';
import {AntOnline} from './antonline';
import {Argos} from './argos';
import {Aria} from './aria';
import {Arlt} from './arlt';
import {Asus} from './asus';
import {AsusDe} from './asus-de';
import {Awd} from './awd';
import {Azerty} from './azerty';
import {BAndH} from './bandh';
import {BestBuy} from './bestbuy';
import {BestBuyCa} from './bestbuy-ca';
import {Box} from './box';
import {CanadaComputers} from './canadacomputers';
import {Caseking} from './caseking';
import {Ccl} from './ccl';
import {Comet} from './comet';
import {Computeruniverse} from './computeruniverse';
import {Coolblue} from './coolblue';
import {Coolmod} from './coolmod';
import {Corsair} from './corsair';
import {Currys} from './currys';
import {Cyberport} from './cyberport';
import {Ebuyer} from './ebuyer';
import {Elcorteingles} from './elcorteingles';
import {Eprice} from './eprice';
import {Euronics} from './euronics';
import {EuronicsDE} from './euronics-de';
import {Evga} from './evga';
import {EvgaEu} from './evga-eu';
import {Expert} from './expert';
import {Galaxus} from './galaxus';
import {Game} from './game';
import {Gamestop} from './gamestop';
import {GamestopDE} from './gamestop-de';
import {Kabum} from './kabum';
import {Mediamarkt} from './mediamarkt';
import {Medimax} from './medimax';
import {MemoryExpress} from './memoryexpress';
import {MicroCenter} from './microcenter';
import {Mindfactory} from './mindfactory';
@@ -44,17 +62,26 @@ import {Novatech} from './novatech';
import {Nvidia} from './nvidia';
import {NvidiaApi} from './nvidia-api';
import {OfficeDepot} from './officedepot';
import {Otto} from './otto';
import {Overclockers} from './overclockers';
import {PCComponentes} from './pccomponentes';
import {PlayStation} from './playstation';
import {Pny} from './pny';
import {ProshopDE} from './proshop-de';
import {ProshopDK} from './proshop-dk';
import {Saturn} from './saturn';
import {Scan} from './scan';
import {SmythsToys} from './smythstoys';
import {Spielegrotte} from './spielegrotte';
import {Store} from './store';
import {Target} from './target';
import {TopAchat} from './topachat';
import {Unieuro} from './unieuro';
import {Very} from './very';
import {VsGamers} from './vsgamers';
import {Walmart} from './walmart';
import {Wipoid} from './wipoid';
import {Xbox} from './xbox';
import {Zotac} from './zotac';
import {logger} from '../../logger';
@@ -65,35 +92,53 @@ export const storeList = new Map([
[Amazon.name, Amazon],
[AmazonCa.name, AmazonCa],
[AmazonDe.name, AmazonDe],
[AmazonDeWarehouse.name, AmazonDeWarehouse],
[AmazonEs.name, AmazonEs],
[AmazonFr.name, AmazonFr],
[AmazonNl.name, AmazonNl],
[AmazonUk.name, AmazonUk],
[AMD.name, AMD],
[AMDDe.name, AMDDe],
[AmazonIt.name, AmazonIt],
[Amd.name, Amd],
[AmdCa.name, AmdCa],
[AmdDe.name, AmdDe],
[AmdIt.name, AmdIt],
[AntOnline.name, AntOnline],
[Argos.name, Argos],
[Aria.name, Aria],
[Arlt.name, Arlt],
[Asus.name, Asus],
[AsusDe.name, AsusDe],
[Awd.name, Awd],
[Azerty.name, Azerty],
[BAndH.name, BAndH],
[BestBuy.name, BestBuy],
[BestBuyCa.name, BestBuyCa],
[Box.name, Box],
[Caseking.name, Caseking],
[CanadaComputers.name, CanadaComputers],
[Ccl.name, Ccl],
[Comet.name, Comet],
[Computeruniverse.name, Computeruniverse],
[Coolblue.name, Coolblue],
[Coolmod.name, Coolmod],
[Corsair.name, Corsair],
[Currys.name, Currys],
[Cyberport.name, Cyberport],
[Ebuyer.name, Ebuyer],
[Elcorteingles.name, Elcorteingles],
[Eprice.name, Eprice],
[Euronics.name, Euronics],
[EuronicsDE.name, EuronicsDE],
[Evga.name, Evga],
[EvgaEu.name, EvgaEu],
[Expert.name, Expert],
[Galaxus.name, Galaxus],
[Game.name, Game],
[Gamestop.name, Gamestop],
[GamestopDE.name, GamestopDE],
[Kabum.name, Kabum],
[Mediamarkt.name, Mediamarkt],
[Medimax.name, Medimax],
[MemoryExpress.name, MemoryExpress],
[MicroCenter.name, MicroCenter],
[Mindfactory.name, Mindfactory],
@@ -104,16 +149,25 @@ export const storeList = new Map([
[Nvidia.name, Nvidia],
[NvidiaApi.name, NvidiaApi],
[OfficeDepot.name, OfficeDepot],
[Otto.name, Otto],
[Overclockers.name, Overclockers],
[PCComponentes.name, PCComponentes],
[PlayStation.name, PlayStation],
[Pny.name, Pny],
[ProshopDE.name, ProshopDE],
[ProshopDK.name, ProshopDK],
[Saturn.name, Saturn],
[Scan.name, Scan],
[SmythsToys.name, SmythsToys],
[Spielegrotte.name, Spielegrotte],
[Target.name, Target],
[TopAchat.name, TopAchat],
[Unieuro.name, Unieuro],
[Very.name, Very],
[VsGamers.name, VsGamers],
[Walmart.name, Walmart],
[Wipoid.name, Wipoid],
[Xbox.name, Xbox],
[Zotac.name, Zotac]
]);
@@ -178,7 +232,8 @@ function warnIfStoreDeprecated(store: Store) {
switch (store.name) {
case 'nvidia':
case 'nvidia-api':
logger.warn(`${store.name} is deprecated in favor of bestbuy`);
if (config.store.country === 'usa')
logger.warn(`${store.name} is deprecated in favor of bestbuy`);
break;
case 'evga':
logger.warn(
@@ -200,6 +255,7 @@ export function updateStores() {
stores.set(storeData.name, store);
store.minPageSleep = storeData.minPageSleep;
store.maxPageSleep = storeData.maxPageSleep;
store.proxyList = storeData.proxyList;
} else {
logger.warn(`No store named ${storeData.name}, skipping.`);
}
+32 -3
View File
@@ -1,7 +1,12 @@
import {Store} from './store';
export const Mediamarkt: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'p',
text: ['Das ging uns leider zu schnell.']
},
maxPrice: {
container: 'span[font-family="price"]',
euroFormat: false
@@ -9,11 +14,11 @@ export const Mediamarkt: Store = {
outOfStock: [
{
container: '#root',
text: ['dieser artikel ist aktuell nicht verfügbar.']
text: ['Dieser artikel ist aktuell nicht verfügbar.']
},
{
container: '#root',
text: ['leider keine Lieferung möglich']
text: ['Leider keine Lieferung möglich']
}
]
},
@@ -22,7 +27,19 @@ export const Mediamarkt: Store = {
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.mediamarkt.de/de/product/-2592355.html'
url: 'https://www.mediamarkt.de/de/product/-2641856.html'
},
{
brand: 'asus',
model: 'dual',
series: '3060ti',
url: 'https://www.mediamarkt.de/de/product/-2701239.html'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url: 'https://www.mediamarkt.de/de/product/-2704436.html'
},
{
brand: 'asus',
@@ -245,6 +262,18 @@ export const Mediamarkt: Store = {
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.mediamarkt.de/de/product/-2661939.html'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.mediamarkt.de/de/product/-2677360.html'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.mediamarkt.de/de/product/-2677359.html'
}
],
name: 'mediamarkt'
+46
View File
@@ -0,0 +1,46 @@
import {Store} from './store';
export const Medimax: Store = {
labels: {
inStock: [
{
container: '.product-cart-add-to-cart-button',
text: ['In den Warenkorb']
},
{
container: '.stock-message',
text: ['Lieferung in']
}
],
maxPrice: {
container: '.priceOfProduct',
euroFormat: true
},
outOfStock: {
container: '.content .large',
text: ['Ihr MEDIMAX Team']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.medimax.de/p/1311642/drivesmart-51-lmt-d-ce'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.medimax.de/p/1315336/play-station-5-825gb-ssd'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.medimax.de/p/1315337/play-station-5-digital-edition-825gb-ssd'
}
],
name: 'medimax'
};
+169 -1
View File
@@ -10,7 +10,7 @@ export const MemoryExpress: Store = {
outOfStock: {
container:
'.c-capr-inventory-selector__details-online .c-capr-inventory-store__availability',
text: ['Out of Stock']
text: ['Out of Stock', 'Backorder']
}
},
links: [
@@ -20,6 +20,84 @@ export const MemoryExpress: Store = {
series: 'test:series',
url: 'https://www.memoryexpress.com/Products/MX79473'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114969'
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114970'
},
{
brand: 'asus',
model: 'dual',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114818'
},
{
brand: 'asus',
model: 'strix',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114786'
},
{
brand: 'asus',
model: 'tuf',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114819'
},
{
brand: 'gigabyte',
model: 'aorus',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114923'
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114927'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114926'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00115013'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114925'
},
{
brand: 'gigabyte',
model: 'gaming oc pro',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114924'
},
{
brand: 'evga',
model: 'xc gaming',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00115014'
},
{
brand: 'asus',
model: 'ko',
series: '3060ti',
url: 'https://www.memoryexpress.com/Products/MX00114888'
},
{
brand: 'amd',
model: '5950x',
@@ -43,6 +121,96 @@ export const MemoryExpress: Store = {
model: '5600x',
series: 'ryzen5600',
url: 'https://www.memoryexpress.com/Products/MX00114455'
},
{
brand: 'xfx',
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.memoryexpress.com/Products/MX00114996'
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114687'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00113955'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00113954'
},
{
brand: 'evga',
model: 'xc3 black',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114094'
},
{
brand: 'evga',
model: 'xc3',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114095'
},
{
brand: 'asus',
model: 'gaming oc',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114003'
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114313'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00113972'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00113956'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00113957'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114024'
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114312'
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114092'
},
{
brand: 'gigabyte',
model: 'aorus xtreme',
series: '3080',
url: 'https://www.memoryexpress.com/Products/MX00114404'
}
],
name: 'memoryexpress',
+78
View File
@@ -72,6 +72,24 @@ for (const microCenterLocation of microCenterLocations) {
series: '3080',
url: `https://www.microcenter.com/product/628303/asus-geforce-rtx-3080-tuf-gaming-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url: `https://www.microcenter.com/product/628686/asus-geforce-rtx-3080-strix-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url: `https://www.microcenter.com/product/630686/asus-geforce-rtx-3070-rog-strix-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'asus',
model: 'tuf oc',
series: '3070',
url: `https://www.microcenter.com/product/630684/asus-geforce-rtx-3070-tuf-overclocked-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'msi',
model: 'gaming x trio',
@@ -84,12 +102,72 @@ for (const microCenterLocation of microCenterLocations) {
series: '3080',
url: `https://www.microcenter.com/product/628340/evga-geforce-rtx-3080-xc3-black-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'evga',
model: 'xc3 black',
series: '3070',
url: `https://www.microcenter.com/product/630579/evga-geforce-rtx-3070-xc3-black-gaming-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url: `https://www.microcenter.com/product/628607/zotac-geforce-rtx-3080-trinity-overclocked-triple-fan-10gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3060ti',
url: `https://www.microcenter.com/product/631716/nvidia-geforce-rtx-3060ti-ti-founders-edition-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3060ti',
url: `https://www.microcenter.com/product/631531/msi-geforce-rtx-3060ti-ti-gaming-x-trio-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3060ti',
url: `https://www.microcenter.com/product/631532/msi-geforce-rtx-3060ti-ti-ventus-2x-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3060ti',
url: `https://www.microcenter.com/product/631926/evga-geforce-rtx-3060ti-ti-ftw-ultra-gaming-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'asus',
model: 'dual oc',
series: '3060ti',
url: `https://www.microcenter.com/product/631473/asus-geforce-rtx-3060ti-ti-dual-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'asus',
model: 'tuf',
series: '3060ti',
url: `https://www.microcenter.com/product/631469/asus-geforce-rtx-3060ti-ti-tuf-gaming-overclocked-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'asus',
model: 'strix oc',
series: '3060ti',
url: `https://www.microcenter.com/product/631283/asus-geforce-rtx-3060ti-ti-rog-strix-overclocked-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3060ti',
url: `https://www.microcenter.com/product/631742/gigabyte-geforce-rtx-3060ti-ti-gaming-overclocked-triple-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3060ti',
url: `https://www.microcenter.com/product/631744/gigabyte-geforce-rtx-3060ti-ti-eagle-dual-fan-8gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`
},
{
brand: 'amd',
model: '5600x',
+288
View File
@@ -417,6 +417,126 @@ export const NeweggCa: Store = {
url:
'https://www.newegg.ca/evga-geforce-rtx-3070-08g-p5-3753-kr/p/N82E16814487529'
},
{
brand: 'asus',
itemNumber: '14-126-471',
model: 'tuf',
series: '3060ti',
url:
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-tuf-rtx3060ti-o8g-gaming/p/N82E16814126471'
},
{
brand: 'gigabyte',
itemNumber: '14-932-377',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306tgaming-oc-8gd/p/N82E16814932377'
},
{
brand: 'gigabyte',
itemNumber: '14-932-375',
model: 'aorus',
series: '3060ti',
url:
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306taorus-m-8gd/p/N82E16814932375'
},
{
brand: 'asus',
itemNumber: '14-126-468',
model: 'dual',
series: '3060ti',
url:
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-dual-rtx3060ti-o8g/p/N82E16814126468'
},
{
brand: 'asus',
itemNumber: '14-126-470',
model: 'strix',
series: '3060ti',
url:
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-rog-strix-rtx3060ti-o8g-gaming/p/N82E16814126470'
},
{
brand: 'evga',
itemNumber: '14-487-535',
model: 'xc gaming',
series: '3060ti',
url:
'https://www.newegg.ca/evga-geforce-rtx-3060-ti-08g-p5-3663-kr/p/N82E16814487535'
},
{
brand: 'gigabyte',
itemNumber: '14-932-376',
model: 'gaming oc pro',
series: '3060ti',
url:
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306tgamingoc-pro-8gd/p/N82E16814932376'
},
{
brand: 'zotac',
itemNumber: '14-500-507',
model: 'gaming',
series: '3060ti',
url:
'https://www.newegg.ca/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507'
},
{
brand: 'evga',
itemNumber: '14-487-537',
model: 'ftw3 ultra',
series: '3060ti',
url:
'https://www.newegg.ca/evga-geforce-rtx-3060-ti-08g-p5-3667-kr/p/N82E16814487537'
},
{
brand: 'msi',
itemNumber: '14-137-612',
model: 'ventus 2x',
series: '3060ti',
url:
'https://www.newegg.ca/msi-geforce-rtx-3060-ti-rtx-3060-ti-ventus-2x-oc/p/N82E16814137612'
},
{
brand: 'asus',
itemNumber: '14-126-474',
model: 'ko',
series: '3060ti',
url:
'https://www.newegg.ca/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474'
},
{
brand: 'msi',
itemNumber: '14-137-611',
model: 'gaming x trio',
series: '3060ti',
url:
'https://www.newegg.ca/msi-geforce-rtx-3060-ti-rtx-3060-ti-gaming-x-trio/p/N82E16814137611'
},
{
brand: 'gigabyte',
itemNumber: '14-932-378',
model: 'eagle oc',
series: '3060ti',
url:
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-oc-8gd/p/N82E16814932378'
},
{
brand: 'gigabyte',
itemNumber: '14-932-379',
model: 'eagle',
series: '3060ti',
url:
'https://www.newegg.ca/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-8gd/p/N82E16814932379'
},
{
brand: 'zotac',
itemNumber: '14-500-506',
model: 'twin edge',
series: '3060ti',
url:
'https://www.newegg.ca/zotac-geforce-rtx-3060-ti-zt-a30610e-10m/p/N82E16814500506'
},
{
brand: 'amd',
itemNumber: '19-113-663',
@@ -444,6 +564,174 @@ export const NeweggCa: Store = {
model: '5600x',
series: 'ryzen5600',
url: 'https://www.newegg.ca/amd-ryzen-5-5600x/p/N82E16819113666'
},
{
brand: 'msi',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.ca/msi-radeon-rx-6800-xt-rx-6800-xt-16g/p/N82E16814137607'
},
{
brand: 'msi',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.ca/msi-radeon-rx-6800-rx-6800-16g/p/N82E16814137608'
},
{
brand: 'asus',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.ca/asus-radeon-rx-6800-xt-rx6800xt-16g/p/N82E16814126472'
},
{
brand: 'asus',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.ca/asus-radeon-rx-6800-rx6800-16g/p/N82E16814126473'
},
{
brand: 'asrock',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.ca/asrock-radeon-rx-6800-xt-rx-6800-xt-16g/p/N82E16814930045'
},
{
brand: 'asrock',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.ca/asrock-radeon-rx-6800-rx-6800-16g/p/N82E16814930046'
},
{
brand: 'gigabyte',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.ca/gigabyte-radeon-rx-6800-xt-gv-r68xt-16gc-b/p/N82E16814932373'
},
{
brand: 'gigabyte',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.ca/gigabyte-radeon-rx-6800-gv-r68-16gc-b/p/N82E16814932374'
},
{
brand: 'sapphire',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.ca/sapphire-radeon-rx-6800-xt-21304-01-20g/p/N82E16814202388'
},
{
brand: 'sapphire',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.ca/sapphire-radeon-rx-6800-21305-01-20g/p/N82E16814202389'
},
{
brand: 'gigabyte',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.com/gigabyte-radeon-rx-6800-xt-gv-r68xt-16gc-b/p/N82E16814932373'
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6800',
url:
'https://www.newegg.ca/sapphire-radeon-rx-6800-11305-01-20g/p/N82E16814202392'
},
{
brand: 'asrock',
model: 'phantom gaming',
series: 'rx6800xt',
url:
'https://www.newegg.ca/asrock-radeon-rx-6800-xt-rx6800xt-pgd-16go/p/N82E16814930049'
},
{
brand: 'asus',
model: 'tuf',
series: 'rx6800xt',
url:
'https://www.newegg.ca/asus-radeon-rx-6800-xt-tuf-rx6800xt-o16g-gaming/p/N82E16814126476'
},
{
brand: 'xfx',
model: 'merc',
series: 'rx6800xt',
url:
'https://www.newegg.ca/xfx-radeon-rx-6800-xt-rx-68xtacbd9/p/N82E16814150844'
},
{
brand: 'asus',
model: 'strix',
series: 'rx6800',
url:
'https://www.newegg.ca/asus-radeon-rx-6800-rog-strix-rx6800-o16g-gaming/p/N82E16814126477'
},
{
brand: 'asrock',
model: 'challenger',
series: 'rx6800',
url:
'https://www.newegg.ca/asrock-radeon-rx-6800-rx6800-clp-16go/p/N82E16814930047'
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6800xt',
url:
'https://www.newegg.ca/sapphire-radeon-rx-6800-xt-11304-01-20g/p/N82E16814202390'
},
{
brand: 'asus',
model: 'strix',
series: 'rx6800xt',
url:
'https://www.newegg.ca/asus-radeon-rx-6800-xt-rog-strix-lc-rx6800xt-o16g-gaming/p/N82E16814126475'
},
{
brand: 'powercolor',
model: 'red devil',
series: 'rx6800xt',
url:
'https://www.newegg.ca/powercolor-radeon-rx-6800-xt-axrx-6800xt-16gbd6-2dhce-oc/p/N82E16814131767'
},
{
brand: 'sapphire',
model: 'nitro+',
series: 'rx6800xt',
url:
'https://www.newegg.ca/sapphire-radeon-rx-6800-xt-11304-02-20g/p/N82E16814202391'
},
{
brand: 'asus',
model: 'tuf',
series: 'rx6800',
url:
'https://www.newegg.ca/asus-radeon-rx-6800-tuf-rx6800-o16g-gaming/p/N82E16814126478'
},
{
brand: 'asrock',
model: 'taichi',
series: 'rx6800xt',
url:
'https://www.newegg.ca/asrock-radeon-rx-6800-xt-rx6800xt-tcx-16go/p/N82E16814930050'
},
{
brand: 'asrock',
model: 'phantom gaming',
series: 'rx6800',
url:
'https://www.newegg.ca/asrock-radeon-rx-6800-rx6800-pgd-16go/p/N82E16814930048'
}
],
name: 'newegg-ca',
+581 -194
View File
@@ -8,12 +8,12 @@ export const Newegg: Store = {
text: ['are you a human?']
},
inStock: {
container: 'div#ProductBuy .btn-primary',
container: '#ProductBuy',
text: ['add to cart']
},
maxPrice: {
container: 'div#app div.product-price > ul > li.price-current > strong',
euroFormat: false
container:
'#app > div.page-content > div.page-section > div > div > div.row-side > div.product-buy-box > div:nth-child(3) > div.product-price > ul > li.price-current'
}
},
links: [
@@ -25,6 +25,226 @@ export const Newegg: Store = {
url:
'https://www.newegg.com/zotac-geforce-rtx-2060-zt-t20600k-10m/p/N82E16814500495'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137601',
itemNumber: '14-137-601',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-ventus-3x-oc/p/N82E16814137601'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137602',
itemNumber: '14-137-602',
model: 'ventus 2x oc',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-ventus-2x-oc/p/N82E16814137602'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137603',
itemNumber: '14-137-603',
model: 'gaming x trio',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-gaming-x-trio/p/N82E16814137603'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137605',
itemNumber: '14-137-605',
model: 'ventus 2x',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-gaming-x-trio/p/N82E16814137605'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932360',
itemNumber: '14-932-360',
model: 'vision oc',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070vision-oc-8gd/p/N82E16814932360'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126459',
itemNumber: '14-126-459',
model: 'dual oc',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-dual-rtx3070-o8g/p/N82E16814126459'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126458',
itemNumber: '14-126-458',
model: 'strix',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-rog-strix-rtx3070-o8g-gaming/p/N82E16814126458'
},
{
brand: 'zotac',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500501',
itemNumber: '14-500-501',
model: 'twin edge',
series: '3070',
url:
'https://www.newegg.com/zotac-geforce-rtx-3070-zt-a30700e-10p/p/N82E16814500501'
},
{
brand: 'zotac',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500505',
itemNumber: '14-500-505',
model: 'twin edge oc',
series: '3070',
url:
'https://www.newegg.com/zotac-geforce-rtx-3070-zt-a30700h-10p/p/N82E16814500505'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932342',
itemNumber: '14-932-342',
model: 'gaming oc',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070gaming-oc-8gd/p/N82E16814932342'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487532',
itemNumber: '14-487-532',
model: 'ftw3 ultra',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3767-kr/p/N82E16814487532'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487530',
itemNumber: '14-487-530',
model: 'xc3 ultra',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3755-kr/p/N82E16814487530'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487528',
itemNumber: '14-487-528',
model: 'xc3 black',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3751-kr/p/N82E16814487528'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932343',
itemNumber: '14-932-343',
model: 'eagle oc',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070eagle-oc-8gd/p/N82E16814932343'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932344',
itemNumber: '14-932-344',
model: 'eagle',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070eagle-8gd/p/N82E16814932344'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487529',
itemNumber: '14-487-529',
model: 'xc3',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3753-kr/p/N82E16814487529'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126460',
itemNumber: '14-126-460',
model: 'dual',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-dual-rtx3070-8g/p/N82E16814126460'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126466',
itemNumber: '14-126-466',
model: 'gaming',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-ko-rtx3070-o8g-gamin/p/N82E16814126466'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932359',
itemNumber: '14-932-359',
model: 'aorus master',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070aorus-m-8gd/p/N82E16814932359'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487531',
itemNumber: '14-487-531',
model: 'ftw3',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3765-kr/p/N82E16814487531'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126461',
itemNumber: '14-126-461',
model: 'tuf oc',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-tuf-rtx3070-o8g-gaming/p/N82E16814126461'
},
{
brand: 'pny',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814133811',
itemNumber: '14-133-811',
model: 'gaming',
series: '3070',
url:
'https://www.newegg.com/pny-geforce-rtx-3070-vcg30708tfxppb/p/N82E16814133811'
},
{
brand: 'asus',
cartUrl:
@@ -185,6 +405,16 @@ export const Newegg: Store = {
url:
'https://www.newegg.com/pny-geforce-rtx-3080-vcg308010tfxppb/p/N82E16814133809'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932337',
itemNumber: '14-932-337',
model: 'vision oc',
series: '3080',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080vision-oc-10gd/p/N82E16814932337'
},
{
brand: 'asus',
cartUrl:
@@ -315,196 +545,6 @@ export const Newegg: Store = {
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090eagle-oc-24gd/p/N82E16814932328'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137601',
itemNumber: '14-137-601',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-ventus-3x-oc/p/N82E16814137601'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137602',
itemNumber: '14-137-602',
model: 'ventus 2x oc',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-ventus-2x-oc/p/N82E16814137602'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137603',
itemNumber: '14-137-603',
model: 'gaming x trio',
series: '3070',
url:
'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-gaming-x-trio/p/N82E16814137603'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932360',
itemNumber: '14-932-360',
model: 'vision oc',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070vision-oc-8gd/p/N82E16814932360'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126459',
itemNumber: '14-126-459',
model: 'dual oc',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-dual-rtx3070-o8g/p/N82E16814126459'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126458',
itemNumber: '14-126-458',
model: 'strix',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-rog-strix-rtx3070-o8g-gaming/p/N82E16814126458'
},
{
brand: 'zotac',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500501',
itemNumber: '14-500-501',
model: 'twin edge',
series: '3070',
url:
'https://www.newegg.com/zotac-geforce-rtx-3070-zt-a30700e-10p/p/N82E16814500501'
},
{
brand: 'zotac',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500505',
itemNumber: '14-500-505',
model: 'twin edge oc',
series: '3070',
url:
'https://www.newegg.com/zotac-geforce-rtx-3070-zt-a30700h-10p/p/N82E16814500505'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932342',
itemNumber: '14-932-342',
model: 'gaming oc',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070gaming-oc-8gd/p/N82E16814932342'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487532',
itemNumber: '14-487-532',
model: 'ftw3 ultra',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3767-kr/p/N82E16814487532'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487530',
itemNumber: '14-487-530',
model: 'xc3 ultra',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3755-kr/p/N82E16814487530'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487528',
itemNumber: '14-487-528',
model: 'xc3 black',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3751-kr/p/N82E16814487528'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932343',
itemNumber: '14-932-343',
model: 'eagle oc',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070eagle-oc-8gd/p/N82E16814932343'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932344',
itemNumber: '14-932-344',
model: 'eagle',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070eagle-8gd/p/N82E16814932344'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487529',
itemNumber: '14-487-529',
model: 'xc3',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3753-kr/p/N82E16814487529'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126460',
itemNumber: '14-126-460',
model: 'dual',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-dual-rtx3070-8g/p/N82E16814126460'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932359',
itemNumber: '14-932-359',
model: 'aorus master',
series: '3070',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3070-gv-n3070aorus-m-8gd/p/N82E16814932359'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487531',
itemNumber: '14-487-531',
model: 'ftw3',
series: '3070',
url:
'https://www.newegg.com/evga-geforce-rtx-3070-08g-p5-3765-kr/p/N82E16814487531'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126461',
itemNumber: '14-126-461',
model: 'tuf oc',
series: '3070',
url:
'https://www.newegg.com/asus-geforce-rtx-3070-tuf-rtx3070-o8g-gaming/p/N82E16814126461'
},
{
brand: 'amd',
cartUrl:
@@ -530,7 +570,7 @@ export const Newegg: Store = {
itemNumber: '19-113-665',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.newegg.com/amd-ryzen-9-5900x/p/N82E16819113665'
url: 'https://www.newegg.com/amd-ryzen-7-5800x/p/N82E16819113665'
},
{
brand: 'amd',
@@ -543,15 +583,362 @@ export const Newegg: Store = {
},
{
brand: 'microsoft',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16868105273',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.newegg.com/p/N82E16868105273'
},
{
brand: 'microsoft',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16868105274',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.newegg.com/p/N82E16868105274'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932373',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.com/gigabyte-radeon-rx-6800-xt-gv-r68xt-16gc-b/p/N82E16814932373'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137607',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.com/msi-radeon-rx-6800-xt-rx-6800-xt-16g/p/N82E16814137607'
},
{
brand: 'sapphire',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202388',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.com/sapphire-radeon-rx-6800-xt-21304-01-20g/p/N82E16814202388'
},
{
brand: 'asrock',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930045',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx-6800-xt-16g/p/N82E16814930045'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126472',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.newegg.com/asus-radeon-rx-6800-xt-rx6800xt-16g/p/N82E16814126472'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126473',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.com/asus-radeon-rx-6800-rx6800-16g/p/N82E16814126473'
},
{
brand: 'asrock',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930046',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.com/asrock-radeon-rx-6800-rx-6800-16g/p/N82E16814930046'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932374',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.com/gigabyte-radeon-rx-6800-gv-r68-16gc-b/p/N82E16814932374'
},
{
brand: 'sapphire',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202389',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.com/sapphire-radeon-rx-6800-21305-01-20g/p/N82E16814202389'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137608',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.newegg.com/msi-radeon-rx-6800-rx-6800-16g/p/N82E16814137608'
},
{
brand: 'asrock',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930047',
model: 'challenger',
series: 'rx6800',
url:
'https://www.newegg.com/asrock-radeon-rx-6800-rx6800-clp-16go/p/N82E16814930047'
},
{
brand: 'asrock',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930048',
model: 'phantom gaming',
series: 'rx6800',
url:
'https://www.newegg.com/asrock-radeon-rx-6800-rx6800-pgd-16go/p/N82E16814930048'
},
{
brand: 'asrock',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930049',
model: 'phantom gaming',
series: 'rx6800xt',
url:
'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6800xt-pgd-16go/p/N82E16814930049'
},
{
brand: 'asrock',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814930050',
model: 'taichi',
series: 'rx6800xt',
url:
'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6800xt-tcx-16go/p/N82E16814930050'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126478',
model: 'tuf',
series: 'rx6800',
url:
'https://www.newegg.com/asus-radeon-rx-6800-tuf-rx6800-o16g-gaming/p/N82E16814126478'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126476',
model: 'tuf',
series: 'rx6800xt',
url:
'https://www.newegg.com/asus-radeon-rx-6800-xt-tuf-rx6800xt-o16g-gaming/p/N82E16814126476'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126477',
model: 'strix',
series: 'rx6800',
url:
'https://www.newegg.com/asus-radeon-rx-6800-rog-strix-rx6800-o16g-gaming/p/N82E16814126477'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126475',
model: 'strix lc',
series: 'rx6800xt',
url:
'https://www.newegg.com/asus-radeon-rx-6800-xt-rog-strix-lc-rx6800xt-o16g-gaming/p/N82E16814126475'
},
{
brand: 'sapphire',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202391',
model: 'nitro+',
series: 'rx6800xt',
url:
'https://www.newegg.com/sapphire-radeon-rx-6800-xt-11304-02-20g/p/N82E16814202391'
},
{
brand: 'sapphire',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814202390',
model: 'nitro+',
series: 'rx6800xt',
url:
'https://www.newegg.com/sapphire-radeon-rx-6800-xt-11304-01-20g/p/N82E16814202390'
},
{
brand: 'xfx',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814150844',
model: 'merc',
series: 'rx6800xt',
url:
'https://www.newegg.com/xfx-radeon-rx-6800-xt-rx-68xtacbd9/p/N82E16814150844'
},
{
brand: 'corsair',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16817139080',
model: '750 platinum',
series: 'sf',
url:
'https://www.newegg.com/corsair-sf750-cp-9020186-na-750w/p/N82E16817139080'
},
{
brand: 'corsair',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16817139242',
model: '600 platinum',
series: 'sf',
url:
'https://www.newegg.com/corsair-sf-series-sf600-cp-9020182-na-600w/p/N82E16817139242'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126470',
model: 'strix',
series: '3060ti',
url:
'https://www.newegg.com/asus-geforce-rtx-3060-ti-rog-strix-rtx3060ti-o8g-gaming/p/N82E16814126470'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137611',
model: 'gaming x trio',
series: '3060ti',
url:
'https://www.newegg.com/msi-geforce-rtx-3060-ti-rtx-3060-ti-gaming-x-trio/p/N82E16814137611'
},
{
brand: 'zotac',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500507',
model: 'twin edge oc',
series: '3060ti',
url:
'https://www.newegg.com/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126471',
model: 'tuf',
series: '3060ti',
url:
'https://www.newegg.com/asus-geforce-rtx-3060-ti-tuf-rtx3060ti-o8g-gaming/p/N82E16814126471'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487535',
model: 'xc3',
series: '3060ti',
url:
'https://www.newegg.com/evga-geforce-rtx-3060-ti-08g-p5-3663-kr/p/N82E16814487535'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126468',
model: 'dual',
series: '3060ti',
url:
'https://www.newegg.com/asus-geforce-rtx-3060-ti-dual-rtx3060ti-o8g/p/N82E16814126468'
},
{
brand: 'msi',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137612',
model: 'ventus 2x oc',
series: '3060ti',
url:
'https://www.newegg.com/msi-geforce-rtx-3060-ti-rtx-3060-ti-ventus-2x-oc/p/N82E16814137612'
},
{
brand: 'evga',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814487537',
model: 'ftw3 ultra',
series: '3060ti',
url:
'https://www.newegg.com/evga-geforce-rtx-3060-ti-08g-p5-3667-kr/p/N82E16814487537'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932375',
model: 'aorus',
series: '3060ti',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306taorus-m-8gd/p/N82E16814932375'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932376',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306tgamingoc-pro-8gd/p/N82E16814932376'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932379',
model: 'eagle',
series: '3060ti',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-8gd/p/N82E16814932379'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932377',
model: 'gaming oc',
series: '3060ti',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306tgaming-oc-8gd/p/N82E16814932377'
},
{
brand: 'zotac',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500506',
model: 'twin edge',
series: '3060ti',
url:
'https://www.newegg.com/zotac-geforce-rtx-3060-ti-zt-a30610e-10m/p/N82E16814500506'
},
{
brand: 'gigabyte',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932378',
model: 'eagle',
series: '3060ti',
url:
'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-oc-8gd/p/N82E16814932378'
},
{
brand: 'asus',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126474',
model: 'gaming',
series: '3060ti',
url:
'https://www.newegg.com/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474'
}
],
name: 'newegg',
+38
View File
@@ -28,6 +28,34 @@ export const Novatech: Store = {
series: 'test:series',
url:
'https://www.novatech.co.uk/products/gigabyte-geforce-rtx-2060-oc-v2-6g-graphics-card/gv-n2060oc-6gdv2.html'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.novatech.co.uk/products/amd-ryzen-5-5600x-six-core-processorcpu-with-stealth-cooler-/100-000000065box.html'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.novatech.co.uk/products/amd-ryzen-7-5800x-eight-core-processorcpu-without-cooler-/100-000000063wof.html'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.novatech.co.uk/products/amd-ryzen-9-5900x-twelve-core-processorcpu-without-cooler-/100-100000061wof.html'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.novatech.co.uk/products/amd-ryzen-9-5950x-sixteen-core-processorcpu-without-cooler-/100-100000059wof.html'
}
],
linksBuilder: {
@@ -38,6 +66,11 @@ export const Novatech: Store = {
urlSelector: 'a[href]'
}),
urls: [
{
series: '3060ti',
url:
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3060ti/?i=200'
},
{
series: '3080',
url:
@@ -47,6 +80,11 @@ export const Novatech: Store = {
series: '3090',
url:
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3090/?i=200'
},
{
series: '3060ti',
url:
'https://www.novatech.co.uk/products/components/nvidiageforcegraphicscards/nvidiartxseries/nvidiartx3060ti/'
}
]
},
+87
View File
@@ -0,0 +1,87 @@
import {Store} from './store';
export const Otto: Store = {
labels: {
inStock: [
{
container:
'button.prd_ordering__button.p_btn150--1st.js_product_addToBasket',
text: ['In den Warenkorb']
}
],
maxPrice: {
container: '#normalPriceAmount',
euroFormat: true
},
outOfStock: {
container: 'div.p_message.p_message--hint > strong',
text: ['Deinen gewünschten Artikel können wir leider nicht mehr liefern']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.otto.de/p/playstation-5-medienfernbedienung-1170617135#variationId=1170617136'
},
{
brand: 'sony',
labels: {
inStock: {
container:
'.js_shortInfo__variationName.prd_shortInfo__variationName',
text: ['konsole']
}
},
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.otto.de/p/playstation-5-1136008456/#variationId=1136008459'
},
{
brand: 'sony',
labels: {
inStock: {
container:
'.js_shortInfo__variationName.prd_shortInfo__variationName',
text: ['konsole']
}
},
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.otto.de/p/playstation-5-1154028000#variationId=1154028001'
},
{
brand: 'sony',
labels: {
inStock: {
container:
'.js_shortInfo__variationName.prd_shortInfo__variationName',
text: ['konsole']
}
},
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.otto.de/p/playstation-5-digital-edition-1161042793#variationId=1161042794'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url:
'https://www.otto.de/p/xbox-series-s-1229056876/#variationId=1229056877'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url:
'https://www.otto.de/p/xbox-series-x-1229057353#variationId=1229057354'
}
],
name: 'otto'
};
+48
View File
@@ -23,6 +23,34 @@ export const Overclockers: Store = {
series: 'test:series',
url:
'https://www.overclockers.co.uk/gigabyte-geforce-rtx-2060-oc-rev2-6144mb-gddr6-pci-express-graphics-card-gx-1bj-gi.html'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.overclockers.co.uk/amd-ryzen-5-5600x-six-core-4.6ghz-socket-am4-processor-retail-cp-3cc-am.html'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.overclockers.co.uk/amd-ryzen-7-5800x-eight-core-4.7ghz-socket-am4-processor-retail-cp-3cb-am.html'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.overclockers.co.uk/amd-ryzen-9-5900x-twelve-core-4.8ghz-socket-am4-processor-retail-cp-3ca-am.html'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.overclockers.co.uk/amd-ryzen-9-5950x-sixteen-core-4.9ghz-socket-am4-processor-retail-cp-3c9-am.html'
}
],
linksBuilder: {
@@ -33,6 +61,21 @@ export const Overclockers: Store = {
titleSelector: 'a[href].producttitles'
}),
urls: [
{
series: 'rx6800',
url:
'https://www.overclockers.co.uk/pc-components/graphics-cards/amd/radeon-rx-6800-series'
},
{
series: 'rx6800xt',
url:
'https://www.overclockers.co.uk/pc-components/graphics-cards/amd/radeon-rx-6800-xt-series'
},
{
series: '3060ti',
url:
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3060-ti'
},
{
series: '3070',
url:
@@ -50,6 +93,11 @@ export const Overclockers: Store = {
series: '3090',
url:
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3090'
},
{
series: '3060ti',
url:
'https://www.overclockers.co.uk/pc-components/graphics-cards/nvidia/geforce-rtx-3060-ti'
}
]
},
+149
View File
@@ -161,6 +161,155 @@ export const PCComponentes: Store = {
series: '3080',
url:
'https://www.pccomponentes.com/pny-geforce-rtx-3080-epic-x-rgb-triple-fan-xlr8-gaming-edition-10gb-gddr6x'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.pccomponentes.com/amd-ryzen-5-5600x-37ghz'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.pccomponentes.com/amd-ryzen-7-5800x-38ghz'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.pccomponentes.com/amd-ryzen-9-5900x-37-ghz'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.pccomponentes.com/amd-ryzen-9-5950x-34-ghz'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://www.pccomponentes.com/zotac-gaming-geforce-rtx-3070-twin-edge-oc-8gb-gddr6'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3070',
url:
'https://www.pccomponentes.com/msi-geforce-rtx-3070-gaming-x-trio-8gb-gddr6'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3070',
url:
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3070-gaming-oc-8gb-gddr6'
},
{
brand: 'msi',
model: 'ventus 2x',
series: '3070',
url:
'https://www.pccomponentes.com/msi-geforce-rtx-3070-ventus-2x-oc-8gb-gddr6'
},
{
brand: 'asus',
model: 'gaming oc',
series: '3070',
url:
'https://www.pccomponentes.com/asus-tuf-gaming-geforce-rtx-3070-oc-8gb-gddr6'
},
{
brand: 'evga',
model: 'xc3',
series: '3070',
url:
'https://www.pccomponentes.com/evga-geforce-rtx-3070-xc3-black-gaming-8gb-gddr6'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3070',
url:
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3070-eagle-oc-8gb-gddr6'
},
{
brand: 'asus',
model: 'dual oc',
series: '3070',
url:
'https://www.pccomponentes.com/asus-geforce-rtx-3070-dual-oc-edition-8gb-gddr6'
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url: 'https://www.pccomponentes.com/asus-geforce-rtx-3070-dual-8gb-gddr6'
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url:
'https://www.pccomponentes.com/asus-rog-strix-gaming-geforce-rtx-3070-oc-8gb-gddr6'
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3070',
url:
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3070-vision-oc-8gb-gddr6'
},
{
brand: 'pny',
model: 'dual fan',
series: '3070',
url:
'https://www.pccomponentes.com/pny-geforce-rtx-3070-dual-fan-8gb-gddr6'
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3070',
url:
'https://www.pccomponentes.com/gigabyte-aorus-geforce-rtx-3070-master-8gb-gddr6'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3070',
url:
'https://www.pccomponentes.com/pny-geforce-rtx-3070-xlr8-gaming-epic-x-rgb-8gb'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3070',
url:
'https://www.pccomponentes.com/evga-geforce-rtx-3070-ftw3-ultra-gaming-8gb-gddr6'
},
{
brand: 'gigabyte',
model: 'eagle',
series: '3070',
url:
'https://www.pccomponentes.com/gigabyte-geforce-rtx-3070-eagle-8gb-gddr6'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.pccomponentes.com/msi-geforce-rtx-3070-ventus-3x-oc-8gb-gddr6'
},
{
brand: 'asus',
model: 'strix',
series: '3070',
url:
'https://www.pccomponentes.com/asus-rog-strix-gaming-geforce-rtx-3070-8gb-gddr6'
}
],
name: 'pccomponentes'
+57
View File
@@ -0,0 +1,57 @@
import {Store} from './store';
import fetch from 'node-fetch';
export const PlayStation: Store = {
labels: {
inStock: {
container: '.productHero-info .add-to-cart:not(.hide)',
text: ['Add']
},
outOfStock: {
container: '.productHero-info .out-stock-wrpr:not(.hide)',
text: ['Out of Stock']
}
},
links: [
{
brand: 'test:brand',
itemNumber: '3005715',
model: 'test:model',
series: 'test:series',
url:
'https://direct.playstation.com/en-us/accessories/accessory/dualsense-wireless-controller.3005715'
},
{
brand: 'sony',
itemNumber: '3005816',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://direct.playstation.com/en-us/consoles/console/playstation5-console.3005816'
},
{
brand: 'sony',
itemNumber: '3005817',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://direct.playstation.com/en-us/consoles/console/playstation5-digital-edition-console.3005817'
}
],
name: 'playstation',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url =
'https://api.direct.playstation.com/commercewebservices/ps-direct-us/products/productList?fields=BASIC&productCodes=' +
itemNumber;
const response = await fetch(request_url);
const response_json = await response.json();
if (
response_json.products[0].stock.stockLevelStatus !== 'outOfStock' &&
response_json.products[0].maxOrderQuantity >= 0
) {
return true;
}
return false;
}
};
+41 -6
View File
@@ -1,22 +1,45 @@
import {Store} from './store';
export const Saturn: Store = {
backoffStatusCodes: [403, 429, 503],
labels: {
captcha: {
container: 'p',
text: ['Das ging uns leider zu schnell.']
},
maxPrice: {
container: 'span[font-family="price"]',
euroFormat: false // Note: Saturn uses non-euroFromat as price seperator
euroFormat: false
},
outOfStock: {
container: '#root',
text: ['dieser artikel ist aktuell nicht verfügbar.']
}
outOfStock: [
{
container: '#root',
text: ['Dieser artikel ist aktuell nicht verfügbar.']
},
{
container: '#root',
text: ['Leider keine Lieferung möglich']
}
]
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.saturn.de/de/product/-2592355.html'
url: 'https://www.saturn.de/de/product/-2641856.html'
},
{
brand: 'asus',
model: 'dual',
series: '3060ti',
url: 'https://www.saturn.de/de/product/-2701239.html'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url: 'https://www.saturn.de/de/product/-2704436.html'
},
{
brand: 'asus',
@@ -167,6 +190,18 @@ export const Saturn: Store = {
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.saturn.de/de/product/-2661939.html'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.saturn.de/de/product/-2677360.html'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.saturn.de/de/product/-2677359.html'
}
],
name: 'saturn'
+81 -1
View File
@@ -42,17 +42,92 @@ export const Scan: Store = {
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.scan.co.uk/products/playstation-5-digital-edition'
},
{
brand: 'powercolor',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.scan.co.uk/products/powercolor-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams'
},
{
brand: 'sapphire',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.scan.co.uk/products/sapphire-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams-1815mhz-gpu'
},
{
brand: 'asus',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.scan.co.uk/products/asus-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams-1815mhz-gpu-2105mhz'
},
{
brand: 'msi',
model: 'amd reference',
series: 'rx6800',
url:
'https://www.scan.co.uk/products/msi-radeon-rx-6800-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-3840-streams-1700mhz-gpu'
},
{
brand: 'powercolor',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.scan.co.uk/products/powercolor-radeon-rx-6800-xt-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-4608-streams'
},
{
brand: 'sapphire',
model: 'amd reference',
series: 'rx6800xt',
url:
'https://www.scan.co.uk/products/sapphire-radeon-rx-6800-xt-16gb-gddr6-ray-tracing-graphics-card-7nm-rdna2-4608-streams-2015mhz'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url:
'https://www.scan.co.uk/products/amd-ryzen-5-5600x-am4-zen-3-6-core-12-thread-37ghz-46ghz-turbo-35mb-cache-pcie-40-65w-cpu'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url:
'https://www.scan.co.uk/products/amd-ryzen-7-5800x-am4-zen-3-8-core-16-thread-38ghz-47ghz-turbo-36mb-cache-pcie-40-105w-cpu'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.scan.co.uk/products/amd-ryzen-9-5900x-am4-zen-3-12-core-24-thread-37ghz-48ghz-turbo-70mb-cache-pcie-40-105w-cpu'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url:
'https://www.scan.co.uk/products/amd-ryzen-9-5950x-am4-zen-3-16-core-32-thread-34ghz-49ghz-turbo-72mb-cache-pcie-40-105w-cpu'
}
],
linksBuilder: {
builder: getProductLinksBuilder({
productsSelector: 'ul.productColumns li.product',
productsSelector: 'div.productList ul.productColumns li.product',
sitePrefix: 'https://www.scan.co.uk',
titleSelector: '.details .description',
urlSelector: 'a[href]'
}),
ttl: 300000,
urls: [
{
series: '3060ti',
url:
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/geforce-rtx-3060-ti-graphics-cards'
},
{
series: '3070',
url:
@@ -67,6 +142,11 @@ export const Scan: Store = {
series: '3090',
url:
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/nvidia-geforce-rtx-3090-graphics-cards'
},
{
series: '3060ti',
url:
'https://www.scan.co.uk/shop/computer-hardware/gpu-nvidia/geforce-rtx-3060-ti-graphics-cards'
}
]
},
+42
View File
@@ -0,0 +1,42 @@
import {Store} from './store';
export const SmythsToys: Store = {
labels: {
inStock: {
container: '#addToCartButton',
text: ['add to basket']
},
maxPrice: {
container: '.price_tag',
euroFormat: false
},
outOfStock: {
container: '.instoreMessage',
text: ['out of stock']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/video-games/call-of-duty-video-games/call-of-duty-black-ops-cold-war/call-of-duty-black-ops-cold-war-ps5/p/191951'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/playstation-5/playstation-5-consoles/playstation-5-console/p/191259'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.smythstoys.com/uk/en-gb/video-games-and-tablets/playstation-5/playstation-5-consoles/playstation-5-digital-edition-console/p/191430'
}
],
name: 'smythstoys'
};
+44
View File
@@ -0,0 +1,44 @@
import {Store} from './store';
export const Spielegrotte: Store = {
labels: {
inStock: [
{
container:
'html > body > table > tbody > tr > td > div > table > tbody > tr > td > center > table > tbody > tr > td > a.klein > img',
text: ['']
}
],
maxPrice: {
container:
'html > body > table > tbody > tr > td > div > table > tbody > tr > td > center > table > tbody > tr > td > font > b',
euroFormat: true
},
outOfStock: {
container:
'html > body > table > tbody > tr > td > div > table > tbody > tr > td > center > font > b',
text: ['Dieses Produkt ist leider neu nicht mehr verfügbar']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.spielegrotte.de/index.php?kat=100056&anr=54288'
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url: 'https://www.spielegrotte.de/index.php?kat=100100&anr=56005'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.spielegrotte.de/index.php?kat=100100&anr=56006'
}
],
name: 'spielegrotte'
};
+65 -33
View File
@@ -13,7 +13,9 @@ export type Pricing = {
export type Brand =
| 'test:brand'
| 'amd'
| 'asrock'
| 'asus'
| 'corsair'
| 'evga'
| 'gainward'
| 'gigabyte'
@@ -24,20 +26,28 @@ export type Brand =
| 'nvidia'
| 'palit'
| 'pny'
| 'sapphire'
| 'sony'
| 'xfx'
| 'powercolor'
| 'zotac';
export type Series =
| 'test:series'
| '3060ti'
| '3070'
| '3080'
| '3090'
| 'ryzen5950'
| 'ryzen5900'
| 'ryzen5800'
| 'rx6800'
| 'rx6800xt'
| 'rx6900xt'
| 'ryzen5600'
| 'ryzen5800'
| 'ryzen5900'
| 'ryzen5950'
| 'sonyps5c'
| 'sonyps5de'
| 'sf'
| 'xboxsx'
| 'xboxss';
@@ -47,71 +57,90 @@ export type Model =
| '5800x'
| '5900x'
| '5950x'
| '600 platinum'
| '750 platinum'
| 'amd reference'
| 'amp extreme holo'
| 'amp holo'
| 'aorus'
| 'aorus master'
| 'aorus xtreme'
| 'dual'
| 'aorus'
| 'challenger'
| 'dual fan'
| 'dual oc'
| 'founders edition'
| 'ftw3'
| 'ftw3 ultra'
| 'eagle'
| 'dual'
| 'eagle oc'
| 'gaming'
| 'eagle'
| 'founders edition'
| 'ftw3 ultra'
| 'ftw3'
| 'gamerock oc'
| 'gaming oc'
| 'gaming oc pro'
| 'gaming pro oc'
| 'gaming pro'
| 'gaming x trio'
| 'gaming x3'
| 'gaming'
| 'ichill x2'
| 'ichill x3'
| 'ichill x4'
| 'gamerock oc'
| 'gaming x trio'
| 'gaming pro'
| 'gaming pro oc'
| 'ko'
| 'nitro+'
| 'nitro oc se'
| 'nitro oc'
| 'phantom gaming'
| 'phantom gs'
| 'phoenix gs oc'
| 'phoenix gs'
| 'phoenix'
| 'ps5 console'
| 'ps5 digital'
| 'phantom gs'
| 'phoenix'
| 'phoenix gs'
| 'phoenix gs oc'
| 'pulse'
| 'red devil'
| 'sg oc'
| 'strix'
| 'sg'
| 'merc'
| 'strix lc'
| 'strix oc'
| 'trinity'
| 'strix'
| 'taichi'
| 'trinity oc'
| 'tuf'
| 'trinity'
| 'tuf oc'
| 'tuf'
| 'turbo'
| 'twin edge'
| 'twin edge oc'
| 'twin x2'
| 'twin edge'
| 'twin x2 oc'
| 'twin x2'
| 'uprising'
| 'ventus 2x'
| 'ventus 2x oc'
| 'ventus 3x'
| 'ventus 2x'
| 'ventus 3x oc'
| 'vision'
| 'ventus 3x'
| 'vision oc'
| 'xc3'
| 'xc3 black'
| 'xc3 ultra'
| 'vision'
| 'xbox series s'
| 'xbox series x'
| 'xc gaming'
| 'xc3 black'
| 'xc3 ultra'
| 'xc3'
| 'xlr8 revel'
| 'xlr8 uprising';
export type Link = {
brand: Brand;
itemNumber?: string;
series: Series;
model: Model;
url: string;
cartUrl?: string;
itemNumber?: string;
labels?: Labels;
model: Model;
openCartAction?: (browser: Browser) => Promise<string>;
price?: number | null;
series: Series;
screenshot?: string;
url: string;
};
export type LabelQuery = Element[] | Element | string[];
@@ -155,4 +184,7 @@ export type Store = {
waitUntil?: LoadEvent;
minPageSleep?: number;
maxPageSleep?: number;
proxyList?: string[];
currentProxyIndex?: number;
};
+296
View File
@@ -0,0 +1,296 @@
import {Store} from './store';
export const TopAchat: Store = {
labels: {
inStock: {
container: 'input.cart.button[value="Ajouter au panier"]',
text: ['']
},
maxPrice: {
container: 'span.priceFinal.fp44'
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in11019393.html'
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005183.html'
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005509.html'
},
{
brand: 'zotac',
model: 'trinity',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005184.html'
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005320.html'
},
{
brand: 'asus',
model: 'tuf',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005070.html'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005289.html'
},
{
brand: 'asus',
model: 'strix oc',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005319.html'
},
{
brand: 'asus',
model: 'tuf',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005071.html'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005199.html'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005262.html'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005263.html'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005223.html'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005222.html'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005225.html'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005224.html'
},
{
brand: 'evga',
model: 'ftw3',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005291.html'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005292.html'
},
{
brand: 'evga',
model: 'xc3 black',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005289.html'
},
{
brand: 'evga',
model: 'xc3',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005290.html'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005334.html'
},
{
brand: 'evga',
model: 'ftw3',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005296.html'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005297.html'
},
{
brand: 'evga',
model: 'xc3',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005293.html'
},
{
brand: 'evga',
model: 'xc3',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005294.html'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005295.html'
},
{
brand: 'gainward',
model: 'phoenix',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005267.html'
},
{
brand: 'gainward',
model: 'phoenix gs',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005268.html'
},
{
brand: 'gainward',
model: 'phoenix',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005269.html'
},
{
brand: 'gainward',
model: 'phoenix gs',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005270.html'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005228.html'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005227.html'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005226.html'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005229.html'
},
{
brand: 'palit',
model: 'gaming pro',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005271.html'
},
{
brand: 'palit',
model: 'gaming pro oc',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005272.html'
},
{
brand: 'palit',
model: 'gaming pro',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005273.html'
},
{
brand: 'palit',
model: 'gaming pro oc',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005266.html'
},
{
brand: 'kfa2',
model: 'sg',
series: '3080',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005256.html'
},
{
brand: 'kfa2',
model: 'sg',
series: '3090',
url:
'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005257.html'
}
],
name: 'topachat'
};
+41
View File
@@ -0,0 +1,41 @@
import {Store} from './store';
export const Unieuro: Store = {
labels: {
inStock: {
container: '.price-container',
text: ['Aggiungi al carrello']
}
},
links: [
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
url:
'https://www.unieuro.it/online/Playstation-5/PlayStation-5-pidSONPS5DISC'
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url:
'https://www.unieuro.it/online/Playstation-5/PlayStation-5-Digital-Edition-pidSONPS5DIGITAL'
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url:
'https://www.unieuro.it/online/Xbox-Series/Xbox-Series-X-pidDBLRRT00008'
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
url:
'https://www.unieuro.it/online/Xbox-Series/Xbox-Series-S-pidDBLRRS00008'
}
],
name: 'unieuro'
};
+6 -1
View File
@@ -60,7 +60,7 @@ export const Very: Store = {
url
});
} else {
logger.error(`Failed to parse card: ${title}`);
logger.error(`Failed to parse card: ${title}`, {url});
}
}
@@ -68,6 +68,11 @@ export const Very: Store = {
},
ttl: 300000,
urls: [
{
series: '3060ti',
url:
'https://www.very.co.uk/electricals/pc-components/graphics-cards/e/b/118786.end?sort=newin,0&numProducts=100'
},
{
series: '3070',
url:
+258
View File
@@ -0,0 +1,258 @@
import {Store} from './store';
export const VsGamers: Store = {
labels: {
inStock: {
container: '#vs-product-sheet-dashboard',
text: ['COMPRAR', 'RESERVAR']
},
outOfStock: {
container: '#vs-product-sheet-dashboard',
text: ['Avísame']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.vsgamers.es/product/silla-gaming-msi-mag-ch120-negro-rojo'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.vsgamers.es/product/procesador-amd-ryzen-5-5600x-37-ghz'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.vsgamers.es/product/procesador-amd-ryzen-7-5800x-38-ghz'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url: 'https://www.vsgamers.es/product/procesador-amd-ryzen-9-5900x-37-ghz'
},
{
brand: 'amd',
model: '5950x',
series: 'ryzen5950',
url: 'https://www.vsgamers.es/product/procesador-amd-ryzen-9-5950x-34-ghz'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-zotac-gaming-geforce-rtx-3070-twin-edge-oc-8-gb-gddr6'
},
{
brand: 'asus',
model: 'tuf',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-tuf-gaming-geforce-rtx-3070-oc-8gb-gddr6'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-gigabyte-geforce-rtx-3070-gaming-oc-8-gb-gddr6'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-gigabyte-geforce-rtx-3070-gaming-oc-8-gb-gddr6'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtxr-3070-gaming-x-trio'
},
{
brand: 'msi',
model: 'ventus 2x oc',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtxr-3070-ventus-2x-oc-8gb-gddr6'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtxr-3070-ventus-3x-oc-8gb-gddr6'
},
{
brand: 'asus',
model: 'dual',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-dual-geforce-rtx-3070-gaming-8g-8-gb-gddr6'
},
{
brand: 'asus',
model: 'dual oc',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-dual-geforce-rtx-3070-gaming-oc-8g-8-gb-gddr6'
},
{
brand: 'asus',
model: 'strix oc',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-rog-strix-geforce-rtx-3070-gaming-oc-8g-8-gb-gddr6x'
},
{
brand: 'asus',
model: 'strix',
series: '3070',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-rog-strix-geforce-rtx-3070-gaming-8g-8-gb-gddr6x'
},
{
brand: 'zotac',
model: 'amp holo',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-zotac-gaming-nvidia-geforce-rtxr-3080-10-gb-gddr6x'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtx-3080-ventus-3x-10g-oc-10-gb-gddr6x'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtx-3080-gaming-x-trio-10g-10-gb-gddr6x'
},
{
brand: 'asus',
model: 'tuf',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-tuf-gaming-geforce-rtx-3080-10g-10-gb-gddr6x'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-tuf-gaming-geforce-rtx-3080-oc-10g-10-gb-gddr6x'
},
{
brand: 'asus',
model: 'strix',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-rog-strix-geforce-rtx-3080-gaming-10g-10-gb-gddr6x'
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-rog-strix-geforce-rtx-3080-gaming-oc-10g-10-gb-gddr6x'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-gigabyte-geforce-rtx-3080-eagle-oc-10g-10-gb-gddr6x'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-gigabyte-geforce-rtx-3080-gaming-oc-10g-10-gb-gddr6x'
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-zotac-geforce-rtx-3080-trinity-10-gb-gddr6x'
},
{
brand: 'zotac',
model: 'trinity',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-zotac-geforce-rtx-3090-trinity-24-gb-gddr6x'
},
{
brand: 'asus',
model: 'tuf',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-tuf-gaming-geforce-rtx-3090-24g-24-gb-gddr6x'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-tuf-gaming-geforce-rtx-3090-oc-24g-24-gb-gddr6x'
},
{
brand: 'asus',
model: 'strix',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-rog-strix-geforce-rtx-3090-gaming-24g-24-gb-gddr6x'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtx-3090-ventus-3x-24g-oc-24-gb-gddr6x'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-msi-geforce-rtx-3090-gaming-x-trio-24g-24-gb-gddr6x'
},
{
brand: 'asus',
model: 'strix oc',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-asus-rog-strix--geforce-rtxr-3090-gaming-oc-24gb-gddr6x'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-gigabyte-geforce-rtx-3090-eagle-oc-24g-24-gb-gddr6x'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3090',
url:
'https://www.vsgamers.es/product/tarjeta-grafica-gigabyte-geforce-rtx-3090-gaming-oc-24g-24-gb-gddr6x'
}
],
name: 'vsgamers'
};
+29 -2
View File
@@ -3,14 +3,21 @@ import {Store} from './store';
export const Walmart: Store = {
labels: {
inStock: {
container: '#ProductPrimaryCTA-cta_add_to_cart_button',
text: ['Add to cart']
container: '.button.spin-button.prod-ProductCTA--primary.button--primary',
text: ['add to cart']
},
maxPrice: {
container: 'span[class*="price-characteristic"]'
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url:
'https://www.walmart.com/ip/Keurig-K-compact-Brewer-Black-Coffee-Maker/806217614'
},
{
brand: 'sony',
model: 'ps5 console',
@@ -35,6 +42,26 @@ export const Walmart: Store = {
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.walmart.com/ip/Xbox-Series-S/606518560'
},
{
brand: 'corsair',
model: '750 platinum',
series: 'sf',
url: 'https://www.walmart.com/ip/SF750-Power-Supply/197046151'
},
{
brand: 'corsair',
model: '600 platinum',
series: 'sf',
url:
'https://www.walmart.com/ip/Corsair-SF-Series-600W-80-Platinum-Power-Supply/250717047'
},
{
brand: 'amd',
model: '5900x',
series: 'ryzen5900',
url:
'https://www.walmart.com/ip/AMD-Ryzen-9-5900X-12-core-24-thread-Desktop-Processor/159710953'
}
],
name: 'walmart'
+172
View File
@@ -0,0 +1,172 @@
import {Store} from './store';
export const Wipoid: Store = {
labels: {
inStock: {
container: '#add_to_cart',
text: ['COMPRAR']
},
maxPrice: {
container: '#our_price_display',
euroFormat: true
},
outOfStock: {
container: '.buttons_bottom_block no-print',
text: ['Avísame cuando esté disponible!']
}
},
links: [
{
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
url: 'https://www.wipoid.com/pny-geforce-rtx-1650-dual-fan-4gb-gddr6.html'
},
{
brand: 'gigabyte',
model: 'eagle oc',
series: '3080',
url:
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-eagle-oc-10gb-gddr6x.html'
},
{
brand: 'msi',
model: 'ventus 3x oc',
series: '3080',
url:
'https://www.wipoid.com/msi-geforce-rtx-3080-ventus-3x-10gb-gddr6x.html'
},
{
brand: 'asus',
model: 'tuf',
series: '3080',
url:
'https://www.wipoid.com/asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x.html'
},
{
brand: 'gigabyte',
model: 'gaming oc',
series: '3080',
url:
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-gaming-oc-10gb-gddr6x.html'
},
{
brand: 'msi',
model: 'gaming x trio',
series: '3080',
url:
'https://www.wipoid.com/msi-geforce-rtx-3080-gaming-x-trio-10gb-gddr6x.html'
},
{
brand: 'asus',
model: 'tuf oc',
series: '3080',
url:
'https://www.wipoid.com/asus-tuf-gaming-geforce-rtx-3080-oc-edition-10gb-gddr6x.html'
},
{
brand: 'asus',
model: 'strix oc',
series: '3080',
url:
'https://www.wipoid.com/asus-rog-strix-geforce-rtx-3080-oc-edition-10gb-gddr6x.html'
},
{
brand: 'evga',
model: 'xc3 black',
series: '3080',
url:
'https://www.wipoid.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x.html'
},
{
brand: 'zotac',
model: 'trinity',
series: '3080',
url:
'https://www.wipoid.com/zotac-gaming-geforce-rtx-3080-trinity-10gb-gddr6x.html'
},
{
brand: 'evga',
model: 'xc3 ultra',
series: '3080',
url:
'https://www.wipoid.com/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x.html'
},
{
brand: 'asus',
model: 'strix',
series: '3080',
url:
'https://www.wipoid.com/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x.html'
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
url:
'https://www.wipoid.com/zotac-gaming-geforce-rtx-3080-trinity-oc-10gb-gddr6x.html'
},
{
brand: 'gigabyte',
model: 'vision oc',
series: '3080',
url:
'https://www.wipoid.com/gigabyte-geforce-rtx-3080-vision-oc-10gb-gddr6x.html'
},
{
brand: 'evga',
model: 'xc3',
series: '3080',
url:
'https://www.wipoid.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x.html'
},
{
brand: 'evga',
model: 'ftw3 ultra',
series: '3080',
url:
'https://www.wipoid.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x.html'
},
{
brand: 'gigabyte',
model: 'aorus master',
series: '3080',
url:
'https://www.wipoid.com/gigabyte-aorus-geforce-rtx-3080-master-10gb-gddr6x.html'
},
{
brand: 'evga',
model: 'ftw3',
series: '3080',
url:
'https://www.wipoid.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x.html'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3080',
url:
'https://www.wipoid.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x.html'
},
{
brand: 'pny',
model: 'xlr8 revel',
series: '3080',
url:
'https://www.wipoid.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x.html'
},
{
brand: 'amd',
model: '5600x',
series: 'ryzen5600',
url: 'https://www.wipoid.com/amd-ryzen-5-5600x-3-7ghz.html'
},
{
brand: 'amd',
model: '5800x',
series: 'ryzen5800',
url: 'https://www.wipoid.com/amd-ryzen-7-5800x-3-8ghz.html'
}
],
name: 'wipoid'
};
+20
View File
@@ -0,0 +1,20 @@
import {Store} from './store';
export const Xbox: Store = {
labels: {
outOfStock: {
container:
'.src-pages-BundleBuilder-components-BundleBuilderHeader-__BundleBuilderHeader-module___checkoutButton',
text: ['out of stock']
}
},
links: [
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.xbox.com/en-us/configure/8WJ714N3RBTL'
}
],
name: 'xbox'
};
+35
View File
@@ -20,6 +20,34 @@ export const Zotac: Store = {
url:
'https://store.zotac.com/zotac-gaming-geforce-rtx-2060-twin-fan-zt-t20600f-10m'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3060ti',
url:
'https://store.zotac.com/zotac-gaming-geforce-rtx-3060-ti-twin-edge-zt-a30610e-10m'
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3060ti',
url:
'https://store.zotac.com/zotac-gaming-geforce-rtx-3060-ti-twin-edge-oc-zt-a30610h-10m'
},
{
brand: 'zotac',
model: 'twin edge',
series: '3070',
url:
'https://store.zotac.com/zotac-gaming-geforce-rtx-3070-twin-edge-zt-a30700e-10p'
},
{
brand: 'zotac',
model: 'twin edge oc',
series: '3070',
url:
'https://store.zotac.com/zotac-gaming-geforce-rtx-3070-twin-edge-oc-zt-a30700h-10p'
},
{
brand: 'zotac',
model: 'trinity',
@@ -34,6 +62,13 @@ export const Zotac: Store = {
url:
'https://store.zotac.com/zotac-gaming-geforce-rtx-3080-trinity-oc-zt-a30800j-10p'
},
{
brand: 'zotac',
model: 'amp holo',
series: '3080',
url:
'https://www.zotacstore.com/us/zotac-gaming-geforce-rtx-3080-amp-holo-zt-a30800f-10p'
},
{
brand: 'zotac',
model: 'trinity',
+1 -3
View File
@@ -4,9 +4,7 @@ declare module 'play-sound' {
player?: string;
}
export interface PlayOptions {
[key: string]: any;
}
export type PlayOptions = Record<string, any>;
export interface PlaySound {
player: string;
+6 -6
View File
@@ -1,5 +1,5 @@
declare module '@jef/pushbullet' {
export type DeviceParams = string | number | Record<string, any>;
export type DeviceParameters = string | number | Record<string, any>;
export type PushBulletCallback =
| ((error: Error) => void)
@@ -38,26 +38,26 @@ declare module '@jef/pushbullet' {
);
deleteDevice(deviceIden: string, callback: PushBulletCallback);
note(
deviceParams: DeviceParams,
deviceParameters: DeviceParameters,
title: string,
body: string,
callback: PushBulletCallback
);
link(
deviceParams: DeviceParams,
deviceParameters: DeviceParameters,
name: string,
url: string,
body: string,
callback: PushBulletCallback
);
file(
deviceParams: DeviceParams,
deviceParameters: DeviceParameters,
filePath: string,
message: string,
callback: PushBulletCallback
);
dismissPush(pushIden: DeviceParams, callback: PushBulletCallback);
deletePush(pushIden: DeviceParams, callback: PushBulletCallback);
dismissPush(pushIden: DeviceParameters, callback: PushBulletCallback);
deletePush(pushIden: DeviceParameters, callback: PushBulletCallback);
deleteAllPushes(callback: PushBulletCallback);
history(options: HistoryOptions, callback: PushBulletCallback);
history(callback: PushBulletCallback);
+1 -1
View File
@@ -62,7 +62,7 @@ export async function usingPage<T>(
} finally {
try {
await closePage(page);
} catch (error) {
} catch (error: unknown) {
logger.error(error);
}
}
+4 -4
View File
@@ -13,7 +13,7 @@ import {join, normalize} from 'path';
const approot = join(__dirname, '../../');
const webroot = join(approot, './web');
const contentTypeMap: {[key: string]: string} = {
const contentTypeMap: Record<string, string> = {
css: 'text/css',
htm: 'text/html',
html: 'text/html',
@@ -49,8 +49,8 @@ function sendFile(
stream.on('end', () => response.end());
stream.pipe(response);
} catch (error) {
sendError(response, error);
} catch (error: unknown) {
sendError(response, (error as Error).message);
}
}
@@ -182,6 +182,6 @@ export async function stopAPIServer() {
return;
}
resolve();
resolve(null);
});
}
+1 -1
View File
@@ -1 +1 @@
3.0.0
3.2.0