diff --git a/src/store/model/amazon-uk.ts b/src/store/model/amazon-uk.ts index f9cec4593a..751d6d4220 100644 --- a/src/store/model/amazon-uk.ts +++ b/src/store/model/amazon-uk.ts @@ -113,6 +113,16 @@ export const AmazonUk: Store = { }, ttl: 300000, urls: [ + { + 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' + }, + { + series: '3070', + url: + 'https://www.amazon.co.uk/s?k=%2B%22RTX+3070%22+-2060+-2070+-2080+-SUPER+-GTX+-3080&rh=n%3A430500031&ref=nb_sb_noss' + }, { series: '3080', url: [ @@ -126,11 +136,6 @@ 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' } ] }, diff --git a/src/store/model/amd-uk.ts b/src/store/model/amd-uk.ts new file mode 100644 index 0000000000..8c4c9bc60f --- /dev/null +++ b/src/store/model/amd-uk.ts @@ -0,0 +1,96 @@ +import {Store} from './store'; + +export const AmdUk: Store = { + currency: '£', + labels: { + inStock: [ + { + container: '.btn-shopping-cart', + text: ['add to cart'] + }, + { + container: '.btn-radeon', + text: ['add to cart'] + } + ], + maxPrice: { + container: '.product-page-description h4', + euroFormat: false + }, + outOfStock: [ + { + container: '.product-out-of-stock', + text: ['out of stock'] + }, + { + container: '.btn-radeon', + text: ['sold out'] + } + ] + }, + links: [ + { + brand: 'test:brand', + model: 'test:model', + series: 'test:series', + url: 'https://www.amd.com/en/direct-buy/5450881400/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5450881400/gb?add-to-cart=true', + model: '5950x', + series: 'ryzen5950', + url: 'https://www.amd.com/en/direct-buy/5450881400/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5450881500/gb?add-to-cart=true', + model: '5900x', + series: 'ryzen5900', + url: 'https://www.amd.com/en/direct-buy/5450881500/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5450881600/gb?add-to-cart=true', + model: '5800x', + series: 'ryzen5800', + url: 'https://www.amd.com/en/direct-buy/5450881600/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5450881700/gb?add-to-cart=true', + model: '5600x', + series: 'ryzen5600', + url: 'https://www.amd.com/en/direct-buy/5450881700/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5458374000/gb?add-to-cart=true', + model: 'amd reference', + series: 'rx6800', + url: 'https://www.amd.com/en/direct-buy/5458374000/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5458374100/gb?add-to-cart=true', + model: 'amd reference', + series: 'rx6800xt', + url: 'https://www.amd.com/en/direct-buy/5458374100/gb' + }, + { + brand: 'amd', + cartUrl: + 'https://www.amd.com/en/direct-buy/5458374200/gb?add-to-cart=true', + model: 'amd reference', + series: 'rx6900xt', + url: 'https://www.amd.com/en/direct-buy/5458374200/gb' + } + ], + name: 'amd-uk' +}; diff --git a/src/store/model/argos.ts b/src/store/model/argos.ts index 8d7bcc2588..7fba8fe1c8 100644 --- a/src/store/model/argos.ts +++ b/src/store/model/argos.ts @@ -19,16 +19,28 @@ export const Argos: Store = { url: 'https://www.argos.co.uk/product/5718469' }, { - brand: 'asus', + brand: 'sony', model: 'ps5 console', series: 'sonyps5c', - url: 'https://www.argos.co.uk/product/6795199' + url: 'https://www.argos.co.uk/product/8349000' }, { brand: 'sony', model: 'ps5 digital', series: 'sonyps5de', - url: 'https://www.argos.co.uk/product/6795151' + url: 'https://www.argos.co.uk/product/8349024' + }, + { + brand: 'microsoft', + model: 'xbox series x', + series: 'xboxsx', + url: 'https://www.argos.co.uk/product/8448262' + }, + { + brand: 'microsoft', + model: 'xbox series s', + series: 'xboxss', + url: 'https://www.argos.co.uk/product/8448248' } ], name: 'argos' diff --git a/src/store/model/aria.ts b/src/store/model/aria.ts index e73c9b7b35..f42b7fa8ad 100644 --- a/src/store/model/aria.ts +++ b/src/store/model/aria.ts @@ -45,6 +45,11 @@ export const Aria: Store = { url: 'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti' }, + { + series: '3070', + url: + 'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3070' + }, { series: '3080', url: @@ -54,11 +59,6 @@ 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' } ] }, diff --git a/src/store/model/awd.ts b/src/store/model/awd.ts index 0304dc7cc7..5f155fc3ed 100644 --- a/src/store/model/awd.ts +++ b/src/store/model/awd.ts @@ -9,12 +9,12 @@ export const Awd: Store = { text: ['item(s)'] }, maxPrice: { - container: '.product-info .ty-price-num', + container: '.ty-price', euroFormat: false // Note: Awd uses non-euroFromat as price seperator }, outOfStock: { - container: '.vs-stock', - text: ['out of stock'] + container: '.vs-stock.ty-float-left', + text: ['Out-of-stock'] } }, links: [ @@ -25,34 +25,6 @@ export const Awd: Store = { 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', @@ -86,10 +58,19 @@ export const Awd: Store = { builder: getProductLinksBuilder({ productsSelector: '.grid-list .ty-grid-list__item', sitePrefix: 'https://www.awd-it.co.uk', - titleSelector: '.title-price-wrapper', - urlSelector: 'a[href]' + titleSelector: '.product-title' }), urls: [ + { + series: 'rx6800', + url: + 'https://www.awd-it.co.uk/components/graphics-cards/ati/amd-radeon-6800-6800xt.html' + }, + { + series: '3060ti', + url: + 'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html' + }, { series: '3070', url: @@ -104,11 +85,6 @@ export const Awd: Store = { 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' } ] }, diff --git a/src/store/model/box.ts b/src/store/model/box.ts index 8c6e5b46d9..fa1e27eaa6 100644 --- a/src/store/model/box.ts +++ b/src/store/model/box.ts @@ -2,6 +2,7 @@ import {Store} from './store'; import {getProductLinksBuilder} from './helpers/card'; export const Box: Store = { + backoffStatusCodes: [403, 429, 503], currency: '£', labels: { inStock: { @@ -9,10 +10,11 @@ export const Box: Store = { text: ['add to basket'] }, maxPrice: { - container: '.p-right-wrapper .pq-price', + container: '.p-price', euroFormat: false // Note: Box uses non-euroFromat as price seperator }, outOfStock: { + container: '#divBuyButton', text: ['request stock alert', 'coming soon'] } }, @@ -23,6 +25,41 @@ export const Box: Store = { series: 'test:series', url: 'https://www.box.co.uk/Gigabyte-GeForce-RTX-2080-Super-8GB-Wind_2724554.html' + }, + { + brand: 'sony', + model: 'ps5 console', + series: 'sonyps5c', + url: + 'https://www.box.co.uk/CFI-1015A-Sony-Playstation-5-Console_3199689.html' + }, + { + brand: 'sony', + model: 'ps5 digital', + series: 'sonyps5de', + url: + 'https://www.box.co.uk/CFI-1015B-Sony-PlayStation-5-Digital-Edition-Conso_3199692.html' + }, + { + brand: 'microsoft', + model: 'xbox series x', + series: 'xboxsx', + url: + 'https://www.box.co.uk/RRT-00007-Xbox-Series-X-Console_3201195.html' + }, + { + brand: 'microsoft', + model: 'xbox series s', + series: 'xboxss', + url: + 'https://www.box.co.uk/RRS-00007-Xbox-Series-S-Console_3201197.html' + }, + { + brand: 'amd', + model: 'tuf oc', + series: 'rx6900xt', + url: + 'https://www.box.co.uk/90YV0GE0-M0NM00-ASUS-Radeon-RX-X6900XT-16GB-OC-Gaming-Gr_3561243.html' } ], linksBuilder: { @@ -47,10 +84,6 @@ 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' } ] }, diff --git a/src/store/model/ccl.ts b/src/store/model/ccl.ts index d0a91d26a6..4ac9f1cae4 100644 --- a/src/store/model/ccl.ts +++ b/src/store/model/ccl.ts @@ -63,6 +63,11 @@ export const Ccl: Store = { titleSelector: '.productList_Detail a[title]' }), urls: [ + { + series: '3060ti', + url: + 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/' + }, { series: '3070', url: @@ -89,9 +94,9 @@ export const Ccl: Store = { 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/' }, { - series: '3060ti', + series: 'rx6900xt', url: - 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/' + 'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/attributeslist/1268064/' } ] }, diff --git a/src/store/model/currys.ts b/src/store/model/currys.ts index dedceb860a..c0cf405c51 100644 --- a/src/store/model/currys.ts +++ b/src/store/model/currys.ts @@ -53,6 +53,34 @@ export const Currys: Store = { series: 'ryzen5950', url: 'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5950x-processor-10216688-pdt.html' + }, + { + brand: 'sony', + model: 'ps5 console', + series: 'sonyps5c', + url: + 'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/sony-playstation-5-825-gb-10203370-pdt.html' + }, + { + brand: 'sony', + model: 'ps5 digital', + series: 'sonyps5de', + url: + 'https://www.currys.co.uk/gbuk/playstation-5-sony-1714-commercial.html' + }, + { + brand: 'microsoft', + model: 'xbox series x', + series: 'xboxsx', + url: + 'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/microsoft-xbox-series-x-1-tb-10203371-pdt.html' + }, + { + brand: 'microsoft', + model: 'xbox series s', + series: 'xboxss', + url: + 'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/microsoft-xbox-series-s-512-gb-ssd-10205195-pdt.html' } ], linksBuilder: { @@ -82,11 +110,6 @@ 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' } ] }, diff --git a/src/store/model/ebuyer.ts b/src/store/model/ebuyer.ts index ca39eaec0a..3c91603c00 100644 --- a/src/store/model/ebuyer.ts +++ b/src/store/model/ebuyer.ts @@ -5,8 +5,8 @@ export const Ebuyer: Store = { currency: '£', labels: { inStock: { - container: '.purchase-info', - text: ['add to basket', 'in stock', 'pre-order'] + container: '.purchase-info__cta', + text: ['add to basket', 'pre-order'] }, maxPrice: { container: '.purchase-info__price .price', @@ -14,7 +14,7 @@ export const Ebuyer: Store = { }, outOfStock: { container: '.purchase-info', - text: ['coming soon', 'we are expecting this item on'] + text: ['coming soon'] } }, links: [ @@ -39,6 +39,20 @@ export const Ebuyer: Store = { url: 'https://www.ebuyer.com/1125332-sony-playstation-5-digital-edition-cfi-1015b' }, + { + brand: 'microsoft', + model: 'xbox series x', + series: 'xboxsx', + url: + 'https://www.ebuyer.com/1133948-xbox-series-x-console-rrt-00007' + }, + { + brand: 'microsoft', + model: 'xbox series s', + series: 'xboxss', + url: + 'https://www.ebuyer.com/1133947-xbox-series-s-all-digital-console-rrs-00007' + }, { brand: 'amd', model: '5600x', @@ -86,6 +100,11 @@ export const Ebuyer: Store = { url: 'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800-XT' }, + { + series: 'rx6900xt', + url: + 'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6900-XT' + }, { series: '3060ti', url: @@ -105,11 +124,6 @@ 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' } ] }, diff --git a/src/store/model/game.ts b/src/store/model/game.ts index 22eaba7e7a..f03336eb9c 100644 --- a/src/store/model/game.ts +++ b/src/store/model/game.ts @@ -36,6 +36,18 @@ export const Game: Store = { series: 'sonyps5de', url: 'https://www.game.co.uk/en/playstation-5-digital-edition-2826341' + }, + { + brand: 'microsoft', + model: 'xbox series x', + series: 'xboxsx', + url: 'https://www.game.co.uk/en/xbox-series-x-2831406' + }, + { + brand: 'microsoft', + model: 'xbox series s', + series: 'xboxss', + url: 'https://www.game.co.uk/en/xbox-series-x-2831406' } ], name: 'game' diff --git a/src/store/model/helpers/card.ts b/src/store/model/helpers/card.ts index d42ce1a9eb..0566f1e80b 100644 --- a/src/store/model/helpers/card.ts +++ b/src/store/model/helpers/card.ts @@ -75,6 +75,8 @@ export function parseCard(name: string): Card | null { name = name.replace(/\([^(]*\)/g, ''); name = name.replace(/, .+$/, ''); name = name.replace(/ with .+$/, ''); + name = name.replace(/pci-express/gi, ''); + name = name.replace(/ - .*$/g, ''); // Account for incorrect titles, e.g. MSIGeforce name = name.replace(/geforce/i, ''); @@ -83,7 +85,7 @@ export function parseCard(name: string): Card | null { name = name.replace(/\bgraphics card\b/gi, ''); name = name.replace(/\b(?