mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 00:38:43 +00:00
refactor: use gts instead of xo
feat: add browser opening to test:notification feat: add c8 and mocha for testing feat: update Docker and ci style: update editorconfig
This commit is contained in:
@@ -9,9 +9,4 @@ trim_trailing_whitespace = true
|
|||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.ts]
|
|
||||||
indent_style = tab
|
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
build/
|
||||||
|
docs/
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "./node_modules/gts/"
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
jobs:
|
jobs:
|
||||||
build-and-lint:
|
build-lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
@@ -18,11 +18,12 @@ jobs:
|
|||||||
restore-keys: ${{ runner.os }}-node-
|
restore-keys: ${{ runner.os }}-node-
|
||||||
- name: Add problem matcher
|
- name: Add problem matcher
|
||||||
run: echo "::add-matcher::.github/xo-problem-matcher.json"
|
run: echo "::add-matcher::.github/xo-problem-matcher.json"
|
||||||
- name: Pull dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: npm ci
|
||||||
npm ci
|
- name: Compile TypeScript
|
||||||
npm run build
|
run: npm run compile
|
||||||
npm run lint
|
- name: Run linter
|
||||||
|
run: npm run lint
|
||||||
build-docker:
|
build-docker:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
+1
-1
@@ -2,8 +2,8 @@
|
|||||||
.vs/
|
.vs/
|
||||||
.vscode/
|
.vscode/
|
||||||
build/
|
build/
|
||||||
|
coverage/
|
||||||
node_modules/
|
node_modules/
|
||||||
src/config/*.yaml
|
|
||||||
|
|
||||||
.env
|
.env
|
||||||
dotenv
|
dotenv
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
...require('gts/.prettierrc.json')
|
||||||
|
}
|
||||||
+7
-7
@@ -1,4 +1,4 @@
|
|||||||
FROM node:14.15.0-alpine3.12 AS builder
|
FROM node:14.15.4-alpine3.12 AS builder
|
||||||
|
|
||||||
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
|
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
|
||||||
|
|
||||||
@@ -12,20 +12,20 @@ COPY tsconfig.json tsconfig.json
|
|||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
COPY src/ src/
|
COPY src/ src/
|
||||||
RUN npm run build
|
RUN npm run compile
|
||||||
RUN npm prune --production
|
RUN npm prune --production
|
||||||
|
|
||||||
FROM node:14.15.0-alpine3.12
|
FROM node:14.15.4-alpine3.12
|
||||||
|
|
||||||
RUN apk add --no-cache chromium
|
RUN apk add --no-cache chromium
|
||||||
|
|
||||||
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
|
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
|
||||||
DOCKER=true
|
DOCKER=true
|
||||||
|
|
||||||
RUN addgroup -S appuser && adduser -S -g appuser appuser \
|
RUN addgroup -S appuser && adduser -S -g appuser appuser \
|
||||||
&& mkdir -p /home/appuser/Downloads /app \
|
&& mkdir -p /home/appuser/Downloads /app \
|
||||||
&& chown -R appuser:appuser /home/appuser \
|
&& chown -R appuser:appuser /home/appuser \
|
||||||
&& chown -R appuser:appuser /app
|
&& chown -R appuser:appuser /app
|
||||||
|
|
||||||
USER appuser
|
USER appuser
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ To customize streetmerchant, make a copy of `dotenv-example` as `dotenv` and mak
|
|||||||
|
|
||||||
The command `npm run start:dev` can be used instead of `npm run start` to automatically restart the project when filesystem changes are detected in the `src/` folder or `dotenv` file.
|
The command `npm run start:dev` can be used instead of `npm run start` to automatically restart the project when filesystem changes are detected in the `src/` folder or `dotenv` file.
|
||||||
|
|
||||||
Use `npm run lint` to see any linting uses and `npm run lint:fix` to automatically fix the issues it can.
|
Use `npm run lint` to see any linting uses and `npm run fix` to automatically fix the issues it can.
|
||||||
|
|
||||||
### Developing in Docker
|
### Developing in Docker
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
app.document$.subscribe(function() {
|
app.document$.subscribe(() => {
|
||||||
var tables = document.querySelectorAll("article table")
|
const tables = document.querySelectorAll('article table');
|
||||||
tables.forEach(function(table) {
|
tables.forEach(table => {
|
||||||
new Tablesort(table)
|
new Tablesort(table);
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
|
|||||||
Generated
+1711
-4562
File diff suppressed because it is too large
Load Diff
+22
-20
@@ -3,15 +3,22 @@
|
|||||||
"description": "The world's easiest, most powerful stock checker",
|
"description": "The world's easiest, most powerful stock checker",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"all": "npm run build && npm run lint",
|
"all": "npm run compile && npm run lint && npm run test",
|
||||||
"build": "tsc",
|
"fix": "gts fix",
|
||||||
"lint": "xo",
|
"lint": "gts lint",
|
||||||
"lint:fix": "xo --fix",
|
"clean": "gts clean",
|
||||||
"start": "npm run build && node build/index.js",
|
"compile": "tsc",
|
||||||
|
"pretest": "npm run compile",
|
||||||
|
"posttest": "npm run lint",
|
||||||
|
"start": "npm run compile && node build/src/index.js",
|
||||||
"start:dev": "nodemon --config nodemon.json",
|
"start:dev": "nodemon --config nodemon.json",
|
||||||
"start:production": "node build/index.js",
|
"start:production": "node build/src/index.js",
|
||||||
"test:notification": "npm run build && node build/__test__/notification-test.js",
|
"test": "c8 mocha 'build/test/**/test-*.js' --exclude 'build/test/functional/**/test-*.js'",
|
||||||
"test:notification:production": "node build/__test__/notification-test.js"
|
"test:notification": "npm run compile && node build/test/functional/test-notification.js",
|
||||||
|
"test:notification:production": "node build/test/functional/test-notification.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0 <15.0.0"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -61,26 +68,21 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/async": "^3.2.5",
|
"@types/async": "^3.2.5",
|
||||||
"@types/cheerio": "^0.22.23",
|
"@types/cheerio": "^0.22.23",
|
||||||
|
"@types/mocha": "^8.2.0",
|
||||||
"@types/node": "^14.14.21",
|
"@types/node": "^14.14.21",
|
||||||
"@types/node-fetch": "^2.5.8",
|
"@types/node-fetch": "^2.5.8",
|
||||||
"@types/node-notifier": "^8.0.0",
|
"@types/node-notifier": "^8.0.0",
|
||||||
"@types/nodemailer": "^6.4.0",
|
"@types/nodemailer": "^6.4.0",
|
||||||
"@types/puppeteer": "^5.4.2",
|
"@types/puppeteer": "^5.4.2",
|
||||||
|
"@types/sinon": "^9.0.10",
|
||||||
"@types/twitter": "^1.7.0",
|
"@types/twitter": "^1.7.0",
|
||||||
|
"c8": "^7.4.0",
|
||||||
|
"gts": "^3.1.0",
|
||||||
|
"mocha": "^8.2.1",
|
||||||
"nodemon": "^2.0.7",
|
"nodemon": "^2.0.7",
|
||||||
|
"sinon": "^9.2.3",
|
||||||
"ts-node": "^9.1.1",
|
"ts-node": "^9.1.1",
|
||||||
"typescript": "^4.1.3",
|
"typescript": "^4.1.3",
|
||||||
"webpack": "^5.14.0",
|
"webpack": "^5.14.0"
|
||||||
"xo": "^0.36.1"
|
|
||||||
},
|
|
||||||
"xo": {
|
|
||||||
"prettier": true,
|
|
||||||
"ignores": "docs/javascripts",
|
|
||||||
"rules": {
|
|
||||||
"no-warning-comments": "off",
|
|
||||||
"sort-imports": "error",
|
|
||||||
"sort-keys": "error",
|
|
||||||
"sort-vars": "error"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
import {Link, Store} from '../store/model';
|
|
||||||
import {sendNotification} from '../notification';
|
|
||||||
|
|
||||||
const link: Link = {
|
|
||||||
brand: 'test:brand',
|
|
||||||
cartUrl: 'https://www.example.com/cartUrl',
|
|
||||||
model: 'test:model',
|
|
||||||
price: 100,
|
|
||||||
series: 'test:series',
|
|
||||||
url: 'https://www.example.com/url'
|
|
||||||
};
|
|
||||||
|
|
||||||
const store: Store = {
|
|
||||||
currency: '',
|
|
||||||
labels: {
|
|
||||||
inStock: {
|
|
||||||
container: 'test:container',
|
|
||||||
text: ['test:text']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
links: [link],
|
|
||||||
name: 'test:name'
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Send test email.
|
|
||||||
*/
|
|
||||||
sendNotification(link, store);
|
|
||||||
+11
-11
@@ -2,23 +2,23 @@ import {Page} from 'puppeteer';
|
|||||||
import {PuppeteerExtraPluginAdblocker} from 'puppeteer-extra-plugin-adblocker';
|
import {PuppeteerExtraPluginAdblocker} from 'puppeteer-extra-plugin-adblocker';
|
||||||
|
|
||||||
export const adBlocker = new PuppeteerExtraPluginAdblocker({
|
export const adBlocker = new PuppeteerExtraPluginAdblocker({
|
||||||
blockTrackers: true
|
blockTrackers: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
export async function enableBlockerInPage(page: Page) {
|
export async function enableBlockerInPage(page: Page) {
|
||||||
const blockerObject = await adBlocker.getBlocker();
|
const blockerObject = await adBlocker.getBlocker();
|
||||||
if (blockerObject.isBlockingEnabled(page)) {
|
if (blockerObject.isBlockingEnabled(page)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await blockerObject.enableBlockingInPage(page);
|
await blockerObject.enableBlockingInPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function disableBlockerInPage(page: Page) {
|
export async function disableBlockerInPage(page: Page) {
|
||||||
const blockerObject = await adBlocker.getBlocker();
|
const blockerObject = await adBlocker.getBlocker();
|
||||||
if (!blockerObject.isBlockingEnabled(page)) {
|
if (!blockerObject.isBlockingEnabled(page)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await blockerObject.disableBlockingInPage(page);
|
await blockerObject.disableBlockingInPage(page);
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -4,7 +4,7 @@ import {readFileSync} from 'fs';
|
|||||||
const version = readFileSync('version.txt', 'utf8');
|
const version = readFileSync('version.txt', 'utf8');
|
||||||
|
|
||||||
export const banner = {
|
export const banner = {
|
||||||
asciiVersion: `
|
asciiVersion: `
|
||||||
██████ ▄▄▄█████▓ ██▀███ ▓█████ ▓█████▄▄▄█████▓ ███▄ ▄███▓▓█████ ██▀███ ▄████▄ ██░ ██ ▄▄▄ ███▄ █ ▄▄▄█████▓
|
██████ ▄▄▄█████▓ ██▀███ ▓█████ ▓█████▄▄▄█████▓ ███▄ ▄███▓▓█████ ██▀███ ▄████▄ ██░ ██ ▄▄▄ ███▄ █ ▄▄▄█████▓
|
||||||
▒██ ▒ ▓ ██▒ ▓▒▓██ ▒ ██▒▓█ ▀ ▓█ ▀▓ ██▒ ▓▒▓██▒▀█▀ ██▒▓█ ▀ ▓██ ▒ ██▒▒██▀ ▀█ ▓██░ ██▒▒████▄ ██ ▀█ █ ▓ ██▒ ▓▒
|
▒██ ▒ ▓ ██▒ ▓▒▓██ ▒ ██▒▓█ ▀ ▓█ ▀▓ ██▒ ▓▒▓██▒▀█▀ ██▒▓█ ▀ ▓██ ▒ ██▒▒██▀ ▀█ ▓██░ ██▒▒████▄ ██ ▀█ █ ▓ ██▒ ▓▒
|
||||||
░ ▓██▄ ▒ ▓██░ ▒░▓██ ░▄█ ▒▒███ ▒███ ▒ ▓██░ ▒░▓██ ▓██░▒███ ▓██ ░▄█ ▒▒▓█ ▄ ▒██▀▀██░▒██ ▀█▄ ▓██ ▀█ ██▒▒ ▓██░ ▒░
|
░ ▓██▄ ▒ ▓██░ ▒░▓██ ░▄█ ▒▒███ ▒███ ▒ ▓██░ ▒░▓██ ▓██░▒███ ▓██ ░▄█ ▒▒▓█ ▄ ▒██▀▀██░▒██ ▀█▄ ▓██ ▀█ ██▒▒ ▓██░ ▒░
|
||||||
@@ -15,11 +15,11 @@ export const banner = {
|
|||||||
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░
|
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░
|
||||||
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
|
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
|
||||||
${version}`,
|
${version}`,
|
||||||
render(ascii: boolean, hexColor: string) {
|
render(ascii: boolean, hexColor: string) {
|
||||||
return chalk
|
return chalk
|
||||||
.hex(hexColor)
|
.hex(hexColor)
|
||||||
.bold(ascii ? this.asciiVersion : this.stringVersion);
|
.bold(ascii ? this.asciiVersion : this.stringVersion);
|
||||||
},
|
},
|
||||||
stringVersion: `STREETMERCHANT
|
stringVersion: `STREETMERCHANT
|
||||||
${version}`
|
${version}`,
|
||||||
};
|
};
|
||||||
|
|||||||
+330
-333
@@ -2,28 +2,29 @@ import {existsSync, readFileSync} from 'fs';
|
|||||||
import {banner} from './banner';
|
import {banner} from './banner';
|
||||||
import dotenv from 'dotenv';
|
import dotenv from 'dotenv';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import * as console from 'console';
|
||||||
|
|
||||||
if (process.env.npm_config_conf) {
|
if (process.env.npm_config_conf) {
|
||||||
if (
|
if (
|
||||||
existsSync(path.resolve(__dirname, '../' + process.env.npm_config_conf))
|
existsSync(path.resolve(__dirname, '../../' + process.env.npm_config_conf))
|
||||||
) {
|
) {
|
||||||
dotenv.config({
|
dotenv.config({
|
||||||
path: path.resolve(__dirname, '../' + process.env.npm_config_conf)
|
path: path.resolve(__dirname, '../../' + process.env.npm_config_conf),
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
dotenv.config({path: path.resolve(__dirname, '../.env')});
|
dotenv.config({path: path.resolve(__dirname, '../../.env')});
|
||||||
}
|
}
|
||||||
} else if (existsSync(path.resolve(__dirname, '../dotenv'))) {
|
} else if (existsSync(path.resolve(__dirname, '../../dotenv'))) {
|
||||||
dotenv.config({path: path.resolve(__dirname, '../dotenv')});
|
dotenv.config({path: path.resolve(__dirname, '../../dotenv')});
|
||||||
} else {
|
} else {
|
||||||
dotenv.config({path: path.resolve(__dirname, '../.env')});
|
dotenv.config({path: path.resolve(__dirname, '../../.env')});
|
||||||
}
|
}
|
||||||
|
|
||||||
console.info(
|
console.info(
|
||||||
banner.render(
|
banner.render(
|
||||||
envOrBoolean(process.env.ASCII_BANNER, false),
|
envOrBoolean(process.env.ASCII_BANNER, false),
|
||||||
envOrString(process.env.BANNER_COLOR, '#808080')
|
envOrString(process.env.BANNER_COLOR, '#808080')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,15 +34,15 @@ console.info(
|
|||||||
* @param array Default array. If not set, is `[]`.
|
* @param array Default array. If not set, is `[]`.
|
||||||
*/
|
*/
|
||||||
function envOrArray(
|
function envOrArray(
|
||||||
environment: string | undefined,
|
environment: string | undefined,
|
||||||
array?: string[]
|
array?: string[]
|
||||||
): string[] {
|
): string[] {
|
||||||
return (environment
|
return (environment
|
||||||
? environment.includes('\n')
|
? environment.includes('\n')
|
||||||
? environment.split('\n')
|
? environment.split('\n')
|
||||||
: environment.split(',')
|
: environment.split(',')
|
||||||
: array ?? []
|
: array ?? []
|
||||||
).map((s) => s.trim());
|
).map(s => s.trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -51,10 +52,10 @@ function envOrArray(
|
|||||||
* @param boolean Default boolean. If not set, is `true`.
|
* @param boolean Default boolean. If not set, is `true`.
|
||||||
*/
|
*/
|
||||||
function envOrBoolean(
|
function envOrBoolean(
|
||||||
environment: string | undefined,
|
environment: string | undefined,
|
||||||
boolean?: boolean
|
boolean?: boolean
|
||||||
): boolean {
|
): boolean {
|
||||||
return environment ? environment === 'true' : boolean ?? true;
|
return environment ? environment === 'true' : boolean ?? true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -64,7 +65,7 @@ function envOrBoolean(
|
|||||||
* @param string Default string. If not set, is `''`.
|
* @param string Default string. If not set, is `''`.
|
||||||
*/
|
*/
|
||||||
function envOrString(environment: string | undefined, string?: string): string {
|
function envOrString(environment: string | undefined, string?: string): string {
|
||||||
return environment ? environment : string ?? '';
|
return environment ? environment : string ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -74,7 +75,7 @@ function envOrString(environment: string | undefined, string?: string): string {
|
|||||||
* @param number Default number. If not set, is `0`.
|
* @param number Default number. If not set, is `0`.
|
||||||
*/
|
*/
|
||||||
function envOrNumber(environment: string | undefined, number?: number): number {
|
function envOrNumber(environment: string | undefined, number?: number): number {
|
||||||
return environment ? Number(environment) : number ?? 0;
|
return environment ? Number(environment) : number ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,31 +91,31 @@ function envOrNumber(environment: string | undefined, number?: number): number {
|
|||||||
* @param number Default number. If not set, is `0`.
|
* @param number Default number. If not set, is `0`.
|
||||||
*/
|
*/
|
||||||
function envOrNumberMin(
|
function envOrNumberMin(
|
||||||
environmentMin: string | undefined,
|
environmentMin: string | undefined,
|
||||||
environmentMax: string | undefined,
|
environmentMax: string | undefined,
|
||||||
number?: number
|
number?: number
|
||||||
) {
|
) {
|
||||||
if (environmentMin || environmentMax) {
|
if (environmentMin || environmentMax) {
|
||||||
if (environmentMin && environmentMax) {
|
if (environmentMin && environmentMax) {
|
||||||
return Number(
|
return Number(
|
||||||
Number(environmentMin) < Number(environmentMax)
|
Number(environmentMin) < Number(environmentMax)
|
||||||
? environmentMin
|
? environmentMin
|
||||||
: environmentMax
|
: environmentMax
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (environmentMax) {
|
if (environmentMax) {
|
||||||
return Number(environmentMax) < (number ?? 0)
|
return Number(environmentMax) < (number ?? 0)
|
||||||
? Number(environmentMax)
|
? Number(environmentMax)
|
||||||
: number ?? 0;
|
: number ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (environmentMin) {
|
if (environmentMin) {
|
||||||
return Number(environmentMin);
|
return Number(environmentMin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return number ?? 0;
|
return number ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -130,68 +131,72 @@ function envOrNumberMin(
|
|||||||
* @param number Default number. If not set, is `0`.
|
* @param number Default number. If not set, is `0`.
|
||||||
*/
|
*/
|
||||||
function envOrNumberMax(
|
function envOrNumberMax(
|
||||||
environmentMin: string | undefined,
|
environmentMin: string | undefined,
|
||||||
environmentMax: string | undefined,
|
environmentMax: string | undefined,
|
||||||
number?: number
|
number?: number
|
||||||
) {
|
) {
|
||||||
if (environmentMin || environmentMax) {
|
if (environmentMin || environmentMax) {
|
||||||
if (environmentMin && environmentMax) {
|
if (environmentMin && environmentMax) {
|
||||||
return Number(
|
return Number(
|
||||||
Number(environmentMin) < Number(environmentMax)
|
Number(environmentMin) < Number(environmentMax)
|
||||||
? environmentMax
|
? environmentMax
|
||||||
: environmentMax
|
: environmentMax
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (environmentMin) {
|
if (environmentMin) {
|
||||||
return Number(environmentMin) > (number ?? 0)
|
return Number(environmentMin) > (number ?? 0)
|
||||||
? Number(environmentMin)
|
? Number(environmentMin)
|
||||||
: number ?? 0;
|
: number ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (environmentMax) {
|
if (environmentMax) {
|
||||||
return Number(environmentMax);
|
return Number(environmentMax);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return number ?? 0;
|
return number ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadProxyList(filename: string) {
|
function loadProxyList(filename: string): string[] {
|
||||||
return readFileSync(`${filename}.proxies`)
|
try {
|
||||||
.toString()
|
return readFileSync(`${filename}.proxies`)
|
||||||
.trim()
|
.toString()
|
||||||
.split('\n')
|
.trim()
|
||||||
.map((x) => x.trim());
|
.split('\n')
|
||||||
|
.map(x => x.trim());
|
||||||
|
} catch {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const browser = {
|
const browser = {
|
||||||
isHeadless: envOrBoolean(process.env.HEADLESS),
|
isHeadless: envOrBoolean(process.env.HEADLESS),
|
||||||
isIncognito: envOrBoolean(process.env.INCOGNITO, false),
|
isIncognito: envOrBoolean(process.env.INCOGNITO, false),
|
||||||
isTrusted: envOrBoolean(process.env.BROWSER_TRUSTED, false),
|
isTrusted: envOrBoolean(process.env.BROWSER_TRUSTED, false),
|
||||||
lowBandwidth: envOrBoolean(process.env.LOW_BANDWIDTH, false),
|
lowBandwidth: envOrBoolean(process.env.LOW_BANDWIDTH, false),
|
||||||
maxBackoff: envOrNumberMax(
|
maxBackoff: envOrNumberMax(
|
||||||
process.env.PAGE_BACKOFF_MIN,
|
process.env.PAGE_BACKOFF_MIN,
|
||||||
process.env.PAGE_BACKOFF_MAX,
|
process.env.PAGE_BACKOFF_MAX,
|
||||||
3600000
|
3600000
|
||||||
),
|
),
|
||||||
maxSleep: envOrNumberMax(
|
maxSleep: envOrNumberMax(
|
||||||
process.env.PAGE_SLEEP_MIN,
|
process.env.PAGE_SLEEP_MIN,
|
||||||
process.env.PAGE_SLEEP_MAX,
|
process.env.PAGE_SLEEP_MAX,
|
||||||
10000
|
10000
|
||||||
),
|
),
|
||||||
minBackoff: envOrNumberMin(
|
minBackoff: envOrNumberMin(
|
||||||
process.env.PAGE_BACKOFF_MIN,
|
process.env.PAGE_BACKOFF_MIN,
|
||||||
process.env.PAGE_BACKOFF_MAX,
|
process.env.PAGE_BACKOFF_MAX,
|
||||||
10000
|
10000
|
||||||
),
|
),
|
||||||
minSleep: envOrNumberMin(
|
minSleep: envOrNumberMin(
|
||||||
process.env.PAGE_SLEEP_MIN,
|
process.env.PAGE_SLEEP_MIN,
|
||||||
process.env.PAGE_SLEEP_MAX,
|
process.env.PAGE_SLEEP_MAX,
|
||||||
5000
|
5000
|
||||||
),
|
),
|
||||||
open: envOrBoolean(process.env.OPEN_BROWSER),
|
open: envOrBoolean(process.env.OPEN_BROWSER),
|
||||||
userAgent: ''
|
userAgent: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
const docker = envOrBoolean(process.env.DOCKER, false);
|
const docker = envOrBoolean(process.env.DOCKER, false);
|
||||||
@@ -199,262 +204,254 @@ const docker = envOrBoolean(process.env.DOCKER, false);
|
|||||||
const logLevel = envOrString(process.env.LOG_LEVEL, 'info');
|
const logLevel = envOrString(process.env.LOG_LEVEL, 'info');
|
||||||
|
|
||||||
const notifications = {
|
const notifications = {
|
||||||
desktop: process.env.DESKTOP_NOTIFICATIONS === 'true',
|
desktop: process.env.DESKTOP_NOTIFICATIONS === 'true',
|
||||||
discord: {
|
discord: {
|
||||||
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
|
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
|
||||||
notifyGroupSeries: {
|
notifyGroupSeries: {
|
||||||
'3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI),
|
'3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI),
|
||||||
3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070),
|
3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070),
|
||||||
3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080),
|
3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080),
|
||||||
3090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3090),
|
3090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3090),
|
||||||
'captcha-deterrent': [],
|
'captcha-deterrent': [],
|
||||||
darkhero: envOrArray(process.env.DISCORD_NOTIFY_GROUP_DARKHERO),
|
darkhero: envOrArray(process.env.DISCORD_NOTIFY_GROUP_DARKHERO),
|
||||||
rx6800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800),
|
rx6800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800),
|
||||||
rx6800xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800XT),
|
rx6800xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6800XT),
|
||||||
rx6900xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6900XT),
|
rx6900xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6900XT),
|
||||||
ryzen5600: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5600),
|
ryzen5600: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5600),
|
||||||
ryzen5800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5800),
|
ryzen5800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5800),
|
||||||
ryzen5900: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5900),
|
ryzen5900: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5900),
|
||||||
ryzen5950: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5950),
|
ryzen5950: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5950),
|
||||||
sf: envOrArray(process.env.DISCORD_NOTIFY_GROUP_CORSAIR_SF),
|
sf: envOrArray(process.env.DISCORD_NOTIFY_GROUP_CORSAIR_SF),
|
||||||
sonyps5c: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5C),
|
sonyps5c: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5C),
|
||||||
sonyps5de: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5DE),
|
sonyps5de: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5DE),
|
||||||
'test:series': envOrArray(process.env.DISCORD_NOTIFY_GROUP_TEST),
|
'test:series': envOrArray(process.env.DISCORD_NOTIFY_GROUP_TEST),
|
||||||
xboxss: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSS),
|
xboxss: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSS),
|
||||||
xboxsx: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSX)
|
xboxsx: envOrArray(process.env.DISCORD_NOTIFY_GROUP_XBOXSX),
|
||||||
},
|
},
|
||||||
webhooks: envOrArray(process.env.DISCORD_WEB_HOOK)
|
webhooks: envOrArray(process.env.DISCORD_WEB_HOOK),
|
||||||
},
|
},
|
||||||
email: {
|
email: {
|
||||||
password: envOrString(process.env.EMAIL_PASSWORD),
|
password: envOrString(process.env.EMAIL_PASSWORD),
|
||||||
smtpAddress: envOrString(process.env.SMTP_ADDRESS),
|
smtpAddress: envOrString(process.env.SMTP_ADDRESS),
|
||||||
smtpPort: envOrNumber(process.env.SMTP_PORT, 25),
|
smtpPort: envOrNumber(process.env.SMTP_PORT, 25),
|
||||||
to: envOrString(
|
to: envOrString(
|
||||||
process.env.EMAIL_TO,
|
process.env.EMAIL_TO,
|
||||||
envOrString(process.env.EMAIL_USERNAME)
|
envOrString(process.env.EMAIL_USERNAME)
|
||||||
),
|
),
|
||||||
username: envOrString(process.env.EMAIL_USERNAME)
|
username: envOrString(process.env.EMAIL_USERNAME),
|
||||||
},
|
},
|
||||||
mqtt: {
|
mqtt: {
|
||||||
broker: envOrString(process.env.MQTT_BROKER_ADDRESS),
|
broker: envOrString(process.env.MQTT_BROKER_ADDRESS),
|
||||||
clientId: envOrString(process.env.MQTT_CLIENT_ID),
|
clientId: envOrString(process.env.MQTT_CLIENT_ID),
|
||||||
password: envOrString(process.env.MQTT_PASSWORD),
|
password: envOrString(process.env.MQTT_PASSWORD),
|
||||||
port: envOrNumber(process.env.MQTT_BROKER_PORT, 1883),
|
port: envOrNumber(process.env.MQTT_BROKER_PORT, 1883),
|
||||||
qos: envOrNumber(process.env.MQTT_QOS, 0),
|
qos: envOrNumber(process.env.MQTT_QOS, 0),
|
||||||
topic: envOrString(process.env.MQTT_TOPIC, 'streetmerchant/alert'),
|
topic: envOrString(process.env.MQTT_TOPIC, 'streetmerchant/alert'),
|
||||||
username: envOrString(process.env.MQTT_USERNAME)
|
username: envOrString(process.env.MQTT_USERNAME),
|
||||||
},
|
},
|
||||||
pagerduty: {
|
pagerduty: {
|
||||||
integrationKey: envOrString(process.env.PAGERDUTY_INTEGRATION_KEY),
|
integrationKey: envOrString(process.env.PAGERDUTY_INTEGRATION_KEY),
|
||||||
severity: envOrString(process.env.PAGERDUTY_SEVERITY, 'info')
|
severity: envOrString(process.env.PAGERDUTY_SEVERITY, 'info'),
|
||||||
},
|
},
|
||||||
philips_hue: {
|
philips_hue: {
|
||||||
accessToken: envOrString(process.env.PHILIPS_HUE_CLOUD_ACCESS_TOKEN),
|
accessToken: envOrString(process.env.PHILIPS_HUE_CLOUD_ACCESS_TOKEN),
|
||||||
apiKey: envOrString(process.env.PHILIPS_HUE_API_KEY),
|
apiKey: envOrString(process.env.PHILIPS_HUE_API_KEY),
|
||||||
bridgeIp: envOrString(process.env.PHILIPS_HUE_LAN_BRIDGE_IP),
|
bridgeIp: envOrString(process.env.PHILIPS_HUE_LAN_BRIDGE_IP),
|
||||||
clientId: envOrString(process.env.PHILIPS_HUE_CLOUD_CLIENT_ID),
|
clientId: envOrString(process.env.PHILIPS_HUE_CLOUD_CLIENT_ID),
|
||||||
clientSecret: envOrString(process.env.PHILIPS_HUE_CLOUD_CLIENT_SECRET),
|
clientSecret: envOrString(process.env.PHILIPS_HUE_CLOUD_CLIENT_SECRET),
|
||||||
lightColor: envOrString(process.env.PHILIPS_HUE_LIGHT_COLOR),
|
lightColor: envOrString(process.env.PHILIPS_HUE_LIGHT_COLOR),
|
||||||
lightIds: envOrString(process.env.PHILIPS_HUE_LIGHT_IDS),
|
lightIds: envOrString(process.env.PHILIPS_HUE_LIGHT_IDS),
|
||||||
lightPattern: envOrString(process.env.PHILIPS_HUE_LIGHT_PATTERN),
|
lightPattern: envOrString(process.env.PHILIPS_HUE_LIGHT_PATTERN),
|
||||||
refreshToken: envOrString(process.env.PHILIPS_HUE_CLOUD_REFRESH_TOKEN),
|
refreshToken: envOrString(process.env.PHILIPS_HUE_CLOUD_REFRESH_TOKEN),
|
||||||
remoteApiUsername: envOrString(process.env.PHILIPS_HUE_API_KEY)
|
remoteApiUsername: envOrString(process.env.PHILIPS_HUE_API_KEY),
|
||||||
},
|
},
|
||||||
phone: {
|
phone: {
|
||||||
availableCarriers: new Map([
|
availableCarriers: new Map([
|
||||||
['att', 'txt.att.net'],
|
['att', 'txt.att.net'],
|
||||||
['attgo', 'mms.att.net'],
|
['attgo', 'mms.att.net'],
|
||||||
['bell', 'txt.bell.ca'],
|
['bell', 'txt.bell.ca'],
|
||||||
['fido', 'fido.ca'],
|
['fido', 'fido.ca'],
|
||||||
['google', 'msg.fi.google.com'],
|
['google', 'msg.fi.google.com'],
|
||||||
['koodo', 'msg.koodomobile.com'],
|
['koodo', 'msg.koodomobile.com'],
|
||||||
['mint', 'mailmymobile.net'],
|
['mint', 'mailmymobile.net'],
|
||||||
['rogers', 'pcs.rogers.com'],
|
['rogers', 'pcs.rogers.com'],
|
||||||
['sprint', 'messaging.sprintpcs.com'],
|
['sprint', 'messaging.sprintpcs.com'],
|
||||||
['telus', 'msg.telus.com'],
|
['telus', 'msg.telus.com'],
|
||||||
['tmobile', 'tmomail.net'],
|
['tmobile', 'tmomail.net'],
|
||||||
['verizon', 'vtext.com'],
|
['verizon', 'vtext.com'],
|
||||||
['virgin', 'vmobl.com'],
|
['virgin', 'vmobl.com'],
|
||||||
['virgin-ca', 'vmobile.ca'],
|
['virgin-ca', 'vmobile.ca'],
|
||||||
['visible', 'vtext.com']
|
['visible', 'vtext.com'],
|
||||||
]),
|
]),
|
||||||
carrier: envOrArray(process.env.PHONE_CARRIER),
|
carrier: envOrArray(process.env.PHONE_CARRIER),
|
||||||
number: envOrArray(process.env.PHONE_NUMBER)
|
number: envOrArray(process.env.PHONE_NUMBER),
|
||||||
},
|
},
|
||||||
playSound: envOrString(process.env.PLAY_SOUND),
|
playSound: envOrString(process.env.PLAY_SOUND),
|
||||||
pushbullet: envOrString(process.env.PUSHBULLET),
|
pushbullet: envOrString(process.env.PUSHBULLET),
|
||||||
pushover: {
|
pushover: {
|
||||||
expire: envOrNumber(process.env.PUSHOVER_EXPIRE),
|
expire: envOrNumber(process.env.PUSHOVER_EXPIRE),
|
||||||
priority: envOrNumber(process.env.PUSHOVER_PRIORITY),
|
priority: envOrNumber(process.env.PUSHOVER_PRIORITY),
|
||||||
retry: envOrNumber(process.env.PUSHOVER_RETRY),
|
retry: envOrNumber(process.env.PUSHOVER_RETRY),
|
||||||
token: envOrString(process.env.PUSHOVER_TOKEN),
|
token: envOrString(process.env.PUSHOVER_TOKEN),
|
||||||
username: envOrString(process.env.PUSHOVER_USER)
|
username: envOrString(process.env.PUSHOVER_USER),
|
||||||
},
|
},
|
||||||
redis: {
|
redis: {
|
||||||
url: envOrString(process.env.REDIS_URL)
|
url: envOrString(process.env.REDIS_URL),
|
||||||
},
|
},
|
||||||
slack: {
|
slack: {
|
||||||
channel: envOrString(process.env.SLACK_CHANNEL),
|
channel: envOrString(process.env.SLACK_CHANNEL),
|
||||||
token: envOrString(process.env.SLACK_TOKEN)
|
token: envOrString(process.env.SLACK_TOKEN),
|
||||||
},
|
},
|
||||||
soundPlayer: envOrString(process.env.SOUND_PLAYER),
|
soundPlayer: envOrString(process.env.SOUND_PLAYER),
|
||||||
telegram: {
|
telegram: {
|
||||||
accessToken: envOrString(process.env.TELEGRAM_ACCESS_TOKEN),
|
accessToken: envOrString(process.env.TELEGRAM_ACCESS_TOKEN),
|
||||||
chatId: envOrArray(process.env.TELEGRAM_CHAT_ID)
|
chatId: envOrArray(process.env.TELEGRAM_CHAT_ID),
|
||||||
},
|
},
|
||||||
twilio: {
|
twilio: {
|
||||||
accountSid: envOrString(process.env.TWILIO_ACCOUNT_SID),
|
accountSid: envOrString(process.env.TWILIO_ACCOUNT_SID),
|
||||||
authToken: envOrString(process.env.TWILIO_AUTH_TOKEN),
|
authToken: envOrString(process.env.TWILIO_AUTH_TOKEN),
|
||||||
from: envOrString(process.env.TWILIO_FROM_NUMBER),
|
from: envOrString(process.env.TWILIO_FROM_NUMBER),
|
||||||
to: envOrString(process.env.TWILIO_TO_NUMBER)
|
to: envOrString(process.env.TWILIO_TO_NUMBER),
|
||||||
},
|
},
|
||||||
twitch: {
|
twitch: {
|
||||||
accessToken: envOrString(process.env.TWITCH_ACCESS_TOKEN),
|
accessToken: envOrString(process.env.TWITCH_ACCESS_TOKEN),
|
||||||
channel: envOrString(process.env.TWITCH_CHANNEL),
|
channel: envOrString(process.env.TWITCH_CHANNEL),
|
||||||
clientId: envOrString(process.env.TWITCH_CLIENT_ID),
|
clientId: envOrString(process.env.TWITCH_CLIENT_ID),
|
||||||
clientSecret: envOrString(process.env.TWITCH_CLIENT_SECRET),
|
clientSecret: envOrString(process.env.TWITCH_CLIENT_SECRET),
|
||||||
refreshToken: envOrString(process.env.TWITCH_REFRESH_TOKEN)
|
refreshToken: envOrString(process.env.TWITCH_REFRESH_TOKEN),
|
||||||
},
|
},
|
||||||
twitter: {
|
twitter: {
|
||||||
accessTokenKey: envOrString(process.env.TWITTER_ACCESS_TOKEN_KEY),
|
accessTokenKey: envOrString(process.env.TWITTER_ACCESS_TOKEN_KEY),
|
||||||
accessTokenSecret: envOrString(process.env.TWITTER_ACCESS_TOKEN_SECRET),
|
accessTokenSecret: envOrString(process.env.TWITTER_ACCESS_TOKEN_SECRET),
|
||||||
consumerKey: envOrString(process.env.TWITTER_CONSUMER_KEY),
|
consumerKey: envOrString(process.env.TWITTER_CONSUMER_KEY),
|
||||||
consumerSecret: envOrString(process.env.TWITTER_CONSUMER_SECRET),
|
consumerSecret: envOrString(process.env.TWITTER_CONSUMER_SECRET),
|
||||||
tweetTags: envOrString(process.env.TWITTER_TWEET_TAGS)
|
tweetTags: envOrString(process.env.TWITTER_TWEET_TAGS),
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const nvidia = {
|
const nvidia = {
|
||||||
addToCardAttempts: envOrNumber(process.env.NVIDIA_ADD_TO_CART_ATTEMPTS, 10),
|
addToCardAttempts: envOrNumber(process.env.NVIDIA_ADD_TO_CART_ATTEMPTS, 10),
|
||||||
sessionTtl: envOrNumber(process.env.NVIDIA_SESSION_TTL, 60000)
|
sessionTtl: envOrNumber(process.env.NVIDIA_SESSION_TTL, 60000),
|
||||||
};
|
};
|
||||||
|
|
||||||
const page = {
|
const page = {
|
||||||
height: 1080,
|
height: 1080,
|
||||||
inStockWaitTime: envOrNumber(process.env.IN_STOCK_WAIT_TIME),
|
inStockWaitTime: envOrNumber(process.env.IN_STOCK_WAIT_TIME),
|
||||||
screenshot: envOrBoolean(process.env.SCREENSHOT),
|
screenshot: envOrBoolean(process.env.SCREENSHOT),
|
||||||
timeout: envOrNumber(process.env.PAGE_TIMEOUT, 30000),
|
timeout: envOrNumber(process.env.PAGE_TIMEOUT, 30000),
|
||||||
width: 1920
|
width: 1920,
|
||||||
};
|
};
|
||||||
|
|
||||||
const proxy = {
|
const proxy = {
|
||||||
address: envOrString(process.env.PROXY_ADDRESS),
|
address: envOrString(process.env.PROXY_ADDRESS),
|
||||||
port: envOrNumber(process.env.PROXY_PORT, 80),
|
port: envOrNumber(process.env.PROXY_PORT, 80),
|
||||||
protocol: envOrString(process.env.PROXY_PROTOCOL, 'http')
|
protocol: envOrString(process.env.PROXY_PROTOCOL, 'http'),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Check for deprecated configuration values
|
// Check for deprecated configuration values
|
||||||
if (process.env.MAX_PRICE) {
|
if (process.env.MAX_PRICE) {
|
||||||
console.warn(
|
console.warn(
|
||||||
'ℹ MAX_PRICE is deprecated, please use MAX_PRICE_SERIES_{{series}}'
|
'ℹ MAX_PRICE is deprecated, please use MAX_PRICE_SERIES_{{series}}'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const store = {
|
const store = {
|
||||||
autoAddToCart: envOrBoolean(process.env.AUTO_ADD_TO_CART, true),
|
autoAddToCart: envOrBoolean(process.env.AUTO_ADD_TO_CART, true),
|
||||||
country: envOrString(process.env.COUNTRY, 'usa'),
|
country: envOrString(process.env.COUNTRY, 'usa'),
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
series: {
|
series: {
|
||||||
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
|
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
|
||||||
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
|
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
|
||||||
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
|
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
|
||||||
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
|
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
|
||||||
'captcha-deterrent': 0,
|
'captcha-deterrent': 0,
|
||||||
darkhero: envOrNumber(process.env.MAX_PRICE_SERIES_DARKHERO),
|
darkhero: envOrNumber(process.env.MAX_PRICE_SERIES_DARKHERO),
|
||||||
rx6800: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800),
|
rx6800: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800),
|
||||||
rx6800xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800XT),
|
rx6800xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800XT),
|
||||||
rx6900xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6900XT),
|
rx6900xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6900XT),
|
||||||
ryzen5600: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5600),
|
ryzen5600: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5600),
|
||||||
ryzen5800: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5800),
|
ryzen5800: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5800),
|
||||||
ryzen5900: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5900),
|
ryzen5900: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5900),
|
||||||
ryzen5950: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5950),
|
ryzen5950: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5950),
|
||||||
sf: envOrNumber(process.env.MAX_PRICE_SERIES_CORSAIR_SF),
|
sf: envOrNumber(process.env.MAX_PRICE_SERIES_CORSAIR_SF),
|
||||||
sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C),
|
sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C),
|
||||||
sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE),
|
sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE),
|
||||||
'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST),
|
'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST),
|
||||||
xboxss: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSS),
|
xboxss: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSS),
|
||||||
xboxsx: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSX)
|
xboxsx: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSX),
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
microCenterLocation: envOrArray(process.env.MICROCENTER_LOCATION, ['web']),
|
microCenterLocation: envOrArray(process.env.MICROCENTER_LOCATION, ['web']),
|
||||||
showOnlyBrands: envOrArray(process.env.SHOW_ONLY_BRANDS),
|
showOnlyBrands: envOrArray(process.env.SHOW_ONLY_BRANDS),
|
||||||
showOnlyModels: envOrArray(process.env.SHOW_ONLY_MODELS).map((entry) => {
|
showOnlyModels: envOrArray(process.env.SHOW_ONLY_MODELS).map(entry => {
|
||||||
const [name, series] = entry.match(/[^:]+/g) ?? [];
|
const [name, series] = entry.match(/[^:]+/g) ?? [];
|
||||||
return {
|
return {
|
||||||
name: envOrString(name),
|
name: envOrString(name),
|
||||||
series: envOrString(series)
|
series: envOrString(series),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
|
showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
|
||||||
'3060ti',
|
'3060ti',
|
||||||
'3070',
|
'3070',
|
||||||
'3080',
|
'3080',
|
||||||
'3090',
|
'3090',
|
||||||
'rx6800',
|
'rx6800',
|
||||||
'rx6800xt',
|
'rx6800xt',
|
||||||
'rx6900xt',
|
'rx6900xt',
|
||||||
'ryzen5600',
|
'ryzen5600',
|
||||||
'ryzen5800',
|
'ryzen5800',
|
||||||
'ryzen5900',
|
'ryzen5900',
|
||||||
'ryzen5950',
|
'ryzen5950',
|
||||||
'sonyps5c',
|
'sonyps5c',
|
||||||
'sonyps5de',
|
'sonyps5de',
|
||||||
'xboxss',
|
'xboxss',
|
||||||
'xboxsx'
|
'xboxsx',
|
||||||
]),
|
]),
|
||||||
stores: envOrArray(process.env.STORES, ['amazon', 'bestbuy']).map(
|
stores: envOrArray(process.env.STORES, ['amazon', 'bestbuy']).map(entry => {
|
||||||
(entry) => {
|
const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? [];
|
||||||
const [name, minPageSleep, maxPageSleep] =
|
|
||||||
entry.match(/[^:]+/g) ?? [];
|
|
||||||
|
|
||||||
let proxyList;
|
let proxyList = loadProxyList(name);
|
||||||
try {
|
|
||||||
proxyList = loadProxyList(name);
|
|
||||||
} catch {}
|
|
||||||
|
|
||||||
if (!proxyList) {
|
if (proxyList.length === 0) {
|
||||||
try {
|
proxyList = loadProxyList('global');
|
||||||
proxyList = loadProxyList('global');
|
}
|
||||||
} catch {}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
maxPageSleep: envOrNumberMax(
|
maxPageSleep: envOrNumberMax(
|
||||||
minPageSleep,
|
minPageSleep,
|
||||||
maxPageSleep,
|
maxPageSleep,
|
||||||
browser.maxSleep
|
browser.maxSleep
|
||||||
),
|
),
|
||||||
minPageSleep: envOrNumberMin(
|
minPageSleep: envOrNumberMin(
|
||||||
minPageSleep,
|
minPageSleep,
|
||||||
maxPageSleep,
|
maxPageSleep,
|
||||||
browser.minSleep
|
browser.minSleep
|
||||||
),
|
),
|
||||||
name: envOrString(name),
|
name: envOrString(name),
|
||||||
proxyList
|
proxyList,
|
||||||
};
|
};
|
||||||
}
|
}),
|
||||||
)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export const defaultStoreData = {
|
export const defaultStoreData = {
|
||||||
maxPageSleep: browser.maxSleep,
|
maxPageSleep: browser.maxSleep,
|
||||||
minPageSleep: browser.minSleep
|
minPageSleep: browser.minSleep,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const config = {
|
export const config = {
|
||||||
browser,
|
browser,
|
||||||
docker,
|
docker,
|
||||||
logLevel,
|
logLevel,
|
||||||
notifications,
|
notifications,
|
||||||
nvidia,
|
nvidia,
|
||||||
page,
|
page,
|
||||||
proxy,
|
proxy,
|
||||||
store
|
store,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function setConfig(newConfig: any) {
|
export function setConfig(newConfig: any) {
|
||||||
const writeConfig = config as any;
|
const writeConfig = config as any;
|
||||||
for (const key of Object.keys(newConfig)) {
|
for (const key of Object.keys(newConfig)) {
|
||||||
writeConfig[key] = newConfig[key];
|
writeConfig[key] = newConfig[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+62
-62
@@ -1,3 +1,4 @@
|
|||||||
|
import * as Process from 'process';
|
||||||
import {config} from './config'; // Needs to be loaded first
|
import {config} from './config'; // Needs to be loaded first
|
||||||
import {startAPIServer, stopAPIServer} from './web'; // eslint-disable-line sort-imports
|
import {startAPIServer, stopAPIServer} from './web'; // eslint-disable-line sort-imports
|
||||||
import {Browser} from 'puppeteer';
|
import {Browser} from 'puppeteer';
|
||||||
@@ -16,90 +17,89 @@ let browser: Browser | undefined;
|
|||||||
* Starts the bot.
|
* Starts the bot.
|
||||||
*/
|
*/
|
||||||
async function main() {
|
async function main() {
|
||||||
const args: string[] = [];
|
const args: string[] = [];
|
||||||
|
|
||||||
// Skip Chromium Linux Sandbox
|
// Skip Chromium Linux Sandbox
|
||||||
// https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#setting-up-chrome-linux-sandbox
|
// https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#setting-up-chrome-linux-sandbox
|
||||||
if (config.browser.isTrusted) {
|
if (config.browser.isTrusted) {
|
||||||
args.push('--no-sandbox');
|
args.push('--no-sandbox');
|
||||||
args.push('--disable-setuid-sandbox');
|
args.push('--disable-setuid-sandbox');
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#tips
|
// https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#tips
|
||||||
// https://stackoverflow.com/questions/48230901/docker-alpine-with-node-js-and-chromium-headless-puppeter-failed-to-launch-c
|
// https://stackoverflow.com/questions/48230901/docker-alpine-with-node-js-and-chromium-headless-puppeter-failed-to-launch-c
|
||||||
if (config.docker) {
|
if (config.docker) {
|
||||||
args.push('--disable-dev-shm-usage');
|
args.push('--disable-dev-shm-usage');
|
||||||
args.push('--no-sandbox');
|
args.push('--no-sandbox');
|
||||||
args.push('--disable-setuid-sandbox');
|
args.push('--disable-setuid-sandbox');
|
||||||
args.push('--headless');
|
args.push('--headless');
|
||||||
args.push('--disable-gpu');
|
args.push('--disable-gpu');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the address of the proxy server if defined
|
// Add the address of the proxy server if defined
|
||||||
if (config.proxy.address) {
|
if (config.proxy.address) {
|
||||||
args.push(
|
args.push(
|
||||||
`--proxy-server=${config.proxy.protocol}://${config.proxy.address}:${config.proxy.port}`
|
`--proxy-server=${config.proxy.protocol}://${config.proxy.address}:${config.proxy.port}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.length > 0) {
|
if (args.length > 0) {
|
||||||
logger.info('ℹ puppeteer config: ', args);
|
logger.info('ℹ puppeteer config: ', args);
|
||||||
}
|
}
|
||||||
|
|
||||||
await stop();
|
await stop();
|
||||||
browser = await puppeteer.launch({
|
browser = await puppeteer.launch({
|
||||||
args,
|
args,
|
||||||
defaultViewport: {
|
defaultViewport: {
|
||||||
height: config.page.height,
|
height: config.page.height,
|
||||||
width: config.page.width
|
width: config.page.width,
|
||||||
},
|
},
|
||||||
headless: config.browser.isHeadless
|
headless: config.browser.isHeadless,
|
||||||
});
|
});
|
||||||
|
|
||||||
config.browser.userAgent = await browser.userAgent();
|
config.browser.userAgent = await browser.userAgent();
|
||||||
|
|
||||||
for (const store of storeList.values()) {
|
for (const store of storeList.values()) {
|
||||||
logger.debug('store links', {meta: {links: store.links}});
|
logger.debug('store links', {meta: {links: store.links}});
|
||||||
if (store.setupAction !== undefined) {
|
if (store.setupAction !== undefined) {
|
||||||
store.setupAction(browser);
|
store.setupAction(browser);
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(tryLookupAndLoop, getSleepTime(store), browser, store);
|
setTimeout(tryLookupAndLoop, getSleepTime(store), browser, store);
|
||||||
}
|
}
|
||||||
|
|
||||||
await startAPIServer();
|
await startAPIServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
async function stop() {
|
async function stop() {
|
||||||
await stopAPIServer();
|
await stopAPIServer();
|
||||||
|
|
||||||
if (browser) {
|
if (browser) {
|
||||||
// Use temporary swap variable to avoid any race condition
|
// Use temporary swap variable to avoid any race condition
|
||||||
const browserTemporary = browser;
|
const browserTemporary = browser;
|
||||||
browser = undefined;
|
browser = undefined;
|
||||||
await browserTemporary.close();
|
await browserTemporary.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function stopAndExit() {
|
async function stopAndExit() {
|
||||||
await stop();
|
await stop();
|
||||||
// eslint-disable-next-line unicorn/no-process-exit
|
Process.exit(0);
|
||||||
process.exit(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will continually run until user interferes.
|
* Will continually run until user interferes.
|
||||||
*/
|
*/
|
||||||
async function loopMain() {
|
async function loopMain() {
|
||||||
try {
|
try {
|
||||||
await main();
|
await main();
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error(
|
logger.error(
|
||||||
'✖ something bad happened, resetting streetmerchant in 5 seconds',
|
'✖ something bad happened, resetting streetmerchant in 5 seconds',
|
||||||
error
|
error
|
||||||
);
|
);
|
||||||
setTimeout(loopMain, 5000);
|
setTimeout(loopMain, 5000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void loopMain();
|
void loopMain();
|
||||||
|
|||||||
+211
-216
@@ -3,254 +3,249 @@ import chalk from 'chalk';
|
|||||||
import {config} from './config';
|
import {config} from './config';
|
||||||
import winston from 'winston';
|
import winston from 'winston';
|
||||||
|
|
||||||
const prettyJson = winston.format.printf((info) => {
|
const prettyJson = winston.format.printf(info => {
|
||||||
const timestamp = new Date().toLocaleTimeString();
|
const timestamp = new Date().toLocaleTimeString();
|
||||||
|
|
||||||
let out = `${chalk.grey(`[${timestamp}]`)} ${info.level} ${chalk.grey(
|
let out = `${chalk.grey(`[${timestamp}]`)} ${info.level} ${chalk.grey(
|
||||||
'::'
|
'::'
|
||||||
)} ${info.message}`;
|
)} ${info.message}`;
|
||||||
|
|
||||||
if (Object.keys(info.metadata).length > 0) {
|
if (Object.keys(info.metadata).length > 0) {
|
||||||
out = `${out} ${chalk.magenta(JSON.stringify(info.metadata, null, 2))}`;
|
out = `${out} ${chalk.magenta(JSON.stringify(info.metadata, null, 2))}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
});
|
});
|
||||||
|
|
||||||
export const logger = winston.createLogger({
|
export const logger = winston.createLogger({
|
||||||
format: winston.format.combine(
|
format: winston.format.combine(
|
||||||
winston.format.colorize(),
|
winston.format.colorize(),
|
||||||
winston.format.metadata({
|
winston.format.metadata({
|
||||||
fillExcept: ['level', 'message', 'timestamp']
|
fillExcept: ['level', 'message', 'timestamp'],
|
||||||
}),
|
}),
|
||||||
prettyJson
|
prettyJson
|
||||||
),
|
),
|
||||||
level: config.logLevel,
|
level: config.logLevel,
|
||||||
transports: [new winston.transports.Console({})]
|
transports: [new winston.transports.Console({})],
|
||||||
});
|
});
|
||||||
|
|
||||||
export const Print = {
|
export const Print = {
|
||||||
backoff(
|
backoff(
|
||||||
link: Link,
|
link: Link,
|
||||||
store: Store,
|
store: Store,
|
||||||
parameters: {delay: number; statusCode: number},
|
parameters: {delay: number; statusCode: number},
|
||||||
color?: boolean
|
color?: boolean
|
||||||
): string {
|
): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow(
|
chalk.yellow(
|
||||||
`BACKOFF DELAY status=${parameters.statusCode} delay=${parameters.delay}`
|
`BACKOFF DELAY status=${parameters.statusCode} delay=${parameters.delay}`
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: BACKOFF DELAY status=${
|
return `✖ ${buildProductString(link, store)} :: BACKOFF DELAY status=${
|
||||||
parameters.statusCode
|
parameters.statusCode
|
||||||
} delay=${parameters.delay}`;
|
} delay=${parameters.delay}`;
|
||||||
},
|
},
|
||||||
badStatusCode(
|
badStatusCode(
|
||||||
link: Link,
|
link: Link,
|
||||||
store: Store,
|
store: Store,
|
||||||
statusCode: number,
|
statusCode: number,
|
||||||
color?: boolean
|
color?: boolean
|
||||||
): string {
|
): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow(`STATUS CODE ERROR ${statusCode}`)
|
chalk.yellow(`STATUS CODE ERROR ${statusCode}`)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(
|
return `✖ ${buildProductString(
|
||||||
link,
|
link,
|
||||||
store
|
store
|
||||||
)} :: STATUS CODE ERROR ${statusCode}`;
|
)} :: STATUS CODE ERROR ${statusCode}`;
|
||||||
},
|
},
|
||||||
bannedSeller(link: Link, store: Store, color?: boolean): string {
|
bannedSeller(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('BANNED SELLER')
|
chalk.yellow('BANNED SELLER')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: BANNED SELLER`;
|
return `✖ ${buildProductString(link, store)} :: BANNED SELLER`;
|
||||||
},
|
},
|
||||||
captcha(link: Link, store: Store, color?: boolean): string {
|
captcha(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('CAPTCHA')
|
chalk.yellow('CAPTCHA')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: CAPTCHA`;
|
return `✖ ${buildProductString(link, store)} :: CAPTCHA`;
|
||||||
},
|
},
|
||||||
cloudflare(link: Link, store: Store, color?: boolean): string {
|
cloudflare(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('CLOUDFLARE, WAITING')
|
chalk.yellow('CLOUDFLARE, WAITING')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: CLOUDFLARE, WAITING`;
|
return `✖ ${buildProductString(link, store)} :: CLOUDFLARE, WAITING`;
|
||||||
},
|
},
|
||||||
inStock(link: Link, store: Store, color?: boolean, sms?: boolean): string {
|
inStock(link: Link, store: Store, color?: boolean, sms?: boolean): string {
|
||||||
const productString = `${buildProductString(link, store)} :: IN STOCK`;
|
const productString = `${buildProductString(link, store)} :: IN STOCK`;
|
||||||
|
|
||||||
if (color) {
|
if (color) {
|
||||||
return chalk.bgGreen.white.bold(`🚀🚨 ${productString} 🚨🚀`);
|
return chalk.bgGreen.white.bold(`🚀🚨 ${productString} 🚨🚀`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sms) {
|
if (sms) {
|
||||||
return productString;
|
return productString;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `🚀🚨 ${productString} 🚨🚀`;
|
return `🚀🚨 ${productString} 🚨🚀`;
|
||||||
},
|
},
|
||||||
inStockWaiting(link: Link, store: Store, color?: boolean): string {
|
inStockWaiting(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'ℹ ' +
|
'ℹ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('IN STOCK, WAITING')
|
chalk.yellow('IN STOCK, WAITING')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `ℹ ${buildProductString(link, store)} :: IN STOCK, WAITING`;
|
return `ℹ ${buildProductString(link, store)} :: IN STOCK, WAITING`;
|
||||||
},
|
},
|
||||||
maxPrice(
|
maxPrice(
|
||||||
link: Link,
|
link: Link,
|
||||||
store: Store,
|
store: Store,
|
||||||
maxPrice: number,
|
maxPrice: number,
|
||||||
color?: boolean
|
color?: boolean
|
||||||
): string {
|
): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow(
|
chalk.yellow(`PRICE ${link.price ?? ''} EXCEEDS LIMIT ${maxPrice}`)
|
||||||
`PRICE ${link.price ?? ''} EXCEEDS LIMIT ${maxPrice}`
|
);
|
||||||
)
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: PRICE ${
|
return `✖ ${buildProductString(link, store)} :: PRICE ${
|
||||||
link.price ?? ''
|
link.price ?? ''
|
||||||
} EXCEEDS LIMIT ${maxPrice}`;
|
} EXCEEDS LIMIT ${maxPrice}`;
|
||||||
},
|
},
|
||||||
message(
|
message(
|
||||||
message: string,
|
message: string,
|
||||||
topic: string,
|
topic: string,
|
||||||
store: Store,
|
store: Store,
|
||||||
color?: boolean
|
color?: boolean
|
||||||
): string {
|
): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildSetupString(topic, store, true) +
|
buildSetupString(topic, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow(message)
|
chalk.yellow(message)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildSetupString(topic, store)} :: ${message}`;
|
return `✖ ${buildSetupString(topic, store)} :: ${message}`;
|
||||||
},
|
},
|
||||||
noResponse(link: Link, store: Store, color?: boolean): string {
|
noResponse(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('NO RESPONSE')
|
chalk.yellow('NO RESPONSE')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: NO RESPONSE`;
|
return `✖ ${buildProductString(link, store)} :: NO RESPONSE`;
|
||||||
},
|
},
|
||||||
outOfStock(link: Link, store: Store, color?: boolean): string {
|
outOfStock(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.red('OUT OF STOCK')
|
chalk.red('OUT OF STOCK')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: OUT OF STOCK`;
|
return `✖ ${buildProductString(link, store)} :: OUT OF STOCK`;
|
||||||
},
|
},
|
||||||
productInStock(link: Link): string {
|
productInStock(link: Link): string {
|
||||||
let productString = `Product Page: ${link.url}`;
|
let productString = `Product Page: ${link.url}`;
|
||||||
if (link.cartUrl)
|
if (link.cartUrl) productString += `\nAdd To Cart Link: ${link.cartUrl}`;
|
||||||
productString += `\nAdd To Cart Link: ${link.cartUrl}`;
|
|
||||||
|
|
||||||
return productString;
|
return productString;
|
||||||
},
|
},
|
||||||
rateLimit(link: Link, store: Store, color?: boolean): string {
|
rateLimit(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('RATE LIMIT EXCEEDED')
|
chalk.yellow('RATE LIMIT EXCEEDED')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(link, store)} :: RATE LIMIT EXCEEDED`;
|
return `✖ ${buildProductString(link, store)} :: RATE LIMIT EXCEEDED`;
|
||||||
},
|
},
|
||||||
recursionLimit(link: Link, store: Store, color?: boolean): string {
|
recursionLimit(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
'✖ ' +
|
'✖ ' +
|
||||||
buildProductString(link, store, true) +
|
buildProductString(link, store, true) +
|
||||||
' :: ' +
|
' :: ' +
|
||||||
chalk.yellow('CLOUDFLARE RETRY LIMIT REACHED, ABORT')
|
chalk.yellow('CLOUDFLARE RETRY LIMIT REACHED, ABORT')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `✖ ${buildProductString(
|
return `✖ ${buildProductString(
|
||||||
link,
|
link,
|
||||||
store
|
store
|
||||||
)} :: CLOUDFLARE RETRY LIMIT REACHED, ABORT`;
|
)} :: CLOUDFLARE RETRY LIMIT REACHED, ABORT`;
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
function buildSetupString(
|
function buildSetupString(
|
||||||
topic: string,
|
topic: string,
|
||||||
store: Store,
|
store: Store,
|
||||||
color?: boolean
|
color?: boolean
|
||||||
): string {
|
): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return chalk.cyan(`[${store.name}]`) + chalk.grey(` [setup (${topic})]`);
|
||||||
chalk.cyan(`[${store.name}]`) + chalk.grey(` [setup (${topic})]`)
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return `[${store.name}] [setup (${topic})]`;
|
return `[${store.name}] [setup (${topic})]`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildProductString(link: Link, store: Store, color?: boolean): string {
|
function buildProductString(link: Link, store: Store, color?: boolean): string {
|
||||||
if (color) {
|
if (color) {
|
||||||
return (
|
return (
|
||||||
chalk.cyan(`[${store.name}]`) +
|
chalk.cyan(`[${store.name}]`) +
|
||||||
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
|
chalk.grey(` [${link.brand} (${link.series})] ${link.model}`)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `[${store.name}] [${link.brand} (${link.series})] ${link.model}`;
|
return `[${store.name}] [${link.brand} (${link.series})] ${link.model}`;
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-15
@@ -7,20 +7,20 @@ import notifier from 'node-notifier';
|
|||||||
const {desktop} = config.notifications;
|
const {desktop} = config.notifications;
|
||||||
|
|
||||||
export function sendDesktopNotification(link: Link, store: Store) {
|
export function sendDesktopNotification(link: Link, store: Store) {
|
||||||
if (desktop) {
|
if (desktop) {
|
||||||
logger.debug('↗ sending desktop notification');
|
logger.debug('↗ sending desktop notification');
|
||||||
(async () => {
|
(async () => {
|
||||||
notifier.notify({
|
notifier.notify({
|
||||||
icon: join(
|
icon: join(
|
||||||
__dirname,
|
__dirname,
|
||||||
'../../docs/assets/images/streetmerchant-logo.png'
|
'../../../docs/assets/images/streetmerchant-logo.png'
|
||||||
),
|
),
|
||||||
message: link.cartUrl ? link.cartUrl : link.url,
|
message: link.cartUrl ? link.cartUrl : link.url,
|
||||||
open: link.cartUrl ? link.cartUrl : link.url,
|
open: link.cartUrl ? link.cartUrl : link.url,
|
||||||
title: Print.inStock(link, store)
|
title: Print.inStock(link, store),
|
||||||
});
|
});
|
||||||
|
|
||||||
logger.info('✔ desktop notification sent');
|
logger.info('✔ desktop notification sent');
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+57
-65
@@ -6,84 +6,76 @@ import {logger} from '../logger';
|
|||||||
const {notifyGroup, webhooks, notifyGroupSeries} = config.notifications.discord;
|
const {notifyGroup, webhooks, notifyGroupSeries} = config.notifications.discord;
|
||||||
|
|
||||||
function getIdAndToken(webhook: string) {
|
function getIdAndToken(webhook: string) {
|
||||||
const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook);
|
const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook);
|
||||||
|
|
||||||
if (!match) {
|
if (!match) {
|
||||||
throw new Error('could not get discord webhook');
|
throw new Error('could not get discord webhook');
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: match[1],
|
id: match[1],
|
||||||
token: match[2]
|
token: match[2],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sendDiscordMessage(link: Link, store: Store) {
|
export function sendDiscordMessage(link: Link, store: Store) {
|
||||||
if (webhooks.length > 0) {
|
if (webhooks.length > 0) {
|
||||||
logger.debug('↗ sending discord message');
|
logger.debug('↗ sending discord message');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
const embed = new Discord.MessageEmbed()
|
const embed = new Discord.MessageEmbed()
|
||||||
.setTitle('_**Stock alert!**_')
|
.setTitle('_**Stock alert!**_')
|
||||||
.setDescription(
|
.setDescription(
|
||||||
'> provided by [streetmerchant](https://github.com/jef/streetmerchant) with :heart:'
|
'> provided by [streetmerchant](https://github.com/jef/streetmerchant) with :heart:'
|
||||||
)
|
)
|
||||||
.setThumbnail(
|
.setThumbnail(
|
||||||
'https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-logo.png'
|
'https://raw.githubusercontent.com/jef/streetmerchant/main/docs/assets/images/streetmerchant-logo.png'
|
||||||
)
|
)
|
||||||
.setColor('#52b788')
|
.setColor('#52b788')
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
embed.addField('Store', store.name, true);
|
embed.addField('Store', store.name, true);
|
||||||
if (link.price)
|
if (link.price)
|
||||||
embed.addField(
|
embed.addField('Price', `${store.currency}${link.price}`, true);
|
||||||
'Price',
|
embed.addField('Product Page', link.url);
|
||||||
`${store.currency}${link.price}`,
|
if (link.cartUrl) embed.addField('Add to Cart', link.cartUrl);
|
||||||
true
|
embed.addField('Brand', link.brand, true);
|
||||||
);
|
embed.addField('Model', link.model, true);
|
||||||
embed.addField('Product Page', link.url);
|
embed.addField('Series', link.series, true);
|
||||||
if (link.cartUrl) embed.addField('Add to Cart', link.cartUrl);
|
|
||||||
embed.addField('Brand', link.brand, true);
|
|
||||||
embed.addField('Model', link.model, true);
|
|
||||||
embed.addField('Series', link.series, true);
|
|
||||||
|
|
||||||
embed.setTimestamp();
|
embed.setTimestamp();
|
||||||
|
|
||||||
let notifyText: string[] = [];
|
let notifyText: string[] = [];
|
||||||
|
|
||||||
if (notifyGroup) {
|
if (notifyGroup) {
|
||||||
notifyText = notifyText.concat(notifyGroup);
|
notifyText = notifyText.concat(notifyGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.keys(notifyGroupSeries).indexOf(link.series) !== 0) {
|
if (Object.keys(notifyGroupSeries).indexOf(link.series) !== 0) {
|
||||||
notifyText = notifyText.concat(
|
notifyText = notifyText.concat(notifyGroupSeries[link.series]);
|
||||||
notifyGroupSeries[link.series]
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const promises = [];
|
const promises = [];
|
||||||
for (const webhook of webhooks) {
|
for (const webhook of webhooks) {
|
||||||
const {id, token} = getIdAndToken(webhook);
|
const {id, token} = getIdAndToken(webhook);
|
||||||
const client = new Discord.WebhookClient(id, token);
|
const client = new Discord.WebhookClient(id, token);
|
||||||
|
|
||||||
promises.push({
|
promises.push({
|
||||||
client,
|
client,
|
||||||
message: client.send(notifyText.join(' '), {
|
message: client.send(notifyText.join(' '), {
|
||||||
embeds: [embed],
|
embeds: [embed],
|
||||||
username: 'streetmerchant'
|
username: 'streetmerchant',
|
||||||
})
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
(await Promise.all(promises)).forEach(({client}) =>
|
(await Promise.all(promises)).forEach(({client}) => client.destroy());
|
||||||
client.destroy()
|
|
||||||
);
|
|
||||||
|
|
||||||
logger.info('✔ discord message sent');
|
logger.info('✔ discord message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't send discord message", error);
|
logger.error("✖ couldn't send discord message", error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+31
-31
@@ -9,47 +9,47 @@ const {email} = config.notifications;
|
|||||||
const transportOptions: any = {};
|
const transportOptions: any = {};
|
||||||
|
|
||||||
if (email.username && (email.password || email.smtpAddress)) {
|
if (email.username && (email.password || email.smtpAddress)) {
|
||||||
transportOptions.auth = {};
|
transportOptions.auth = {};
|
||||||
transportOptions.auth.user = email.username;
|
transportOptions.auth.user = email.username;
|
||||||
transportOptions.auth.pass = email.password;
|
transportOptions.auth.pass = email.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (email.smtpAddress) {
|
if (email.smtpAddress) {
|
||||||
transportOptions.host = email.smtpAddress;
|
transportOptions.host = email.smtpAddress;
|
||||||
transportOptions.port = email.smtpPort;
|
transportOptions.port = email.smtpPort;
|
||||||
} else {
|
} else {
|
||||||
transportOptions.service = 'gmail';
|
transportOptions.service = 'gmail';
|
||||||
}
|
}
|
||||||
|
|
||||||
export const transporter = nodemailer.createTransport({
|
export const transporter = nodemailer.createTransport({
|
||||||
...transportOptions
|
...transportOptions,
|
||||||
});
|
});
|
||||||
|
|
||||||
export function sendEmail(link: Link, store: Store) {
|
export function sendEmail(link: Link, store: Store) {
|
||||||
if (email.username && (email.password || email.smtpAddress)) {
|
if (email.username && (email.password || email.smtpAddress)) {
|
||||||
logger.debug('↗ sending email');
|
logger.debug('↗ sending email');
|
||||||
|
|
||||||
const mailOptions: Mail.Options = {
|
const mailOptions: Mail.Options = {
|
||||||
attachments: link.screenshot
|
attachments: link.screenshot
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
filename: link.screenshot,
|
filename: link.screenshot,
|
||||||
path: `./${link.screenshot}`
|
path: `./${link.screenshot}`,
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
: undefined,
|
: undefined,
|
||||||
from: email.username,
|
from: email.username,
|
||||||
subject: Print.inStock(link, store),
|
subject: Print.inStock(link, store),
|
||||||
text: Print.productInStock(link),
|
text: Print.productInStock(link),
|
||||||
to: email.to
|
to: email.to,
|
||||||
};
|
};
|
||||||
|
|
||||||
transporter.sendMail(mailOptions, (error) => {
|
transporter.sendMail(mailOptions, error => {
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error("✖ couldn't send email", error);
|
logger.error("✖ couldn't send email", error);
|
||||||
} else {
|
} else {
|
||||||
logger.info('✔ email sent');
|
logger.info('✔ email sent');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+67
-67
@@ -7,60 +7,60 @@ const {mqtt} = config.notifications;
|
|||||||
let client: MqttClient.Client;
|
let client: MqttClient.Client;
|
||||||
|
|
||||||
if (mqtt.broker) {
|
if (mqtt.broker) {
|
||||||
if (checkInsecureUsage(mqtt.password, mqtt.broker)) {
|
if (checkInsecureUsage(mqtt.password, mqtt.broker)) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
'✖ Insecure transport of password - Only use credentials with MQTT brokers on private networks.'
|
'✖ Insecure transport of password - Only use credentials with MQTT brokers on private networks.'
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
const clientOptions: IClientOptions = {
|
const clientOptions: IClientOptions = {
|
||||||
clean: mqtt.clientId === '',
|
clean: mqtt.clientId === '',
|
||||||
clientId: mqtt.clientId === '' ? undefined : mqtt.clientId,
|
clientId: mqtt.clientId === '' ? undefined : mqtt.clientId,
|
||||||
password: mqtt.password === '' ? undefined : mqtt.password,
|
password: mqtt.password === '' ? undefined : mqtt.password,
|
||||||
username: mqtt.username === '' ? undefined : mqtt.username
|
username: mqtt.username === '' ? undefined : mqtt.username,
|
||||||
};
|
};
|
||||||
client = MqttClient.connect(
|
client = MqttClient.connect(
|
||||||
`mqtt://${mqtt.broker}:${mqtt.port}`,
|
`mqtt://${mqtt.broker}:${mqtt.port}`,
|
||||||
clientOptions
|
clientOptions
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sendMqttMessage(link: Link, store: Store) {
|
export function sendMqttMessage(link: Link, store: Store) {
|
||||||
if (client) {
|
if (client) {
|
||||||
logger.debug('↗ sending mqtt message');
|
logger.debug('↗ sending mqtt message');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
|
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
|
||||||
const message = `{"msg":"${Print.inStock(
|
const message = `{"msg":"${Print.inStock(
|
||||||
link,
|
link,
|
||||||
store
|
store
|
||||||
)}", "url":"${givenUrl}"}`;
|
)}", "url":"${givenUrl}"}`;
|
||||||
const topic = generateTopic(link, store, mqtt.topic);
|
const topic = generateTopic(link, store, mqtt.topic);
|
||||||
const pubOptions: IClientPublishOptions = {
|
const pubOptions: IClientPublishOptions = {
|
||||||
qos: mqtt.qos as 0 | 1 | 2,
|
qos: mqtt.qos as 0 | 1 | 2,
|
||||||
retain: false
|
retain: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
client.publish(topic, message, pubOptions);
|
client.publish(topic, message, pubOptions);
|
||||||
logger.info('✔ mqtt message sent');
|
logger.info('✔ mqtt message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't send mqtt message", error);
|
logger.error("✖ couldn't send mqtt message", error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateTopic(link: Link, store: Store, topic: string): string {
|
function generateTopic(link: Link, store: Store, topic: string): string {
|
||||||
topic.trim();
|
topic.trim();
|
||||||
topic = topic.replace(/^\//, '');
|
topic = topic.replace(/^\//, '');
|
||||||
topic = topic
|
topic = topic
|
||||||
.replace(/%series%/g, link.series)
|
.replace(/%series%/g, link.series)
|
||||||
.replace(/%brand%/g, link.brand)
|
.replace(/%brand%/g, link.brand)
|
||||||
.replace(/%model%/g, link.model)
|
.replace(/%model%/g, link.model)
|
||||||
.replace(/%store%/g, store.name);
|
.replace(/%store%/g, store.name);
|
||||||
|
|
||||||
return topic;
|
return topic;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,43 +72,43 @@ function generateTopic(link: Link, store: Store, topic: string): string {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function checkInsecureUsage(pass: string, address: string): boolean {
|
function checkInsecureUsage(pass: string, address: string): boolean {
|
||||||
if (pass !== '') {
|
if (pass !== '') {
|
||||||
if (
|
if (
|
||||||
isClassANet(address) ||
|
isClassANet(address) ||
|
||||||
isClassBNet(address) ||
|
isClassBNet(address) ||
|
||||||
isClassCNet(address) ||
|
isClassCNet(address) ||
|
||||||
isLinkLocal(address)
|
isLinkLocal(address)
|
||||||
) {
|
) {
|
||||||
logger.debug(`MQTT using private network broker: ${address}`);
|
logger.debug(`MQTT using private network broker: ${address}`);
|
||||||
} else {
|
} else {
|
||||||
logger.debug(`MQTT using public network broker: ${address}`);
|
logger.debug(`MQTT using public network broker: ${address}`);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isClassANet(address: string): boolean {
|
function isClassANet(address: string): boolean {
|
||||||
const classRegex = /^(10\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2}))$/;
|
const classRegex = /^(10\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2}))$/;
|
||||||
|
|
||||||
return Boolean(classRegex.exec(address));
|
return Boolean(classRegex.exec(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
function isClassBNet(address: string): boolean {
|
function isClassBNet(address: string): boolean {
|
||||||
const classRegex = /^(172\.(1[6-9]|2\d|3[01])\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2}))$/;
|
const classRegex = /^(172\.(1[6-9]|2\d|3[01])\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2}))$/;
|
||||||
|
|
||||||
return Boolean(classRegex.exec(address));
|
return Boolean(classRegex.exec(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
function isClassCNet(address: string): boolean {
|
function isClassCNet(address: string): boolean {
|
||||||
const classRegex = /^(192\.168\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2}))$/;
|
const classRegex = /^(192\.168\.(\d|[1-9]\d|[12][0-5]{2})\.(\d|[1-9]\d|[12][0-5]{2}))$/;
|
||||||
|
|
||||||
return Boolean(classRegex.exec(address));
|
return Boolean(classRegex.exec(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
function isLinkLocal(address: string): boolean {
|
function isLinkLocal(address: string): boolean {
|
||||||
const linkLocal = /.+\.local$/;
|
const linkLocal = /.+\.local$/;
|
||||||
|
|
||||||
return Boolean(linkLocal.exec(address));
|
return Boolean(linkLocal.exec(address));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,22 +17,22 @@ import {sendTwitchMessage} from './twitch';
|
|||||||
import {updateRedis} from './redis';
|
import {updateRedis} from './redis';
|
||||||
|
|
||||||
export function sendNotification(link: Link, store: Store) {
|
export function sendNotification(link: Link, store: Store) {
|
||||||
// Priority
|
// Priority
|
||||||
playSound();
|
playSound();
|
||||||
sendDiscordMessage(link, store);
|
sendDiscordMessage(link, store);
|
||||||
sendDesktopNotification(link, store);
|
sendDesktopNotification(link, store);
|
||||||
sendEmail(link, store);
|
sendEmail(link, store);
|
||||||
sendSms(link, store);
|
sendSms(link, store);
|
||||||
// Non-priority
|
// Non-priority
|
||||||
adjustPhilipsHueLights();
|
adjustPhilipsHueLights();
|
||||||
sendMqttMessage(link, store);
|
sendMqttMessage(link, store);
|
||||||
sendPagerDutyNotification(link, store);
|
sendPagerDutyNotification(link, store);
|
||||||
sendPushbulletNotification(link, store);
|
sendPushbulletNotification(link, store);
|
||||||
sendPushoverNotification(link, store);
|
sendPushoverNotification(link, store);
|
||||||
sendSlackMessage(link, store);
|
sendSlackMessage(link, store);
|
||||||
sendTelegramMessage(link, store);
|
sendTelegramMessage(link, store);
|
||||||
sendTweet(link, store);
|
sendTweet(link, store);
|
||||||
sendTwilioMessage(link, store);
|
sendTwilioMessage(link, store);
|
||||||
sendTwitchMessage(link, store);
|
sendTwitchMessage(link, store);
|
||||||
updateRedis(link, store);
|
updateRedis(link, store);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,26 +6,26 @@ import {config} from '../config';
|
|||||||
const pd = new PDClient('');
|
const pd = new PDClient('');
|
||||||
|
|
||||||
export function sendPagerDutyNotification(link: Link, store: Store) {
|
export function sendPagerDutyNotification(link: Link, store: Store) {
|
||||||
if (config.notifications.pagerduty.integrationKey) {
|
if (config.notifications.pagerduty.integrationKey) {
|
||||||
logger.debug('↗ sending pagerduty message');
|
logger.debug('↗ sending pagerduty message');
|
||||||
const links = [{href: link.url, text: 'Visit Store'}];
|
const links = [{href: link.url, text: 'Visit Store'}];
|
||||||
if (link.cartUrl) {
|
if (link.cartUrl) {
|
||||||
links.push({
|
links.push({
|
||||||
href: link.cartUrl,
|
href: link.cartUrl,
|
||||||
text: 'Add to Cart'
|
text: 'Add to Cart',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pd.events.sendEvent({
|
pd.events.sendEvent({
|
||||||
dedup_key: link.url,
|
dedup_key: link.url,
|
||||||
event_action: 'trigger',
|
event_action: 'trigger',
|
||||||
payload: {
|
payload: {
|
||||||
links,
|
links,
|
||||||
severity: config.notifications.pagerduty.severity,
|
severity: config.notifications.pagerduty.severity,
|
||||||
source: store.name,
|
source: store.name,
|
||||||
summary: Print.inStock(link, store)
|
summary: Print.inStock(link, store),
|
||||||
},
|
},
|
||||||
routing_key: config.notifications.pagerduty.integrationKey
|
routing_key: config.notifications.pagerduty.integrationKey,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+108
-120
@@ -5,135 +5,123 @@ import {logger} from '../logger';
|
|||||||
|
|
||||||
const {LightState} = hueAPI.lightStates;
|
const {LightState} = hueAPI.lightStates;
|
||||||
const {
|
const {
|
||||||
apiKey,
|
apiKey,
|
||||||
bridgeIp,
|
bridgeIp,
|
||||||
lightIds,
|
lightIds,
|
||||||
lightColor,
|
lightColor,
|
||||||
lightPattern,
|
lightPattern,
|
||||||
clientId,
|
clientId,
|
||||||
clientSecret,
|
clientSecret,
|
||||||
accessToken,
|
accessToken,
|
||||||
refreshToken,
|
refreshToken,
|
||||||
remoteApiUsername
|
remoteApiUsername,
|
||||||
} = config.notifications.philips_hue;
|
} = config.notifications.philips_hue;
|
||||||
|
|
||||||
// Default Light State
|
// Default Light State
|
||||||
const lightState = new LightState()
|
const lightState = new LightState()
|
||||||
.on(true)
|
.on(true)
|
||||||
.brightness(100)
|
.brightness(100)
|
||||||
.rgb(46.27, 72.55, 0);
|
.rgb(46.27, 72.55, 0);
|
||||||
|
|
||||||
const adjustLightsWithAPI = (hueBridge: Api) => {
|
const adjustLightsWithAPI = (hueBridge: Api) => {
|
||||||
logger.debug('Connected to Philips Hue bridge.');
|
logger.debug('Connected to Philips Hue bridge.');
|
||||||
// Set the custom light state (COLOR and METHOD here)
|
// Set the custom light state (COLOR and METHOD here)
|
||||||
if (lightColor) {
|
if (lightColor) {
|
||||||
const rgbArray = lightColor.split(',');
|
const rgbArray = lightColor.split(',');
|
||||||
// If there's not three values, must not be RGB
|
// If there's not three values, must not be RGB
|
||||||
if (rgbArray.length === 3) {
|
if (rgbArray.length === 3) {
|
||||||
lightState.rgb(rgbArray[0], rgbArray[1], rgbArray[2]);
|
lightState.rgb(rgbArray[0], rgbArray[1], rgbArray[2]);
|
||||||
} else {
|
} else {
|
||||||
logger.debug('✖ Error assigning RGB Values');
|
logger.debug('✖ Error assigning RGB Values');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If blink is specified, then blink the lights
|
// If blink is specified, then blink the lights
|
||||||
if (lightPattern === 'blink') {
|
if (lightPattern === 'blink') {
|
||||||
lightState.alertLong();
|
lightState.alertLong();
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we've been given light IDs, then only adjust those IDs
|
// If we've been given light IDs, then only adjust those IDs
|
||||||
if (lightIds) {
|
if (lightIds) {
|
||||||
const arrayOfIDs = lightIds.split(',');
|
const arrayOfIDs = lightIds.split(',');
|
||||||
arrayOfIDs.forEach((light) => {
|
arrayOfIDs.forEach(light => {
|
||||||
logger.debug('adjusting specified lights');
|
logger.debug('adjusting specified lights');
|
||||||
(hueBridge.lights.setLightState(
|
(hueBridge.lights.setLightState(light, lightState) as Promise<any>).catch(
|
||||||
light,
|
(error: Error) => {
|
||||||
lightState
|
logger.error('Failed to adjust specified lights.');
|
||||||
) as Promise<any>).catch((error: Error) => {
|
logger.error(error);
|
||||||
logger.error('Failed to adjust specified lights.');
|
throw error;
|
||||||
logger.error(error);
|
}
|
||||||
throw error;
|
);
|
||||||
});
|
});
|
||||||
});
|
} else {
|
||||||
} else {
|
// Adjust all light IDs
|
||||||
// Adjust all light IDs
|
hueBridge.lights
|
||||||
hueBridge.lights
|
.getAll()
|
||||||
.getAll()
|
.then((allLights: any[]) => {
|
||||||
.then((allLights: any[]) => {
|
allLights.forEach((light: any) => {
|
||||||
allLights.forEach((light: any) => {
|
logger.debug('adjusting all hue lights');
|
||||||
logger.debug('adjusting all hue lights');
|
(hueBridge.lights.setLightState(
|
||||||
(hueBridge.lights.setLightState(
|
light,
|
||||||
light,
|
lightState
|
||||||
lightState
|
) as Promise<any>).catch((error: Error) => {
|
||||||
) as Promise<any>).catch((error: Error) => {
|
logger.error('Failed to adjust all lights.');
|
||||||
logger.error('Failed to adjust all lights.');
|
logger.error(error);
|
||||||
logger.error(error);
|
throw error;
|
||||||
throw error;
|
});
|
||||||
});
|
});
|
||||||
});
|
})
|
||||||
})
|
.catch((error: Error) => {
|
||||||
.catch((error: Error) => {
|
logger.error('Failed to get all lights.');
|
||||||
logger.error('Failed to get all lights.');
|
logger.error(error);
|
||||||
logger.error(error);
|
throw error;
|
||||||
throw error;
|
});
|
||||||
});
|
}
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export function adjustPhilipsHueLights() {
|
export function adjustPhilipsHueLights() {
|
||||||
// Check if the required variables have been set
|
// Check if the required variables have been set
|
||||||
if (apiKey && bridgeIp) {
|
if (apiKey && bridgeIp) {
|
||||||
logger.info('↗ adjusting Philips Hue lights over LAN');
|
logger.info('↗ adjusting Philips Hue lights over LAN');
|
||||||
(async () => {
|
(async () => {
|
||||||
logger.debug(
|
logger.debug(
|
||||||
'Attempting to connect to Philips Hue bridge at ' + bridgeIp
|
'Attempting to connect to Philips Hue bridge at ' + bridgeIp
|
||||||
);
|
);
|
||||||
hueAPI.api
|
hueAPI.api
|
||||||
.createLocal(bridgeIp)
|
.createLocal(bridgeIp)
|
||||||
.connect(apiKey)
|
.connect(apiKey)
|
||||||
.then(
|
.then(
|
||||||
(hueBridge) => {
|
hueBridge => {
|
||||||
adjustLightsWithAPI(hueBridge);
|
adjustLightsWithAPI(hueBridge);
|
||||||
logger.info('✔ adjusted Philips Hue lights over LAN');
|
logger.info('✔ adjusted Philips Hue lights over LAN');
|
||||||
},
|
},
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
logger.error("✖ couldn't adjust hue lights.", error);
|
logger.error("✖ couldn't adjust hue lights.", error);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
})();
|
})();
|
||||||
} else if (apiKey && clientId && clientSecret) {
|
} else if (apiKey && clientId && clientSecret) {
|
||||||
logger.info('↗ adjusting Philips Hue lights over cloud');
|
logger.info('↗ adjusting Philips Hue lights over cloud');
|
||||||
(async () => {
|
(async () => {
|
||||||
logger.debug(
|
logger.debug('Attempting to connect to Philips Hue bridge over cloud');
|
||||||
'Attempting to connect to Philips Hue bridge over cloud'
|
const remoteBootstrap = hueAPI.api.createRemote(clientId, clientSecret);
|
||||||
);
|
if (accessToken && refreshToken) {
|
||||||
const remoteBootstrap = hueAPI.api.createRemote(
|
remoteBootstrap
|
||||||
clientId,
|
.connectWithTokens(accessToken, refreshToken, remoteApiUsername)
|
||||||
clientSecret
|
.then(
|
||||||
);
|
hueBridge => {
|
||||||
if (accessToken && refreshToken) {
|
adjustLightsWithAPI(hueBridge);
|
||||||
remoteBootstrap
|
logger.info('✔ adjusted Philips Hue lights over cloud');
|
||||||
.connectWithTokens(
|
},
|
||||||
accessToken,
|
(error: Error) => {
|
||||||
refreshToken,
|
logger.error(
|
||||||
remoteApiUsername
|
'Failed to get a remote Philips Hue connection using supplied tokens.'
|
||||||
)
|
);
|
||||||
.then(
|
logger.error(error);
|
||||||
(hueBridge) => {
|
throw error;
|
||||||
adjustLightsWithAPI(hueBridge);
|
}
|
||||||
logger.info(
|
);
|
||||||
'✔ adjusted Philips Hue lights over cloud'
|
}
|
||||||
);
|
})();
|
||||||
},
|
}
|
||||||
(error: Error) => {
|
|
||||||
logger.error(
|
|
||||||
'Failed to get a remote Philips Hue connection using supplied tokens.'
|
|
||||||
);
|
|
||||||
logger.error(error);
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,22 +6,22 @@ import {config} from '../config';
|
|||||||
const {pushbullet} = config.notifications;
|
const {pushbullet} = config.notifications;
|
||||||
|
|
||||||
export function sendPushbulletNotification(link: Link, store: Store) {
|
export function sendPushbulletNotification(link: Link, store: Store) {
|
||||||
if (pushbullet) {
|
if (pushbullet) {
|
||||||
logger.debug('↗ sending pushbullet message');
|
logger.debug('↗ sending pushbullet message');
|
||||||
|
|
||||||
const pusher = new PushBullet(pushbullet);
|
const pusher = new PushBullet(pushbullet);
|
||||||
|
|
||||||
pusher.note(
|
pusher.note(
|
||||||
{},
|
{},
|
||||||
Print.inStock(link, store),
|
Print.inStock(link, store),
|
||||||
link.cartUrl ? link.cartUrl : link.url,
|
link.cartUrl ? link.cartUrl : link.url,
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error("✖ couldn't send pushbullet message", error);
|
logger.error("✖ couldn't send pushbullet message", error);
|
||||||
} else {
|
} else {
|
||||||
logger.info('✔ pushbullet message sent');
|
logger.info('✔ pushbullet message sent');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,37 +6,37 @@ import {config} from '../config';
|
|||||||
const {pushover} = config.notifications;
|
const {pushover} = config.notifications;
|
||||||
|
|
||||||
export function sendPushoverNotification(link: Link, store: Store) {
|
export function sendPushoverNotification(link: Link, store: Store) {
|
||||||
if (pushover.token && pushover.username) {
|
if (pushover.token && pushover.username) {
|
||||||
logger.debug('↗ sending pushover message');
|
logger.debug('↗ sending pushover message');
|
||||||
|
|
||||||
const push = new Push({
|
const push = new Push({
|
||||||
token: pushover.token,
|
token: pushover.token,
|
||||||
user: pushover.username
|
user: pushover.username,
|
||||||
});
|
});
|
||||||
|
|
||||||
const message: PushoverMessage =
|
const message: PushoverMessage =
|
||||||
pushover.priority < 2
|
pushover.priority < 2
|
||||||
? {
|
? {
|
||||||
message: link.cartUrl ? link.cartUrl : link.url,
|
message: link.cartUrl ? link.cartUrl : link.url,
|
||||||
priority: pushover.priority,
|
priority: pushover.priority,
|
||||||
title: Print.inStock(link, store),
|
title: Print.inStock(link, store),
|
||||||
...(link.screenshot && {file: `./${link.screenshot}`})
|
...(link.screenshot && {file: `./${link.screenshot}`}),
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
expire: pushover.expire,
|
expire: pushover.expire,
|
||||||
message: link.cartUrl ? link.cartUrl : link.url,
|
message: link.cartUrl ? link.cartUrl : link.url,
|
||||||
priority: pushover.priority,
|
priority: pushover.priority,
|
||||||
retry: pushover.retry,
|
retry: pushover.retry,
|
||||||
title: Print.inStock(link, store),
|
title: Print.inStock(link, store),
|
||||||
...(link.screenshot && {file: `./${link.screenshot}`})
|
...(link.screenshot && {file: `./${link.screenshot}`}),
|
||||||
};
|
};
|
||||||
|
|
||||||
push.send(message, (error: Error) => {
|
push.send(message, (error: Error) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error("✖ couldn't send pushover message", error);
|
logger.error("✖ couldn't send pushover message", error);
|
||||||
} else {
|
} else {
|
||||||
logger.info('✔ pushover message sent');
|
logger.info('✔ pushover message sent');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-26
@@ -7,39 +7,39 @@ const {url} = config.notifications.redis;
|
|||||||
let client: RedisClient;
|
let client: RedisClient;
|
||||||
|
|
||||||
function initRedis(): RedisClient | null {
|
function initRedis(): RedisClient | null {
|
||||||
if (url) {
|
if (url) {
|
||||||
client = redis.createClient({url});
|
client = redis.createClient({url});
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateRedis(link: Link, store: Store) {
|
export function updateRedis(link: Link, store: Store) {
|
||||||
try {
|
try {
|
||||||
if (client) {
|
if (client) {
|
||||||
const key = `${store.name}:${link.brand}:${link.model}`
|
const key = `${store.name}:${link.brand}:${link.model}`
|
||||||
.split(' ')
|
.split(' ')
|
||||||
.join('-');
|
.join('-');
|
||||||
|
|
||||||
const value = {
|
const value = {
|
||||||
...link,
|
...link,
|
||||||
labels: store.labels,
|
labels: store.labels,
|
||||||
links: store.links,
|
links: store.links,
|
||||||
name: store.name,
|
name: store.name,
|
||||||
updatedAt: new Date().toUTCString()
|
updatedAt: new Date().toUTCString(),
|
||||||
};
|
};
|
||||||
|
|
||||||
const redisUpdated = client.set(key, JSON.stringify(value));
|
const redisUpdated = client.set(key, JSON.stringify(value));
|
||||||
|
|
||||||
if (redisUpdated) {
|
if (redisUpdated) {
|
||||||
logger.info('✔ redis updated');
|
logger.info('✔ redis updated');
|
||||||
} else {
|
} else {
|
||||||
logger.error(`✖ couldn't update redis for key (${key})`);
|
logger.error(`✖ couldn't update redis for key (${key})`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't update redis", error);
|
logger.error("✖ couldn't update redis", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initRedis();
|
initRedis();
|
||||||
|
|||||||
+19
-19
@@ -7,27 +7,27 @@ const {channel, token} = config.notifications.slack;
|
|||||||
const web = new WebClient(token);
|
const web = new WebClient(token);
|
||||||
|
|
||||||
export function sendSlackMessage(link: Link, store: Store) {
|
export function sendSlackMessage(link: Link, store: Store) {
|
||||||
if (channel && token) {
|
if (channel && token) {
|
||||||
logger.debug('↗ sending slack message');
|
logger.debug('↗ sending slack message');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
|
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await web.chat.postMessage({
|
const result = await web.chat.postMessage({
|
||||||
channel: channel.replace('#', ''),
|
channel: channel.replace('#', ''),
|
||||||
text: `${Print.inStock(link, store)}\n${givenUrl}`
|
text: `${Print.inStock(link, store)}\n${givenUrl}`,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!result.ok) {
|
if (!result.ok) {
|
||||||
logger.error("✖ couldn't send slack message", result);
|
logger.error("✖ couldn't send slack message", result);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info('✔ slack message sent');
|
logger.info('✔ slack message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't send slack message", error);
|
logger.error("✖ couldn't send slack message", error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+57
-55
@@ -7,72 +7,74 @@ import {transporter} from './email';
|
|||||||
const {email, phone} = config.notifications;
|
const {email, phone} = config.notifications;
|
||||||
|
|
||||||
if (phone.number.length > 0 && (!email.username || !email.password)) {
|
if (phone.number.length > 0 && (!email.username || !email.password)) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
'✖ in order to receive sms alerts, email notifications must also be configured'
|
'✖ in order to receive sms alerts, email notifications must also be configured'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phone.carrier.length !== phone.number.length) {
|
if (phone.carrier.length !== phone.number.length) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
'✖ the number of carriers must match the number of phone numbers',
|
'✖ the number of carriers must match the number of phone numbers',
|
||||||
{carrier: phone.carrier, number: phone.number}
|
{carrier: phone.carrier, number: phone.number}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sendSms(link: Link, store: Store) {
|
export function sendSms(link: Link, store: Store) {
|
||||||
for (
|
for (
|
||||||
let i = 0;
|
let i = 0;
|
||||||
i < Math.max(phone.number.length, phone.carrier.length);
|
i < Math.max(phone.number.length, phone.carrier.length);
|
||||||
i++
|
i++
|
||||||
) {
|
) {
|
||||||
const currentNumber = phone.number[i];
|
const currentNumber = phone.number[i];
|
||||||
const currentCarrier = phone.carrier[i];
|
const currentCarrier = phone.carrier[i];
|
||||||
|
|
||||||
if (!currentNumber) {
|
if (!currentNumber) {
|
||||||
logger.error(`✖ ${currentCarrier} is not associated with a number`);
|
logger.error(`✖ ${currentCarrier} is not associated with a number`);
|
||||||
continue;
|
continue;
|
||||||
} else if (!currentCarrier) {
|
} else if (!currentCarrier) {
|
||||||
logger.error(`✖ ${currentNumber} is not associated with a carrier`);
|
logger.error(`✖ ${currentNumber} is not associated with a carrier`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!phone.availableCarriers.has(currentCarrier)) {
|
if (!phone.availableCarriers.has(currentCarrier)) {
|
||||||
logger.error(`✖ unknown carrier ${currentCarrier}`);
|
logger.error(`✖ unknown carrier ${currentCarrier}`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug('↗ sending sms');
|
logger.debug('↗ sending sms');
|
||||||
|
|
||||||
const mailOptions: Mail.Options = {
|
const mailOptions: Mail.Options = {
|
||||||
attachments: link.screenshot
|
attachments: link.screenshot
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
filename: link.screenshot,
|
filename: link.screenshot,
|
||||||
path: `./${link.screenshot}`
|
path: `./${link.screenshot}`,
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
: undefined,
|
: undefined,
|
||||||
from: email.username,
|
from: email.username,
|
||||||
subject: Print.inStock(link, store, false, true),
|
subject: Print.inStock(link, store, false, true),
|
||||||
text: link.cartUrl ? link.cartUrl : link.url,
|
text: link.cartUrl ? link.cartUrl : link.url,
|
||||||
to: generateAddress(currentNumber, currentCarrier)
|
to: generateAddress(currentNumber, currentCarrier),
|
||||||
};
|
};
|
||||||
|
|
||||||
transporter.sendMail(mailOptions, (error) => {
|
transporter.sendMail(mailOptions, error => {
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`✖ couldn't send sms to ${currentNumber} for carrier ${currentCarrier}`,
|
`✖ couldn't send sms to ${currentNumber} for carrier ${currentCarrier}`,
|
||||||
error
|
error
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
logger.info('✔ sms sent');
|
logger.info('✔ sms sent');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateAddress(number: string, carrier: string) {
|
function generateAddress(number: string, carrier: string): string {
|
||||||
if (carrier && phone.availableCarriers.has(carrier)) {
|
if (carrier && phone.availableCarriers.has(carrier)) {
|
||||||
return [number, phone.availableCarriers.get(carrier)].join('@');
|
return [number, phone.availableCarriers.get(carrier)].join('@');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-30
@@ -6,41 +6,35 @@ import {logger} from '../logger';
|
|||||||
let player: PlaySound;
|
let player: PlaySound;
|
||||||
|
|
||||||
if (config.notifications.playSound) {
|
if (config.notifications.playSound) {
|
||||||
player = config.notifications.soundPlayer
|
player = config.notifications.soundPlayer
|
||||||
? playerLib({players: [config.notifications.soundPlayer]})
|
? playerLib({players: [config.notifications.soundPlayer]})
|
||||||
: playerLib();
|
: playerLib();
|
||||||
|
|
||||||
if (player.player === null) {
|
if (player.player === null) {
|
||||||
logger.warn("✖ couldn't find sound player");
|
logger.warn("✖ couldn't find sound player");
|
||||||
} else {
|
} else {
|
||||||
const playerName = player.player;
|
const playerName = player.player;
|
||||||
logger.info(`✔ sound player found: ${playerName}`);
|
logger.info(`✔ sound player found: ${playerName}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function playSound() {
|
export function playSound() {
|
||||||
if (config.notifications.playSound && player.player !== null) {
|
if (config.notifications.playSound && player.player !== null) {
|
||||||
logger.debug('↗ playing sound');
|
logger.debug('↗ playing sound');
|
||||||
|
|
||||||
fs.access(
|
fs.access(config.notifications.playSound, fs.constants.F_OK, error => {
|
||||||
config.notifications.playSound,
|
if (error) {
|
||||||
fs.constants.F_OK,
|
logger.error(`✖ error opening sound file: ${error.message}`);
|
||||||
(error) => {
|
return;
|
||||||
if (error) {
|
}
|
||||||
logger.error(
|
|
||||||
`✖ error opening sound file: ${error.message}`
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
player.play(config.notifications.playSound, (error: Error) => {
|
player.play(config.notifications.playSound, (error: Error) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error("✖ couldn't play sound", error);
|
logger.error("✖ couldn't play sound", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info('✔ played sound');
|
logger.info('✔ played sound');
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
);
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,32 +6,32 @@ import {config} from '../config';
|
|||||||
const {telegram} = config.notifications;
|
const {telegram} = config.notifications;
|
||||||
|
|
||||||
const client = new TelegramClient({
|
const client = new TelegramClient({
|
||||||
accessToken: telegram.accessToken
|
accessToken: telegram.accessToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export function sendTelegramMessage(link: Link, store: Store) {
|
export function sendTelegramMessage(link: Link, store: Store) {
|
||||||
if (telegram.accessToken && telegram.chatId) {
|
if (telegram.accessToken && telegram.chatId) {
|
||||||
logger.debug('↗ sending telegram message');
|
logger.debug('↗ sending telegram message');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const message = Print.productInStock(link);
|
const message = Print.productInStock(link);
|
||||||
const results = [];
|
const results = [];
|
||||||
|
|
||||||
for (const chatId of telegram.chatId) {
|
for (const chatId of telegram.chatId) {
|
||||||
try {
|
try {
|
||||||
results.push(
|
results.push(
|
||||||
client.sendMessage(
|
client.sendMessage(
|
||||||
chatId,
|
chatId,
|
||||||
`${Print.inStock(link, store)}\n${message}`
|
`${Print.inStock(link, store)}\n${message}`
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
logger.info('✔ telegram message sent');
|
logger.info('✔ telegram message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't send telegram message", error);
|
logger.error("✖ couldn't send telegram message", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all(results);
|
await Promise.all(results);
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+25
-25
@@ -7,34 +7,34 @@ const {twilio} = config.notifications;
|
|||||||
let client: Twilio;
|
let client: Twilio;
|
||||||
|
|
||||||
if (twilio.accountSid && twilio.authToken) {
|
if (twilio.accountSid && twilio.authToken) {
|
||||||
client = new Twilio(twilio.accountSid, twilio.authToken);
|
client = new Twilio(twilio.accountSid, twilio.authToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sendTwilioMessage(link: Link, store: Store) {
|
export function sendTwilioMessage(link: Link, store: Store) {
|
||||||
if (client) {
|
if (client) {
|
||||||
logger.debug('↗ sending twilio message');
|
logger.debug('↗ sending twilio message');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
|
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
|
||||||
const message = `${Print.inStock(link, store)}\n${givenUrl}`;
|
const message = `${Print.inStock(link, store)}\n${givenUrl}`;
|
||||||
const numbers = twilio.to.split(',');
|
const numbers = twilio.to.split(',');
|
||||||
const results = [];
|
const results = [];
|
||||||
for (const number of numbers) {
|
for (const number of numbers) {
|
||||||
try {
|
try {
|
||||||
results.push(
|
results.push(
|
||||||
client.messages.create({
|
client.messages.create({
|
||||||
body: message,
|
body: message,
|
||||||
from: twilio.from,
|
from: twilio.from,
|
||||||
to: number
|
to: number,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
logger.info('✔ twilio message sent');
|
logger.info('✔ twilio message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't send twilio message", error);
|
logger.error("✖ couldn't send twilio message", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all(results);
|
await Promise.all(results);
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+68
-72
@@ -11,95 +11,91 @@ const messages: string[] = [];
|
|||||||
let alreadySaying = false;
|
let alreadySaying = false;
|
||||||
|
|
||||||
let tokenData = {
|
let tokenData = {
|
||||||
accessToken: twitch.accessToken,
|
accessToken: twitch.accessToken,
|
||||||
expiryTimestamp: 0,
|
expiryTimestamp: 0,
|
||||||
refreshToken: twitch.refreshToken
|
refreshToken: twitch.refreshToken,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (existsSync('./twitch.json')) {
|
if (existsSync('./twitch.json')) {
|
||||||
tokenData = {
|
tokenData = {
|
||||||
...JSON.parse(readFileSync('./twitch.json', 'utf-8')),
|
...JSON.parse(readFileSync('./twitch.json', 'utf-8')),
|
||||||
...tokenData
|
...tokenData,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const chatClient: ChatClient = new ChatClient(
|
const chatClient: ChatClient = new ChatClient(
|
||||||
new RefreshableAuthProvider(
|
new RefreshableAuthProvider(
|
||||||
new StaticAuthProvider(twitch.clientId, tokenData.accessToken),
|
new StaticAuthProvider(twitch.clientId, tokenData.accessToken),
|
||||||
{
|
{
|
||||||
clientSecret: twitch.clientSecret,
|
clientSecret: twitch.clientSecret,
|
||||||
expiry:
|
expiry:
|
||||||
tokenData.expiryTimestamp === null
|
tokenData.expiryTimestamp === null
|
||||||
? null
|
? null
|
||||||
: new Date(tokenData.expiryTimestamp),
|
: new Date(tokenData.expiryTimestamp),
|
||||||
onRefresh: async ({accessToken, refreshToken, expiryDate}) => {
|
onRefresh: async ({accessToken, refreshToken, expiryDate}) => {
|
||||||
return promises.writeFile(
|
return promises.writeFile(
|
||||||
'./twitch.json',
|
'./twitch.json',
|
||||||
JSON.stringify(
|
JSON.stringify(
|
||||||
{
|
{
|
||||||
accessToken,
|
accessToken,
|
||||||
expiryTimestamp:
|
expiryTimestamp:
|
||||||
expiryDate === null
|
expiryDate === null ? null : expiryDate.getTime(),
|
||||||
? null
|
refreshToken,
|
||||||
: expiryDate.getTime(),
|
},
|
||||||
refreshToken
|
null,
|
||||||
},
|
4
|
||||||
null,
|
),
|
||||||
4
|
'utf-8'
|
||||||
),
|
);
|
||||||
'utf-8'
|
},
|
||||||
);
|
refreshToken: tokenData.refreshToken,
|
||||||
},
|
}
|
||||||
refreshToken: tokenData.refreshToken
|
),
|
||||||
}
|
{
|
||||||
),
|
channels: [twitch.channel],
|
||||||
{
|
}
|
||||||
channels: [twitch.channel]
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
|
|
||||||
chatClient.onJoin((channel: string, user: string) => {
|
chatClient.onJoin((channel: string, user: string) => {
|
||||||
if (channel === `#${twitch.channel}` && user === chatClient.currentNick) {
|
if (channel === `#${twitch.channel}` && user === chatClient.currentNick) {
|
||||||
while (messages.length) {
|
while (messages.length) {
|
||||||
const message: string | undefined = messages.shift();
|
const message: string | undefined = messages.shift();
|
||||||
|
|
||||||
if (message !== undefined) {
|
if (message !== undefined) {
|
||||||
try {
|
try {
|
||||||
void chatClient.say(channel, message);
|
void chatClient.say(channel, message);
|
||||||
logger.info('✔ twitch message sent');
|
logger.info('✔ twitch message sent');
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error("✖ couldn't send twitch message", error);
|
logger.error("✖ couldn't send twitch message", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void chatClient.quit();
|
void chatClient.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
chatClient.onDisconnect(() => {
|
chatClient.onDisconnect(() => {
|
||||||
alreadySaying = false;
|
alreadySaying = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
export function sendTwitchMessage(link: Link, store: Store) {
|
export function sendTwitchMessage(link: Link, store: Store) {
|
||||||
if (
|
if (
|
||||||
tokenData.accessToken &&
|
tokenData.accessToken &&
|
||||||
twitch.channel &&
|
twitch.channel &&
|
||||||
twitch.clientId &&
|
twitch.clientId &&
|
||||||
twitch.clientSecret &&
|
twitch.clientSecret &&
|
||||||
tokenData.refreshToken
|
tokenData.refreshToken
|
||||||
) {
|
) {
|
||||||
logger.debug('↗ sending twitch message');
|
logger.debug('↗ sending twitch message');
|
||||||
|
|
||||||
messages.push(
|
messages.push(
|
||||||
`${Print.inStock(link, store)}\n${
|
`${Print.inStock(link, store)}\n${link.cartUrl ? link.cartUrl : link.url}`
|
||||||
link.cartUrl ? link.cartUrl : link.url
|
);
|
||||||
}`
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!alreadySaying) {
|
if (!alreadySaying) {
|
||||||
alreadySaying = true;
|
alreadySaying = true;
|
||||||
void chatClient.connect();
|
void chatClient.connect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+25
-25
@@ -6,35 +6,35 @@ import {config} from '../config';
|
|||||||
const {twitter} = config.notifications;
|
const {twitter} = config.notifications;
|
||||||
|
|
||||||
const client = new Twitter({
|
const client = new Twitter({
|
||||||
access_token_key: twitter.accessTokenKey,
|
access_token_key: twitter.accessTokenKey,
|
||||||
access_token_secret: twitter.accessTokenSecret,
|
access_token_secret: twitter.accessTokenSecret,
|
||||||
consumer_key: twitter.consumerKey,
|
consumer_key: twitter.consumerKey,
|
||||||
consumer_secret: twitter.consumerSecret
|
consumer_secret: twitter.consumerSecret,
|
||||||
});
|
});
|
||||||
|
|
||||||
export function sendTweet(link: Link, store: Store) {
|
export function sendTweet(link: Link, store: Store) {
|
||||||
if (
|
if (
|
||||||
twitter.accessTokenKey &&
|
twitter.accessTokenKey &&
|
||||||
twitter.accessTokenSecret &&
|
twitter.accessTokenSecret &&
|
||||||
twitter.consumerKey &&
|
twitter.consumerKey &&
|
||||||
twitter.consumerSecret
|
twitter.consumerSecret
|
||||||
) {
|
) {
|
||||||
logger.debug('↗ sending twitter message');
|
logger.debug('↗ sending twitter message');
|
||||||
|
|
||||||
let status = `${Print.inStock(link, store)}\n${
|
let status = `${Print.inStock(link, store)}\n${
|
||||||
link.cartUrl ? link.cartUrl : link.url
|
link.cartUrl ? link.cartUrl : link.url
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
if (twitter.tweetTags) {
|
if (twitter.tweetTags) {
|
||||||
status += `\n\n${twitter.tweetTags}`;
|
status += `\n\n${twitter.tweetTags}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
client.post('statuses/update', {status}, (error) => {
|
client.post('statuses/update', {status}, error => {
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error("✖ couldn't send twitter notification", error);
|
logger.error("✖ couldn't send twitter notification", error);
|
||||||
} else {
|
} else {
|
||||||
logger.info('✔ twitter notification sent');
|
logger.info('✔ twitter notification sent');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+43
-56
@@ -6,77 +6,64 @@ import {filterSeries} from './filter';
|
|||||||
import {usingResponse} from '../util';
|
import {usingResponse} from '../util';
|
||||||
|
|
||||||
function addNewLinks(store: Store, links: Link[], series: Series) {
|
function addNewLinks(store: Store, links: Link[], series: Series) {
|
||||||
if (links.length === 0) {
|
if (links.length === 0) {
|
||||||
logger.debug(
|
logger.debug(Print.message('NO STORE LINKS FOUND', series, store, true));
|
||||||
Print.message('NO STORE LINKS FOUND', series, store, true)
|
|
||||||
);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const existingUrls = new Set(store.links.map((link) => link.url));
|
const existingUrls = new Set(store.links.map(link => link.url));
|
||||||
const newLinks = links.filter((link) => !existingUrls.has(link.url));
|
const newLinks = links.filter(link => !existingUrls.has(link.url));
|
||||||
|
|
||||||
if (newLinks.length === 0) {
|
if (newLinks.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
Print.message(
|
Print.message(`FOUND ${newLinks.length} STORE LINKS`, series, store, true)
|
||||||
`FOUND ${newLinks.length} STORE LINKS`,
|
);
|
||||||
series,
|
logger.debug(JSON.stringify(newLinks, null, 2));
|
||||||
store,
|
|
||||||
true
|
|
||||||
)
|
|
||||||
);
|
|
||||||
logger.debug(JSON.stringify(newLinks, null, 2));
|
|
||||||
|
|
||||||
store.links = store.links.concat(newLinks);
|
store.links = store.links.concat(newLinks);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function fetchLinks(store: Store, browser: Browser) {
|
export async function fetchLinks(store: Store, browser: Browser) {
|
||||||
if (!store.linksBuilder) {
|
if (!store.linksBuilder) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const promises: Array<Promise<void>> = [];
|
const promises: Array<Promise<void>> = [];
|
||||||
|
|
||||||
for (let {series, url} of store.linksBuilder.urls) {
|
// eslint-disable-next-line prefer-const
|
||||||
if (!filterSeries(series)) {
|
for (let {series, url} of store.linksBuilder.urls) {
|
||||||
continue;
|
if (!filterSeries(series)) {
|
||||||
}
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(Print.message('DETECTING STORE LINKS', series, store, true));
|
||||||
Print.message('DETECTING STORE LINKS', series, store, true)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!Array.isArray(url)) {
|
if (!Array.isArray(url)) {
|
||||||
url = [url];
|
url = [url];
|
||||||
}
|
}
|
||||||
|
|
||||||
url.map((x) =>
|
url.map(x =>
|
||||||
promises.push(
|
promises.push(
|
||||||
usingResponse(browser, x, async (response) => {
|
usingResponse(browser, x, async response => {
|
||||||
const text = await response?.text();
|
const text = await response?.text();
|
||||||
|
|
||||||
if (!text) {
|
if (!text) {
|
||||||
logger.error(
|
logger.error(Print.message('NO RESPONSE', series, store, true));
|
||||||
Print.message('NO RESPONSE', series, store, true)
|
return;
|
||||||
);
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const docElement = cheerio.load(text).root();
|
const docElement = cheerio.load(text).root();
|
||||||
const links = store.linksBuilder!.builder(
|
const links = store.linksBuilder!.builder(docElement, series);
|
||||||
docElement,
|
|
||||||
series
|
|
||||||
);
|
|
||||||
|
|
||||||
addNewLinks(store, links, series);
|
addNewLinks(store, links, series);
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-36
@@ -7,11 +7,11 @@ import {config} from '../config';
|
|||||||
* @param brand The brand of the GPU
|
* @param brand The brand of the GPU
|
||||||
*/
|
*/
|
||||||
function filterBrand(brand: Link['brand']): boolean {
|
function filterBrand(brand: Link['brand']): boolean {
|
||||||
if (config.store.showOnlyBrands.length === 0) {
|
if (config.store.showOnlyBrands.length === 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return config.store.showOnlyBrands.includes(brand);
|
return config.store.showOnlyBrands.includes(brand);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,31 +21,28 @@ function filterBrand(brand: Link['brand']): boolean {
|
|||||||
* @param series The series of the GPU
|
* @param series The series of the GPU
|
||||||
*/
|
*/
|
||||||
function filterModel(model: Link['model'], series: Link['series']): boolean {
|
function filterModel(model: Link['model'], series: Link['series']): boolean {
|
||||||
if (config.store.showOnlyModels.length === 0) {
|
if (config.store.showOnlyModels.length === 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const sanitizedModel = model.replace(/\s/g, '');
|
const sanitizedModel = model.replace(/\s/g, '');
|
||||||
const sanitizedSeries = series.replace(/\s/g, '');
|
const sanitizedSeries = series.replace(/\s/g, '');
|
||||||
for (const configModelEntry of config.store.showOnlyModels) {
|
for (const configModelEntry of config.store.showOnlyModels) {
|
||||||
const sanitizedConfigModel = configModelEntry.name.replace(/\s/g, '');
|
const sanitizedConfigModel = configModelEntry.name.replace(/\s/g, '');
|
||||||
const sanitizedConfigSeries = configModelEntry.series.replace(
|
const sanitizedConfigSeries = configModelEntry.series.replace(/\s/g, '');
|
||||||
/\s/g,
|
if (sanitizedConfigSeries) {
|
||||||
''
|
if (
|
||||||
);
|
sanitizedSeries === sanitizedConfigSeries &&
|
||||||
if (sanitizedConfigSeries) {
|
sanitizedModel === sanitizedConfigModel
|
||||||
if (
|
) {
|
||||||
sanitizedSeries === sanitizedConfigSeries &&
|
return true;
|
||||||
sanitizedModel === sanitizedConfigModel
|
}
|
||||||
) {
|
} else if (sanitizedModel === sanitizedConfigModel) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (sanitizedModel === sanitizedConfigModel) {
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,11 +51,11 @@ function filterModel(model: Link['model'], series: Link['series']): boolean {
|
|||||||
* @param series The series of the GPU
|
* @param series The series of the GPU
|
||||||
*/
|
*/
|
||||||
export function filterSeries(series: Link['series']): boolean {
|
export function filterSeries(series: Link['series']): boolean {
|
||||||
if (config.store.showOnlySeries.length === 0) {
|
if (config.store.showOnlySeries.length === 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return config.store.showOnlySeries.includes(series);
|
return config.store.showOnlySeries.includes(series);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -67,9 +64,9 @@ export function filterSeries(series: Link['series']): boolean {
|
|||||||
* @param link The store link of the GPU
|
* @param link The store link of the GPU
|
||||||
*/
|
*/
|
||||||
export function filterStoreLink(link: Link): boolean {
|
export function filterStoreLink(link: Link): boolean {
|
||||||
return (
|
return (
|
||||||
filterBrand(link.brand) &&
|
filterBrand(link.brand) &&
|
||||||
filterModel(link.model, link.series) &&
|
filterModel(link.model, link.series) &&
|
||||||
filterSeries(link.series)
|
filterSeries(link.series)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,101 +3,101 @@ import {Page} from 'puppeteer';
|
|||||||
import {logger} from '../logger';
|
import {logger} from '../logger';
|
||||||
|
|
||||||
export type Selector = {
|
export type Selector = {
|
||||||
requireVisible: boolean;
|
requireVisible: boolean;
|
||||||
selector: string;
|
selector: string;
|
||||||
type: 'innerHTML' | 'outerHTML' | 'textContent';
|
type: 'innerHTML' | 'outerHTML' | 'textContent';
|
||||||
};
|
};
|
||||||
|
|
||||||
function isElementArray(query: LabelQuery): query is Element[] {
|
function isElementArray(query: LabelQuery): query is Element[] {
|
||||||
return (
|
return (
|
||||||
Array.isArray(query) && query.length > 0 && typeof query[0] === 'object'
|
Array.isArray(query) && query.length > 0 && typeof query[0] === 'object'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQueryAsElementArray(
|
function getQueryAsElementArray(
|
||||||
query: LabelQuery,
|
query: LabelQuery,
|
||||||
defaultContainer: string
|
defaultContainer: string
|
||||||
): Array<Required<Element>> {
|
): Array<Required<Element>> {
|
||||||
if (isElementArray(query)) {
|
if (isElementArray(query)) {
|
||||||
return query.map((x) => ({
|
return query.map(x => ({
|
||||||
container: x.container ?? defaultContainer,
|
container: x.container ?? defaultContainer,
|
||||||
text: x.text
|
text: x.text,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(query)) {
|
if (Array.isArray(query)) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
container: defaultContainer,
|
container: defaultContainer,
|
||||||
text: query
|
text: query,
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
container: query.container ?? defaultContainer,
|
container: query.container ?? defaultContainer,
|
||||||
text: query.text
|
text: query.text,
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function pageIncludesLabels(
|
export async function pageIncludesLabels(
|
||||||
page: Page,
|
page: Page,
|
||||||
query: LabelQuery,
|
query: LabelQuery,
|
||||||
options: Selector
|
options: Selector
|
||||||
) {
|
) {
|
||||||
const elementQueries = getQueryAsElementArray(query, options.selector);
|
const elementQueries = getQueryAsElementArray(query, options.selector);
|
||||||
|
|
||||||
const resolved = await Promise.all(
|
const resolved = await Promise.all(
|
||||||
elementQueries.map(async (query) => {
|
elementQueries.map(async query => {
|
||||||
const selector = {...options, selector: query.container};
|
const selector = {...options, selector: query.container};
|
||||||
const contents = (await extractPageContents(page, selector)) ?? '';
|
const contents = (await extractPageContents(page, selector)) ?? '';
|
||||||
|
|
||||||
if (!contents) {
|
if (!contents) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(contents);
|
logger.debug(contents);
|
||||||
|
|
||||||
return includesLabels(contents, query.text);
|
return includesLabels(contents, query.text);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
return resolved.includes(true);
|
return resolved.includes(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function extractPageContents(
|
export async function extractPageContents(
|
||||||
page: Page,
|
page: Page,
|
||||||
selector: Selector
|
selector: Selector
|
||||||
): Promise<string | null> {
|
): Promise<string | null> {
|
||||||
return page.evaluate((options: Selector) => {
|
return page.evaluate((options: Selector) => {
|
||||||
const element: globalThis.HTMLElement | null = document.querySelector(
|
const element: globalThis.HTMLElement | null = document.querySelector(
|
||||||
options.selector
|
options.selector
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!element) {
|
if (!element) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
options.requireVisible &&
|
options.requireVisible &&
|
||||||
!(element.offsetWidth > 0 && element.offsetHeight > 0)
|
!(element.offsetWidth > 0 && element.offsetHeight > 0)
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (options.type) {
|
switch (options.type) {
|
||||||
case 'innerHTML':
|
case 'innerHTML':
|
||||||
return element.innerHTML;
|
return element.innerHTML;
|
||||||
case 'outerHTML':
|
case 'outerHTML':
|
||||||
return element.outerHTML;
|
return element.outerHTML;
|
||||||
case 'textContent':
|
case 'textContent':
|
||||||
return element.textContent;
|
return element.textContent;
|
||||||
default:
|
default:
|
||||||
return 'Error: selector.type is unknown';
|
return 'Error: selector.type is unknown';
|
||||||
}
|
}
|
||||||
}, selector);
|
}, selector);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -107,32 +107,32 @@ export async function extractPageContents(
|
|||||||
* @param searchLabels Search labels for a match.
|
* @param searchLabels Search labels for a match.
|
||||||
*/
|
*/
|
||||||
export function includesLabels(
|
export function includesLabels(
|
||||||
domText: string,
|
domText: string,
|
||||||
searchLabels: string[]
|
searchLabels: string[]
|
||||||
): boolean {
|
): boolean {
|
||||||
const domTextLowerCase = domText.toLowerCase();
|
const domTextLowerCase = domText.toLowerCase();
|
||||||
return searchLabels.some((label) =>
|
return searchLabels.some(label =>
|
||||||
domTextLowerCase.includes(label.toLowerCase())
|
domTextLowerCase.includes(label.toLowerCase())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getPrice(
|
export async function getPrice(
|
||||||
page: Page,
|
page: Page,
|
||||||
query: Pricing,
|
query: Pricing,
|
||||||
options: Selector
|
options: Selector
|
||||||
): Promise<number | null> {
|
): Promise<number | null> {
|
||||||
const selector = {...options, selector: query.container};
|
const selector = {...options, selector: query.container};
|
||||||
const priceString = await extractPageContents(page, selector);
|
const priceString = await extractPageContents(page, selector);
|
||||||
|
|
||||||
if (priceString) {
|
if (priceString) {
|
||||||
const priceSeparator = query.euroFormat ? /\./g : /,/g;
|
const priceSeparator = query.euroFormat ? /\./g : /,/g;
|
||||||
const price = Number.parseFloat(
|
const price = Number.parseFloat(
|
||||||
priceString.replace(priceSeparator, '').match(/\d+/g)!.join('.')
|
priceString.replace(priceSeparator, '').match(/\d+/g)!.join('.')
|
||||||
);
|
);
|
||||||
|
|
||||||
logger.debug('received price', price);
|
logger.debug('received price', price);
|
||||||
return price;
|
return price;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+408
-433
@@ -1,21 +1,21 @@
|
|||||||
import {
|
import {
|
||||||
Browser,
|
Browser,
|
||||||
Page,
|
Page,
|
||||||
PageEventObj,
|
PageEventObj,
|
||||||
Request,
|
Request,
|
||||||
RespondOptions,
|
RespondOptions,
|
||||||
Response
|
Response,
|
||||||
} from 'puppeteer';
|
} from 'puppeteer';
|
||||||
import {Link, Store, getStores} from './model';
|
import {Link, Store, getStores} from './model';
|
||||||
import {Print, logger} from '../logger';
|
import {Print, logger} from '../logger';
|
||||||
import {Selector, getPrice, pageIncludesLabels} from './includes-labels';
|
import {Selector, getPrice, pageIncludesLabels} from './includes-labels';
|
||||||
import {
|
import {
|
||||||
closePage,
|
closePage,
|
||||||
delay,
|
delay,
|
||||||
getRandomUserAgent,
|
getRandomUserAgent,
|
||||||
getSleepTime,
|
getSleepTime,
|
||||||
isStatusCodeInRange,
|
isStatusCodeInRange,
|
||||||
noop
|
noop,
|
||||||
} from '../util';
|
} from '../util';
|
||||||
import {disableBlockerInPage, enableBlockerInPage} from '../adblocker';
|
import {disableBlockerInPage, enableBlockerInPage} from '../adblocker';
|
||||||
import {config} from '../config';
|
import {config} from '../config';
|
||||||
@@ -31,106 +31,114 @@ const inStock: Record<string, boolean> = {};
|
|||||||
const linkBuilderLastRunTimes: Record<string, number> = {};
|
const linkBuilderLastRunTimes: Record<string, number> = {};
|
||||||
|
|
||||||
function nextProxy(store: Store) {
|
function nextProxy(store: Store) {
|
||||||
if (!store.proxyList) {
|
if (!store.proxyList) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (store.currentProxyIndex === undefined) {
|
if (store.currentProxyIndex === undefined) {
|
||||||
store.currentProxyIndex = 0;
|
store.currentProxyIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
store.currentProxyIndex++;
|
store.currentProxyIndex++;
|
||||||
if (store.currentProxyIndex >= store.proxyList.length) {
|
if (store.currentProxyIndex >= store.proxyList.length) {
|
||||||
store.currentProxyIndex = 0;
|
store.currentProxyIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
`ℹ [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${store.proxyList.length}`
|
`ℹ [${store.name}] Next proxy index: ${store.currentProxyIndex} / Count: ${store.proxyList.length}`
|
||||||
);
|
);
|
||||||
|
|
||||||
return store.proxyList[store.currentProxyIndex];
|
return store.proxyList[store.currentProxyIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleLowBandwidth(request: Request) {
|
async function handleLowBandwidth(request: Request) {
|
||||||
if (!config.browser.lowBandwidth) {
|
if (!config.browser.lowBandwidth) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const typ = request.resourceType();
|
const typ = request.resourceType();
|
||||||
if (typ === 'font' || typ === 'image') {
|
if (typ === 'font' || typ === 'image') {
|
||||||
try {
|
try {
|
||||||
await request.abort();
|
await request.abort();
|
||||||
} catch {}
|
} catch {
|
||||||
|
logger.debug('Failed to abort request.');
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleProxy(request: Request, proxy?: string) {
|
async function handleProxy(request: Request, proxy?: string) {
|
||||||
if (!proxy) {
|
if (!proxy) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await useProxy(request, proxy);
|
await useProxy(request, proxy);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error('handleProxy', error);
|
logger.error('handleProxy', error);
|
||||||
try {
|
try {
|
||||||
await request.abort();
|
await request.abort();
|
||||||
} catch {}
|
} catch {
|
||||||
}
|
logger.debug('Failed to abort request.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
|
async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
|
||||||
if (!adBlockRequestHandler) {
|
if (!adBlockRequestHandler) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise(resolve => {
|
||||||
const continueFunc = async () => {
|
const continueFunc = async () => {
|
||||||
resolve(false);
|
resolve(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const abortFunc = async () => {
|
const abortFunc = async () => {
|
||||||
try {
|
try {
|
||||||
await request.abort();
|
await request.abort();
|
||||||
} catch {}
|
} catch {
|
||||||
|
logger.debug('Failed to abort request.');
|
||||||
|
}
|
||||||
|
|
||||||
resolve(true);
|
resolve(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
const respondFunc = async (response: RespondOptions) => {
|
const respondFunc = async (response: RespondOptions) => {
|
||||||
try {
|
try {
|
||||||
await request.respond(response);
|
await request.respond(response);
|
||||||
} catch {}
|
} catch {
|
||||||
|
logger.debug('Failed to abort request.');
|
||||||
|
}
|
||||||
|
|
||||||
resolve(true);
|
resolve(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
const requestProxy = new Proxy(request, {
|
const requestProxy = new Proxy(request, {
|
||||||
get(target, prop, receiver) {
|
get(target, prop, receiver) {
|
||||||
if (prop === 'continue') {
|
if (prop === 'continue') {
|
||||||
return continueFunc;
|
return continueFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prop === 'abort') {
|
if (prop === 'abort') {
|
||||||
return abortFunc;
|
return abortFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prop === 'respond') {
|
if (prop === 'respond') {
|
||||||
return respondFunc;
|
return respondFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Reflect.get(target, prop, receiver);
|
return Reflect.get(target, prop, receiver);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
adBlockRequestHandler(requestProxy);
|
adBlockRequestHandler(requestProxy);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -142,430 +150,397 @@ async function handleAdBlock(request: Request, adBlockRequestHandler: any) {
|
|||||||
* @param store Vendor of graphics cards.
|
* @param store Vendor of graphics cards.
|
||||||
*/
|
*/
|
||||||
async function lookup(browser: Browser, store: Store) {
|
async function lookup(browser: Browser, store: Store) {
|
||||||
if (!getStores().has(store.name)) {
|
if (!getStores().has(store.name)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (store.linksBuilder) {
|
if (store.linksBuilder) {
|
||||||
const lastRunTime = linkBuilderLastRunTimes[store.name] ?? -1;
|
const lastRunTime = linkBuilderLastRunTimes[store.name] ?? -1;
|
||||||
const ttl = store.linksBuilder.ttl ?? Number.MAX_SAFE_INTEGER;
|
const ttl = store.linksBuilder.ttl ?? Number.MAX_SAFE_INTEGER;
|
||||||
if (lastRunTime === -1 || Date.now() - lastRunTime > ttl) {
|
if (lastRunTime === -1 || Date.now() - lastRunTime > ttl) {
|
||||||
logger.info(`[${store.name}] Running linksBuilder...`);
|
logger.info(`[${store.name}] Running linksBuilder...`);
|
||||||
try {
|
try {
|
||||||
await fetchLinks(store, browser);
|
await fetchLinks(store, browser);
|
||||||
linkBuilderLastRunTimes[store.name] = Date.now();
|
linkBuilderLastRunTimes[store.name] = Date.now();
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error(error);
|
logger.error(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable no-await-in-loop */
|
/* eslint-disable no-await-in-loop */
|
||||||
for (const link of store.links) {
|
for (const link of store.links) {
|
||||||
if (!filterStoreLink(link)) {
|
if (!filterStoreLink(link)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.page.inStockWaitTime && inStock[link.url]) {
|
if (config.page.inStockWaitTime && inStock[link.url]) {
|
||||||
logger.info(Print.inStockWaiting(link, store, true));
|
logger.info(Print.inStockWaiting(link, store, true));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const proxy = nextProxy(store);
|
const proxy = nextProxy(store);
|
||||||
|
|
||||||
const useAdBlock =
|
const useAdBlock = !config.browser.lowBandwidth && !store.disableAdBlocker;
|
||||||
!config.browser.lowBandwidth && !store.disableAdBlocker;
|
const customContext = config.browser.isIncognito;
|
||||||
const customContext = config.browser.isIncognito;
|
|
||||||
|
|
||||||
const context = customContext
|
const context = customContext
|
||||||
? await browser.createIncognitoBrowserContext()
|
? await browser.createIncognitoBrowserContext()
|
||||||
: browser.defaultBrowserContext();
|
: browser.defaultBrowserContext();
|
||||||
const page = await context.newPage();
|
const page = await context.newPage();
|
||||||
await page.setRequestInterception(true);
|
await page.setRequestInterception(true);
|
||||||
|
|
||||||
page.setDefaultNavigationTimeout(config.page.timeout);
|
page.setDefaultNavigationTimeout(config.page.timeout);
|
||||||
await page.setUserAgent(await getRandomUserAgent());
|
await page.setUserAgent(await getRandomUserAgent());
|
||||||
|
|
||||||
let adBlockRequestHandler: any;
|
let adBlockRequestHandler: any;
|
||||||
let pageProxy;
|
let pageProxy;
|
||||||
if (useAdBlock) {
|
if (useAdBlock) {
|
||||||
const onProxyFunc = (event: keyof PageEventObj, handler: any) => {
|
const onProxyFunc = (event: keyof PageEventObj, handler: any) => {
|
||||||
if (event !== 'request') {
|
if (event !== 'request') {
|
||||||
page.on(event, handler);
|
page.on(event, handler);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
adBlockRequestHandler = handler;
|
adBlockRequestHandler = handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
pageProxy = new Proxy(page, {
|
pageProxy = new Proxy(page, {
|
||||||
get(target, prop, receiver) {
|
get(target, prop, receiver) {
|
||||||
if (prop === 'on') {
|
if (prop === 'on') {
|
||||||
return onProxyFunc;
|
return onProxyFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Give dummy setRequestInterception to avoid AdBlock from messing with it
|
// Give dummy setRequestInterception to avoid AdBlock from messing with it
|
||||||
if (prop === 'setRequestInterception') {
|
if (prop === 'setRequestInterception') {
|
||||||
return noop;
|
return noop;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Reflect.get(target, prop, receiver);
|
return Reflect.get(target, prop, receiver);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
await enableBlockerInPage(pageProxy);
|
await enableBlockerInPage(pageProxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
await page.setRequestInterception(true);
|
await page.setRequestInterception(true);
|
||||||
page.on('request', async (request) => {
|
page.on('request', async request => {
|
||||||
if (await handleLowBandwidth(request)) {
|
if (await handleLowBandwidth(request)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (await handleAdBlock(request, adBlockRequestHandler)) {
|
if (await handleAdBlock(request, adBlockRequestHandler)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (await handleProxy(request, proxy)) {
|
if (await handleProxy(request, proxy)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await request.continue();
|
await request.continue();
|
||||||
} catch {}
|
} catch {
|
||||||
});
|
logger.debug('Failed to continue request.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (store.captchaDeterrent) {
|
if (store.captchaDeterrent) {
|
||||||
await runCaptchaDeterrent(browser, store, page);
|
await runCaptchaDeterrent(browser, store, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
let statusCode = 0;
|
let statusCode = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
statusCode = await lookupCard(browser, store, page, link);
|
statusCode = await lookupCard(browser, store, page, link);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`✖ [${store.name}] ${link.brand} ${link.series} ${
|
`✖ [${store.name}] ${link.brand} ${link.series} ${link.model} - ${
|
||||||
link.model
|
(error as Error).message
|
||||||
} - ${(error as Error).message}`
|
}`
|
||||||
);
|
);
|
||||||
const client = await page.target().createCDPSession();
|
const client = await page.target().createCDPSession();
|
||||||
await client.send('Network.clearBrowserCookies');
|
await client.send('Network.clearBrowserCookies');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pageProxy) {
|
if (pageProxy) {
|
||||||
await disableBlockerInPage(pageProxy);
|
await disableBlockerInPage(pageProxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Must apply backoff before closing the page, e.g. if CloudFlare is
|
// Must apply backoff before closing the page, e.g. if CloudFlare is
|
||||||
// used to detect bot traffic, it introduces a 5 second page delay
|
// used to detect bot traffic, it introduces a 5 second page delay
|
||||||
// before redirecting to the next page
|
// before redirecting to the next page
|
||||||
await processBackoffDelay(store, link, statusCode);
|
await processBackoffDelay(store, link, statusCode);
|
||||||
await closePage(page);
|
await closePage(page);
|
||||||
if (customContext) {
|
if (customContext) {
|
||||||
await context.close();
|
await context.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* eslint-enable no-await-in-loop */
|
/* eslint-enable no-await-in-loop */
|
||||||
}
|
}
|
||||||
|
|
||||||
async function lookupCard(
|
async function lookupCard(
|
||||||
browser: Browser,
|
browser: Browser,
|
||||||
store: Store,
|
store: Store,
|
||||||
page: Page,
|
page: Page,
|
||||||
link: Link
|
link: Link
|
||||||
): Promise<number> {
|
): Promise<number> {
|
||||||
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
||||||
const response: Response | null = await page.goto(link.url, {
|
const response: Response | null = await page.goto(link.url, {
|
||||||
waitUntil: givenWaitFor
|
waitUntil: givenWaitFor,
|
||||||
});
|
});
|
||||||
|
|
||||||
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
|
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
|
||||||
const statusCode = await handleResponse(
|
const statusCode = await handleResponse(browser, store, page, link, response);
|
||||||
browser,
|
|
||||||
store,
|
|
||||||
page,
|
|
||||||
link,
|
|
||||||
response
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
|
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
|
||||||
return statusCode;
|
return statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (await lookupCardInStock(store, page, link)) {
|
if (await lookupCardInStock(store, page, link)) {
|
||||||
const givenUrl =
|
const givenUrl =
|
||||||
link.cartUrl && config.store.autoAddToCart
|
link.cartUrl && config.store.autoAddToCart ? link.cartUrl : link.url;
|
||||||
? link.cartUrl
|
logger.info(`${Print.inStock(link, store, true)}\n${givenUrl}`);
|
||||||
: link.url;
|
|
||||||
logger.info(`${Print.inStock(link, store, true)}\n${givenUrl}`);
|
|
||||||
|
|
||||||
if (config.browser.open) {
|
if (config.browser.open) {
|
||||||
await (link.openCartAction === undefined
|
await (link.openCartAction === undefined
|
||||||
? open(givenUrl)
|
? open(givenUrl)
|
||||||
: link.openCartAction(browser));
|
: link.openCartAction(browser));
|
||||||
}
|
}
|
||||||
|
|
||||||
sendNotification(link, store);
|
sendNotification(link, store);
|
||||||
|
|
||||||
if (config.page.inStockWaitTime) {
|
if (config.page.inStockWaitTime) {
|
||||||
inStock[link.url] = true;
|
inStock[link.url] = true;
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
inStock[link.url] = false;
|
inStock[link.url] = false;
|
||||||
}, 1000 * config.page.inStockWaitTime);
|
}, 1000 * config.page.inStockWaitTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.page.screenshot) {
|
if (config.page.screenshot) {
|
||||||
logger.debug('ℹ saving screenshot');
|
logger.debug('ℹ saving screenshot');
|
||||||
|
|
||||||
link.screenshot = `success-${Date.now()}.png`;
|
link.screenshot = `success-${Date.now()}.png`;
|
||||||
await page.screenshot({path: link.screenshot});
|
await page.screenshot({path: link.screenshot});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return statusCode;
|
return statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line max-params
|
// eslint-disable-next-line max-params
|
||||||
async function handleResponse(
|
async function handleResponse(
|
||||||
browser: Browser,
|
browser: Browser,
|
||||||
store: Store,
|
store: Store,
|
||||||
page: Page,
|
page: Page,
|
||||||
link: Link,
|
link: Link,
|
||||||
response?: Response | null,
|
response?: Response | null,
|
||||||
recursionDepth = 0
|
recursionDepth = 0
|
||||||
) {
|
) {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
logger.debug(Print.noResponse(link, store, true));
|
logger.debug(Print.noResponse(link, store, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
|
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
|
||||||
let statusCode = response?.status() ?? 0;
|
let statusCode = response?.status() ?? 0;
|
||||||
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
|
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
|
||||||
if (statusCode === 429) {
|
if (statusCode === 429) {
|
||||||
logger.warn(Print.rateLimit(link, store, true));
|
logger.warn(Print.rateLimit(link, store, true));
|
||||||
} else if (statusCode === 503) {
|
} else if (statusCode === 503) {
|
||||||
if (await checkIsCloudflare(store, page, link)) {
|
if (await checkIsCloudflare(store, page, link)) {
|
||||||
if (recursionDepth > 4) {
|
if (recursionDepth > 4) {
|
||||||
logger.warn(Print.recursionLimit(link, store, true));
|
logger.warn(Print.recursionLimit(link, store, true));
|
||||||
} else {
|
} else {
|
||||||
const response: Response | null = await page.waitForNavigation(
|
const response: Response | null = await page.waitForNavigation({
|
||||||
{
|
waitUntil: 'networkidle0',
|
||||||
waitUntil: 'networkidle0'
|
});
|
||||||
}
|
recursionDepth++;
|
||||||
);
|
statusCode = await handleResponse(
|
||||||
recursionDepth++;
|
browser,
|
||||||
statusCode = await handleResponse(
|
store,
|
||||||
browser,
|
page,
|
||||||
store,
|
link,
|
||||||
page,
|
response,
|
||||||
link,
|
recursionDepth
|
||||||
response,
|
);
|
||||||
recursionDepth
|
}
|
||||||
);
|
} else {
|
||||||
}
|
logger.warn(Print.badStatusCode(link, store, statusCode, true));
|
||||||
} else {
|
}
|
||||||
logger.warn(Print.badStatusCode(link, store, statusCode, true));
|
} else {
|
||||||
}
|
logger.warn(Print.badStatusCode(link, store, statusCode, true));
|
||||||
} else {
|
}
|
||||||
logger.warn(Print.badStatusCode(link, store, statusCode, true));
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return statusCode;
|
return statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function checkIsCloudflare(store: Store, page: Page, link: Link) {
|
async function checkIsCloudflare(store: Store, page: Page, link: Link) {
|
||||||
const baseOptions: Selector = {
|
const baseOptions: Selector = {
|
||||||
requireVisible: true,
|
requireVisible: true,
|
||||||
selector: 'body',
|
selector: 'body',
|
||||||
type: 'textContent'
|
type: 'textContent',
|
||||||
};
|
};
|
||||||
|
|
||||||
const cloudflareLabel = {
|
const cloudflareLabel = {
|
||||||
container: 'div[class="attribution"] a[rel="noopener noreferrer"]',
|
container: 'div[class="attribution"] a[rel="noopener noreferrer"]',
|
||||||
text: ['Cloudflare']
|
text: ['Cloudflare'],
|
||||||
};
|
};
|
||||||
|
|
||||||
if (await pageIncludesLabels(page, cloudflareLabel, baseOptions)) {
|
if (await pageIncludesLabels(page, cloudflareLabel, baseOptions)) {
|
||||||
logger.warn(Print.cloudflare(link, store, true));
|
logger.warn(Print.cloudflare(link, store, true));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function lookupCardInStock(store: Store, page: Page, link: Link) {
|
async function lookupCardInStock(store: Store, page: Page, link: Link) {
|
||||||
const baseOptions: Selector = {
|
const baseOptions: Selector = {
|
||||||
requireVisible: false,
|
requireVisible: false,
|
||||||
selector: store.labels.container ?? 'body',
|
selector: store.labels.container ?? 'body',
|
||||||
type: 'textContent'
|
type: 'textContent',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (store.labels.captcha) {
|
if (store.labels.captcha) {
|
||||||
if (await pageIncludesLabels(page, store.labels.captcha, baseOptions)) {
|
if (await pageIncludesLabels(page, store.labels.captcha, baseOptions)) {
|
||||||
logger.warn(Print.captcha(link, store, true));
|
logger.warn(Print.captcha(link, store, true));
|
||||||
await delay(getSleepTime(store));
|
await delay(getSleepTime(store));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (store.labels.bannedSeller) {
|
if (store.labels.bannedSeller) {
|
||||||
if (
|
if (
|
||||||
await pageIncludesLabels(
|
await pageIncludesLabels(page, store.labels.bannedSeller, baseOptions)
|
||||||
page,
|
) {
|
||||||
store.labels.bannedSeller,
|
logger.warn(Print.bannedSeller(link, store, true));
|
||||||
baseOptions
|
return false;
|
||||||
)
|
}
|
||||||
) {
|
}
|
||||||
logger.warn(Print.bannedSeller(link, store, true));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (store.labels.outOfStock) {
|
if (store.labels.outOfStock) {
|
||||||
if (
|
if (await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)) {
|
||||||
await pageIncludesLabels(page, store.labels.outOfStock, baseOptions)
|
logger.info(Print.outOfStock(link, store, true));
|
||||||
) {
|
return false;
|
||||||
logger.info(Print.outOfStock(link, store, true));
|
}
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (store.labels.maxPrice) {
|
if (store.labels.maxPrice) {
|
||||||
const maxPrice = config.store.maxPrice.series[link.series];
|
const maxPrice = config.store.maxPrice.series[link.series];
|
||||||
|
|
||||||
link.price = await getPrice(page, store.labels.maxPrice, baseOptions);
|
link.price = await getPrice(page, store.labels.maxPrice, baseOptions);
|
||||||
|
|
||||||
if (link.price && link.price > maxPrice && maxPrice > 0) {
|
if (link.price && link.price > maxPrice && maxPrice > 0) {
|
||||||
logger.info(Print.maxPrice(link, store, maxPrice, true));
|
logger.info(Print.maxPrice(link, store, maxPrice, true));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fixme: currently causing issues
|
// Fixme: currently causing issues
|
||||||
// Do API inventory validation in realtime (no cache) if available
|
// Do API inventory validation in realtime (no cache) if available
|
||||||
// if (
|
// if (
|
||||||
// store.realTimeInventoryLookup !== undefined &&
|
// store.realTimeInventoryLookup !== undefined &&
|
||||||
// link.itemNumber !== undefined
|
// link.itemNumber !== undefined
|
||||||
// ) {
|
// ) {
|
||||||
// return store.realTimeInventoryLookup(link.itemNumber);
|
// return store.realTimeInventoryLookup(link.itemNumber);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (store.labels.inStock) {
|
if (store.labels.inStock) {
|
||||||
const options = {
|
const options = {
|
||||||
...baseOptions,
|
...baseOptions,
|
||||||
requireVisible: true,
|
requireVisible: true,
|
||||||
type: 'outerHTML' as const
|
type: 'outerHTML' as const,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
|
if (!(await pageIncludesLabels(page, store.labels.inStock, options))) {
|
||||||
logger.info(Print.outOfStock(link, store, true));
|
logger.info(Print.outOfStock(link, store, true));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (link.labels?.inStock) {
|
if (link.labels?.inStock) {
|
||||||
const options = {
|
const options = {
|
||||||
...baseOptions,
|
...baseOptions,
|
||||||
requireVisible: true,
|
requireVisible: true,
|
||||||
type: 'outerHTML' as const
|
type: 'outerHTML' as const,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
|
if (!(await pageIncludesLabels(page, link.labels.inStock, options))) {
|
||||||
logger.info(Print.outOfStock(link, store, true));
|
logger.info(Print.outOfStock(link, store, true));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function runCaptchaDeterrent(browser: Browser, store: Store, page: Page) {
|
async function runCaptchaDeterrent(browser: Browser, store: Store, page: Page) {
|
||||||
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
|
const successStatusCodes = store.successStatusCodes ?? [[0, 399]];
|
||||||
let statusCode = 0;
|
let statusCode = 0;
|
||||||
let deterrentLinks: string[] = [];
|
let deterrentLinks: string[] = [];
|
||||||
|
|
||||||
logger.debug(`[${store.name}] Navigating to random anti-captcha page...`);
|
logger.debug(`[${store.name}] Navigating to random anti-captcha page...`);
|
||||||
|
|
||||||
if (store.captchaDeterrent?.hardLinks?.length) {
|
if (store.captchaDeterrent?.hardLinks?.length) {
|
||||||
deterrentLinks = deterrentLinks.concat(
|
deterrentLinks = deterrentLinks.concat(store.captchaDeterrent.hardLinks);
|
||||||
store.captchaDeterrent.hardLinks
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (store.captchaDeterrent?.searchUrl) {
|
if (store.captchaDeterrent?.searchUrl) {
|
||||||
if (store.captchaDeterrent.searchTerms) {
|
if (store.captchaDeterrent.searchTerms) {
|
||||||
store.captchaDeterrent.searchTerms.forEach((element) =>
|
store.captchaDeterrent.searchTerms.forEach(element =>
|
||||||
deterrentLinks.push(
|
deterrentLinks.push(
|
||||||
store.captchaDeterrent?.searchUrl
|
store.captchaDeterrent?.searchUrl
|
||||||
? store.captchaDeterrent.searchUrl.replace(
|
? store.captchaDeterrent.searchUrl.replace('%%s', element)
|
||||||
'%%s',
|
: ''
|
||||||
element
|
)
|
||||||
)
|
);
|
||||||
: ''
|
}
|
||||||
)
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (deterrentLinks.length > 0) {
|
if (deterrentLinks.length > 0) {
|
||||||
const link: Link = {
|
const link: Link = {
|
||||||
brand: 'captcha-deterrent',
|
brand: 'captcha-deterrent',
|
||||||
model: 'captcha-deterrent',
|
model: 'captcha-deterrent',
|
||||||
series: 'captcha-deterrent',
|
series: 'captcha-deterrent',
|
||||||
url:
|
url: deterrentLinks[Math.floor(Math.random() * deterrentLinks.length)],
|
||||||
deterrentLinks[
|
};
|
||||||
Math.floor(Math.random() * deterrentLinks.length)
|
logger.debug(`Selected captcha-deterrent link: ${link.url}`);
|
||||||
]
|
|
||||||
};
|
|
||||||
logger.debug(`Selected captcha-deterrent link: ${link.url}`);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const givenWaitFor = store.waitUntil
|
const givenWaitFor = store.waitUntil ? store.waitUntil : 'networkidle0';
|
||||||
? store.waitUntil
|
const response: Response | null = await page.goto(link.url, {
|
||||||
: 'networkidle0';
|
waitUntil: givenWaitFor,
|
||||||
const response: Response | null = await page.goto(link.url, {
|
});
|
||||||
waitUntil: givenWaitFor
|
statusCode = await handleResponse(browser, store, page, link, response);
|
||||||
});
|
setTimeout(() => {
|
||||||
statusCode = await handleResponse(
|
// Do nothing
|
||||||
browser,
|
}, 3000);
|
||||||
store,
|
} catch (error: unknown) {
|
||||||
page,
|
logger.error(error);
|
||||||
link,
|
}
|
||||||
response
|
|
||||||
);
|
|
||||||
setTimeout(() => {
|
|
||||||
// Do nothing
|
|
||||||
}, 3000);
|
|
||||||
} catch (error: unknown) {
|
|
||||||
logger.error(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
|
if (!isStatusCodeInRange(statusCode, successStatusCodes)) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
`✖ [${store.name}] - Failed to navigate to anti-captcha target: ${link.url}`
|
`✖ [${store.name}] - Failed to navigate to anti-captcha target: ${link.url}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function tryLookupAndLoop(browser: Browser, store: Store) {
|
export async function tryLookupAndLoop(browser: Browser, store: Store) {
|
||||||
if (!browser.isConnected()) {
|
if (!browser.isConnected()) {
|
||||||
logger.debug(
|
logger.debug(`[${store.name}] Ending this loop as browser is disposed...`);
|
||||||
`[${store.name}] Ending this loop as browser is disposed...`
|
return;
|
||||||
);
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.debug(`[${store.name}] Starting lookup...`);
|
logger.debug(`[${store.name}] Starting lookup...`);
|
||||||
try {
|
try {
|
||||||
await lookup(browser, store);
|
await lookup(browser, store);
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
logger.error(error);
|
logger.error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
const sleepTime = getSleepTime(store);
|
const sleepTime = getSleepTime(store);
|
||||||
logger.debug(`[${store.name}] Lookup done, next one in ${sleepTime} ms`);
|
logger.debug(`[${store.name}] Lookup done, next one in ${sleepTime} ms`);
|
||||||
setTimeout(tryLookupAndLoop, sleepTime, browser, store);
|
setTimeout(tryLookupAndLoop, sleepTime, browser, store);
|
||||||
}
|
}
|
||||||
|
|||||||
+230
-230
@@ -1,234 +1,234 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AComPC: Store = {
|
export const AComPC: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.filial_stock',
|
container: '.filial_stock',
|
||||||
text: ['lagernd', 'im Zulauf']
|
text: ['lagernd', 'im Zulauf'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.price',
|
container: '.price',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '.filial_stock',
|
container: '.filial_stock',
|
||||||
text: ['nicht lieferbar']
|
text: ['nicht lieferbar'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3080-10G-GAMING-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3080-10G-GAMING-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3080-O10G-GAMING-OC-Edition-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3080-O10G-GAMING-OC-Edition-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3080-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3080-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3080-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3080-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-AORUS-GeForce-RTX-3080-MASTER-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-3-x-DisplayPort-3-x-HDMI.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-AORUS-GeForce-RTX-3080-MASTER-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-3-x-DisplayPort-3-x-HDMI.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-AORUS-GeForce-RTX-3080-XTREME-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-3-x-DisplayPort-3-x-HDMI.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-AORUS-GeForce-RTX-3080-XTREME-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-3-x-DisplayPort-3-x-HDMI.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Eagle-OC-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Eagle-OC-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Eagle-10G-Grafikkarte-10.240-MB.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Eagle-10G-Grafikkarte-10.240-MB.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-GAMING-OC-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-GAMING-OC-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Vision-OC-10G-Grafikkarten-GF-RTX-3080-10GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DP-weiss.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3080-Vision-OC-10G-Grafikkarten-GF-RTX-3080-10GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DP-weiss.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Inno3D-GeForce-RTX-3080-Twin-X2-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6-PCIe-4.0-x16-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Inno3D-GeForce-RTX-3080-Twin-X2-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3080-Gaming-X-Trio-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3080-Gaming-X-Trio-10G-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3080-Ventus-3X-10G-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3080-Ventus-3X-10G-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp holo',
|
model: 'amp holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-AMP-Holo-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3-x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-AMP-Holo-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3-x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-Trinity-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3-x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-Trinity-OC-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3-x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-Trinity-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3080-Trinity-Grafikkarten-GF-RTX-3080-10-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Peripherie-Zubehoer/noch-nicht-kategorisierte-Artikel/ASUS-ROG-Strix-GeForce-RTX-3090-ROG-STRIX-RTX3090-24G-GAMING-24GB-GDDR6X-2x-HDMI-3x-DP-90YV0F90-M0NM00-.html'
|
'https://www.acom-pc.de/Peripherie-Zubehoer/noch-nicht-kategorisierte-Artikel/ASUS-ROG-Strix-GeForce-RTX-3090-ROG-STRIX-RTX3090-24G-GAMING-24GB-GDDR6X-2x-HDMI-3x-DP-90YV0F90-M0NM00-.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3090-O24G-GAMING-OC-Edition-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-ROG-STRIX-RTX3090-O24G-GAMING-OC-Edition-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-2-x-HDMI-3-x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3090-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3090-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3090-OC-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ASUS-TUF-Gaming-GeForce-RTX-3090-OC-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-Aorus-GeForce-RTX-3090-Master-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-Aorus-GeForce-RTX-3090-Master-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3090-Eagle-OC-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3090-Eagle-OC-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3090-Gaming-OC-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/Gigabyte-GeForce-RTX-3090-Gaming-OC-24G-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-2x-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-RTX-3090-GAMING-X-TRIO-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-RTX-3090-GAMING-X-TRIO-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3090-Ventus-3X-24G-OC-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/MSI-GeForce-RTX-3090-Ventus-3X-24G-OC-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-x16-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3090-Trinity-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html'
|
'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3090-Trinity-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-5-5600X-4.60GHZ-6-CORE-SKT-AM4-35MB-65W-PIB.html'
|
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-5-5600X-4.60GHZ-6-CORE-SKT-AM4-35MB-65W-PIB.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-7-5800X-4.70GHZ-8-CORE-SKT-AM4-36MB-105W-WOF.html'
|
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-7-5800X-4.70GHZ-8-CORE-SKT-AM4-36MB-105W-WOF.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-Ryzen-9-5900X-AMD-Ryzen-9-Socket-AM4-PC-7nm-AMD-3-7-GHz-AM4.html'
|
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-Ryzen-9-5900X-AMD-Ryzen-9-Socket-AM4-PC-7nm-AMD-3-7-GHz-AM4.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-9-5950X-4.90GHZ-16-CORE-SKT-AM4-72MB-105W-WOF.html'
|
'https://www.acom-pc.de/Hardware-Software/CPU-Prozessor-/-CPU-Kuehler-Zubehoer/AMD-CPU/AMD-CPU-Socket-AM4/AMD-RYZEN-9-5950X-4.90GHZ-16-CORE-SKT-AM4-72MB-105W-WOF.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'acompc'
|
name: 'acompc',
|
||||||
};
|
};
|
||||||
|
|||||||
+126
-126
@@ -1,130 +1,130 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Adorama: Store = {
|
export const Adorama: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['please verify you are a human']
|
text: ['please verify you are a human'],
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.buy-section.purchase',
|
container: '.buy-section.purchase',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.your-price',
|
container: '.your-price',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.adorama.com/ev08gp43067k.html'
|
url: 'https://www.adorama.com/ev08gp43067k.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/pnv301tfxmpb.html'
|
url: 'https://www.adorama.com/pnv301tfxmpb.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/msig380gxt1.html'
|
url: 'https://www.adorama.com/msig380gxt1.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/ev10g53897kr.html'
|
url: 'https://www.adorama.com/ev10g53897kr.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/ev10g53885kr.html'
|
url: 'https://www.adorama.com/ev10g53885kr.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/ev10g53895kr.html'
|
url: 'https://www.adorama.com/ev10g53895kr.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/ev10g53883kr.html'
|
url: 'https://www.adorama.com/ev10g53883kr.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/ev10g53881kr.html'
|
url: 'https://www.adorama.com/ev10g53881kr.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/msig38v3x10c.html'
|
url: 'https://www.adorama.com/msig38v3x10c.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/png30801tfxb.html'
|
url: 'https://www.adorama.com/png30801tfxb.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/asrx3080o10g.html'
|
url: 'https://www.adorama.com/asrx3080o10g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/astr3080o10g.html'
|
url: 'https://www.adorama.com/astr3080o10g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.adorama.com/astrx308010g.html'
|
url: 'https://www.adorama.com/astrx308010g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.adorama.com/msig390gxt24.html'
|
url: 'https://www.adorama.com/msig390gxt24.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.adorama.com/msig39v3x24c.html'
|
url: 'https://www.adorama.com/msig39v3x24c.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.adorama.com/asrtx309024g.html'
|
url: 'https://www.adorama.com/asrtx309024g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.adorama.com/ast3090o24g.html'
|
url: 'https://www.adorama.com/ast3090o24g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.adorama.com/asrx3090o24g.html'
|
url: 'https://www.adorama.com/asrx3090o24g.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'adorama'
|
name: 'adorama',
|
||||||
};
|
};
|
||||||
|
|||||||
+325
-325
@@ -1,329 +1,329 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Akinformatica: Store = {
|
export const Akinformatica: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: [
|
inStock: [
|
||||||
{
|
{
|
||||||
container: '#dispOnLine .available',
|
container: '#dispOnLine .available',
|
||||||
text: ['Disponibile Online']
|
text: ['Disponibile Online'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '#addCartLinkButton',
|
container: '#addCartLinkButton',
|
||||||
text: ['Aggiungi al carrello']
|
text: ['Aggiungi al carrello'],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#PrezzoListinoIvatoLabel',
|
container: '#PrezzoListinoIvatoLabel',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '#dispOnLine .available .disabled',
|
container: '#dispOnLine .available .disabled',
|
||||||
text: ['Disponibile Online']
|
text: ['Disponibile Online'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '#preOrderPanel > label',
|
container: '#preOrderPanel > label',
|
||||||
text: ['PRE-ORDINI APERTI']
|
text: ['PRE-ORDINI APERTI'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/adata-xpg/mouse-gaming-adata-xpg-primer---wired--rgb_4710273777139.aspx'
|
'https://shop.akinformatica.it/catalogo/adata-xpg/mouse-gaming-adata-xpg-primer---wired--rgb_4710273777139.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro',
|
model: 'gaming pro',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-palit-geforce-rtx3070-gamingpro-oc-8gb-gddr6x_4710562242089.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-palit-geforce-rtx3070-gamingpro-oc-8gb-gddr6x_4710562242089.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-zotac-gaming-geforce-rtx-3070-twin-edge-8g_4895173622472.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-zotac-gaming-geforce-rtx-3070-twin-edge-8g_4895173622472.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-ventus-2x-oc-8g_4719072763091.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-ventus-2x-oc-8g_4719072763091.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-dual-o8g-8g_4718017927864.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-dual-o8g-8g_4718017927864.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-eagle-8gb_4719331307738.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-eagle-8gb_4719331307738.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-ventus-3x-oc-8g_4719072763084.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-ventus-3x-oc-8g_4719072763084.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-gaming-x-trio-8g_4719072763053.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-msi-geforce-rtx-3070-gaming-x-trio-8g_4719072763053.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-zotac-gaming-geforce-rtx-3070-twin-edge-oc-8g_4895173622489.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-zotac-gaming-geforce-rtx-3070-twin-edge-oc-8g_4895173622489.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-eagle-oc-8gb_4719331307677.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-eagle-oc-8gb_4719331307677.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-tuf-o8g-8g_4718017948678.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-tuf-o8g-8g_4718017948678.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-gaming-oc-8gb_4719331307691.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-gigabyte-geforce-rtx-3070-gaming-oc-8gb_4719331307691.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-rog-strix-gaming-oc-8g_4718017938150.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3070/vga-asus-geforce-rtx-3070-rog-strix-gaming-oc-8g_4718017938150.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-gaming-x-trio-24g_4719072762506.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-gaming-x-trio-24g_4719072762506.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-zotac-geforce-rtx-3090-trinity-24g_4895173622427.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-zotac-geforce-rtx-3090-trinity-24g_4895173622427.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-suprim-x-24g_4719072762490.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-suprim-x-24g_4719072762490.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 epic x',
|
model: 'xlr8 epic x',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-pny-geforce-rtx-3090-epic-x-xlr8-gaming-24g_0751492639536.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-pny-geforce-rtx-3090-epic-x-xlr8-gaming-24g_0751492639536.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x',
|
model: 'ventus 3x',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-ventus-3x-24g-oc--consegne-da-marzo_4719072762476.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-msi-geforce-rtx-3090-ventus-3x-24g-oc--consegne-da-marzo_4719072762476.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gamerock',
|
model: 'gamerock',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamerock-24gb-gddr6x_4710562242041.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamerock-24gb-gddr6x_4710562242041.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro',
|
model: 'gaming pro',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamingpro-24gb-gddr6x_4710562241969.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamingpro-24gb-gddr6x_4710562241969.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gamerock oc',
|
model: 'gamerock oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamerock-oc-24gb-gddr6x_4710562242065.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamerock-oc-24gb-gddr6x_4710562242065.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamingpro-oc-24gb-gddr6x_4710562242027.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3090/vga-palit-geforce-rtx3090-gamingpro-oc-24gb-gddr6x_4710562242027.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-5-5600x---6-core--max-boost-4-60-ghz--socket-am4_0730143312042.aspx'
|
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-5-5600x---6-core--max-boost-4-60-ghz--socket-am4_0730143312042.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-7-5800x---8-core--max-boost-4-70-ghz--socket-am4_0730143312714.aspx'
|
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-7-5800x---8-core--max-boost-4-70-ghz--socket-am4_0730143312714.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-9-5950x---16-core--max-boost-4-90-ghz--socket-am4_0730143312745.aspx'
|
'https://shop.akinformatica.it/catalogo/amd-am4/cpu-amd-ryzen-9-5950x---16-core--max-boost-4-90-ghz--socket-am4_0730143312745.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro+ se',
|
model: 'nitro+ se',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/amd-rx-6800-6800-xt/vga-sapphire-radeon-rx-6800-xt-nitro--oc-se-16g_4895106289901.aspx'
|
'https://shop.akinformatica.it/catalogo/amd-rx-6800-6800-xt/vga-sapphire-radeon-rx-6800-xt-nitro--oc-se-16g_4895106289901.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro+',
|
model: 'nitro+',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/amd-rx-6800-6800-xt/vga-sapphire-radeon-rx-6800-xt-nitro--16g_4895106289925.aspx'
|
'https://shop.akinformatica.it/catalogo/amd-rx-6800-6800-xt/vga-sapphire-radeon-rx-6800-xt-nitro--16g_4895106289925.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/amd-rx-6900-xt/vga-sapphire-radeon-rx-6900-xt-16g_4895106290136.aspx'
|
'https://shop.akinformatica.it/catalogo/amd-rx-6900-xt/vga-sapphire-radeon-rx-6900-xt-16g_4895106290136.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-msi-geforce-rtx-3080-ventus-3x-10g-oc--consegne-da-marzo_4719072762520.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-msi-geforce-rtx-3080-ventus-3x-10g-oc--consegne-da-marzo_4719072762520.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-zotac-geforce-rtx-3080-trinity-10g_4895173622403.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-zotac-geforce-rtx-3080-trinity-10g_4895173622403.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-asus-geforce-rtx-3080-rog-strix-gaming-oc-10g_4718017928786.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-asus-geforce-rtx-3080-rog-strix-gaming-oc-10g_4718017928786.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-msi-geforce-rtx-3080-gaming-x-trio-10g_4719072762544.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-msi-geforce-rtx-3080-gaming-x-trio-10g_4719072762544.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-asus-geforce-rtx-3080-rog-strix-gaming-10g_4718017909150.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-asus-geforce-rtx-3080-rog-strix-gaming-10g_4718017909150.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 epic x',
|
model: 'xlr8 epic x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-pny-geforce-rtx-3080-epic-x-xlr8-gaming-10g_0751492639567.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-pny-geforce-rtx-3080-epic-x-xlr8-gaming-10g_0751492639567.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 epic x',
|
model: 'xlr8 epic x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-pny-geforce-rtx-3080-epic-x-xlr8-gaming-10g_0751492639550.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-pny-geforce-rtx-3080-epic-x-xlr8-gaming-10g_0751492639550.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-palit-geforce-rtx3080-gamingpro-oc-10gb-gddr6x_4710562242003.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3080/vga-palit-geforce-rtx3080-gamingpro-oc-10gb-gddr6x_4710562242003.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-ventus-2x-oc-8g-_4719072763121.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-ventus-2x-oc-8g-_4719072763121.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-gaming-x-trio-8g-_4719072763145.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-gaming-x-trio-8g-_4719072763145.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'dual oc',
|
model: 'dual oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-palit-geforce-rtx-3060ti-dual-oc-8g-gddr6-256bit-3xdp--hdmi-_4710562242287.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-palit-geforce-rtx-3060ti-dual-oc-8g-gddr6-256bit-3xdp--hdmi-_4710562242287.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-ventus-3x-oc-8g_4719072763152.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-msi-geforce-rtx-3060ti-ventus-3x-oc-8g_4719072763152.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-zotac-gaming-geforce-rtx-3060ti-twin-edge-8g_4895173622502.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-zotac-gaming-geforce-rtx-3060ti-twin-edge-8g_4895173622502.aspx',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-zotac-gaming-geforce-rtx-3060ti-twin-edge-oc-8g_4895173622519.aspx'
|
'https://shop.akinformatica.it/catalogo/nvidia-rtx-3060ti/vga-zotac-gaming-geforce-rtx-3060ti-twin-edge-oc-8g_4895173622519.aspx',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'akinformatica',
|
name: 'akinformatica',
|
||||||
successStatusCodes: [[0, 399], 404]
|
successStatusCodes: [[0, 399], 404],
|
||||||
};
|
};
|
||||||
|
|||||||
+60
-60
@@ -1,64 +1,64 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Allneeds: Store = {
|
export const Allneeds: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.amstockstatus',
|
container: '.amstockstatus',
|
||||||
text: ['In Stock']
|
text: ['In Stock'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span.price',
|
container: 'span.price',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.amstockstatus',
|
container: '.amstockstatus',
|
||||||
text: ['sold out']
|
text: ['sold out'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc white',
|
model: 'strix oc white',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://allneeds.com.au/asus-geforce-rtx-3080-rog-strix-gaming-oc-10gb-video-card-white-edition-limited-edition'
|
'https://allneeds.com.au/asus-geforce-rtx-3080-rog-strix-gaming-oc-10gb-video-card-white-edition-limited-edition',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro+',
|
model: 'nitro+',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url:
|
url:
|
||||||
'https://allneeds.com.au/sapphire-nitro-radeon-rx-6900-xt-16gb-video-card-11308-01-20g'
|
'https://allneeds.com.au/sapphire-nitro-radeon-rx-6900-xt-16gb-video-card-11308-01-20g',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://allneeds.com.au/amd-ryzen-9-5950x-processor-100-100000059wof'
|
'https://allneeds.com.au/amd-ryzen-9-5950x-processor-100-100000059wof',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://allneeds.com.au/amd-ryzen-9-5900x-processor-100-100000061wof'
|
'https://allneeds.com.au/amd-ryzen-9-5900x-processor-100-100000061wof',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://allneeds.com.au/amd-ryzen-7-5800x-processor'
|
url: 'https://allneeds.com.au/amd-ryzen-7-5800x-processor',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://allneeds.com.au/amd-ryzen-5-5600x-with-wraith-stealth-100-100000065box'
|
'https://allneeds.com.au/amd-ryzen-5-5600x-with-wraith-stealth-100-100000065box',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'allneeds'
|
name: 'allneeds',
|
||||||
};
|
};
|
||||||
|
|||||||
+168
-168
@@ -1,172 +1,172 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AlternateNL: Store = {
|
export const AlternateNL: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.stockStatus',
|
container: '.stockStatus',
|
||||||
text: ['Direct leverbaar']
|
text: ['Direct leverbaar'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div.price > span',
|
container: 'div.price > span',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.stockStatus',
|
container: '.stockStatus',
|
||||||
text: ['Levertermijn onbekend', 'pre-order']
|
text: ['Levertermijn onbekend', 'pre-order'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.alternate.nl/product/1516616'
|
url: 'https://www.alternate.nl/product/1516616',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672756'
|
url: 'https://www.alternate.nl/product/1672756',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672345'
|
url: 'https://www.alternate.nl/product/1672345',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672251'
|
url: 'https://www.alternate.nl/product/1672251',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672753'
|
url: 'https://www.alternate.nl/product/1672753',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672343'
|
url: 'https://www.alternate.nl/product/1672343',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672634'
|
url: 'https://www.alternate.nl/product/1672634',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672867'
|
url: 'https://www.alternate.nl/product/1672867',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673512'
|
url: 'https://www.alternate.nl/product/1673512',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672612'
|
url: 'https://www.alternate.nl/product/1672612',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1674164'
|
url: 'https://www.alternate.nl/product/1674164',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1672868'
|
url: 'https://www.alternate.nl/product/1672868',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673431'
|
url: 'https://www.alternate.nl/product/1673431',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1677989'
|
url: 'https://www.alternate.nl/product/1677989',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1681134'
|
url: 'https://www.alternate.nl/product/1681134',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673520'
|
url: 'https://www.alternate.nl/product/1673520',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673442'
|
url: 'https://www.alternate.nl/product/1673442',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673136'
|
url: 'https://www.alternate.nl/product/1673136',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673524'
|
url: 'https://www.alternate.nl/product/1673524',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1680168'
|
url: 'https://www.alternate.nl/product/1680168',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673517'
|
url: 'https://www.alternate.nl/product/1673517',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp holo',
|
model: 'amp holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1677985'
|
url: 'https://www.alternate.nl/product/1677985',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp extreme holo',
|
model: 'amp extreme holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1677982'
|
url: 'https://www.alternate.nl/product/1677982',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673137'
|
url: 'https://www.alternate.nl/product/1673137',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.nl/product/1673134'
|
url: 'https://www.alternate.nl/product/1673134',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'alternate-nl'
|
name: 'alternate-nl',
|
||||||
};
|
};
|
||||||
|
|||||||
+431
-431
@@ -1,435 +1,435 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Alternate: Store = {
|
export const Alternate: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.stockStatus',
|
container: '.stockStatus',
|
||||||
text: [
|
text: [
|
||||||
'auf lager',
|
'auf lager',
|
||||||
'ware neu eingetroffen',
|
'ware neu eingetroffen',
|
||||||
'in kürze versandfertig',
|
'in kürze versandfertig',
|
||||||
'ware im zulauf'
|
'ware im zulauf',
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div.price > span',
|
container: 'div.price > span',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '.stockStatus',
|
container: '.stockStatus',
|
||||||
text: ['liefertermin unbekannt']
|
text: ['liefertermin unbekannt'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '.stockStatus',
|
container: '.stockStatus',
|
||||||
text: ['Artikel kann nicht gekauft werden']
|
text: ['Artikel kann nicht gekauft werden'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.alternate.de/product/1662088'
|
url: 'https://www.alternate.de/product/1662088',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672868'
|
url: 'https://www.alternate.de/product/1672868',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672867'
|
url: 'https://www.alternate.de/product/1672867',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672251'
|
url: 'https://www.alternate.de/product/1672251',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672634'
|
url: 'https://www.alternate.de/product/1672634',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673517'
|
url: 'https://www.alternate.de/product/1673517',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673524'
|
url: 'https://www.alternate.de/product/1673524',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673512'
|
url: 'https://www.alternate.de/product/1673512',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673520'
|
url: 'https://www.alternate.de/product/1673520',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1674164'
|
url: 'https://www.alternate.de/product/1674164',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phantom gs',
|
model: 'phantom gs',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1688597'
|
url: 'https://www.alternate.de/product/1688597',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673442'
|
url: 'https://www.alternate.de/product/1673442',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1680168'
|
url: 'https://www.alternate.de/product/1680168',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1680168'
|
url: 'https://www.alternate.de/product/1680168',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672756'
|
url: 'https://www.alternate.de/product/1672756',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672753'
|
url: 'https://www.alternate.de/product/1672753',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1681134'
|
url: 'https://www.alternate.de/product/1681134',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673136'
|
url: 'https://www.alternate.de/product/1673136',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673134'
|
url: 'https://www.alternate.de/product/1673134',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673137'
|
url: 'https://www.alternate.de/product/1673137',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672343'
|
url: 'https://www.alternate.de/product/1672343',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672345'
|
url: 'https://www.alternate.de/product/1672345',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gamerock oc',
|
model: 'gamerock oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1688594'
|
url: 'https://www.alternate.de/product/1688594',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1673431'
|
url: 'https://www.alternate.de/product/1673431',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp extreme holo',
|
model: 'amp extreme holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1677982'
|
url: 'https://www.alternate.de/product/1677982',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'amp holo',
|
model: 'amp holo',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1677985'
|
url: 'https://www.alternate.de/product/1677985',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1677989'
|
url: 'https://www.alternate.de/product/1677989',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.alternate.de/product/1672612'
|
url: 'https://www.alternate.de/product/1672612',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672870'
|
url: 'https://www.alternate.de/product/1672870',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672872'
|
url: 'https://www.alternate.de/product/1672872',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672259'
|
url: 'https://www.alternate.de/product/1672259',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672629'
|
url: 'https://www.alternate.de/product/1672629',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673530'
|
url: 'https://www.alternate.de/product/1673530',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673531'
|
url: 'https://www.alternate.de/product/1673531',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673521'
|
url: 'https://www.alternate.de/product/1673521',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673525'
|
url: 'https://www.alternate.de/product/1673525',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673529'
|
url: 'https://www.alternate.de/product/1673529',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673440'
|
url: 'https://www.alternate.de/product/1673440',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1680670'
|
url: 'https://www.alternate.de/product/1680670',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1687793'
|
url: 'https://www.alternate.de/product/1687793',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672744'
|
url: 'https://www.alternate.de/product/1672744',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672749'
|
url: 'https://www.alternate.de/product/1672749',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'turbo',
|
model: 'turbo',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1687703'
|
url: 'https://www.alternate.de/product/1687703',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'gaming x3',
|
model: 'gaming x3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673131'
|
url: 'https://www.alternate.de/product/1673131',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673135'
|
url: 'https://www.alternate.de/product/1673135',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673129'
|
url: 'https://www.alternate.de/product/1673129',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672341'
|
url: 'https://www.alternate.de/product/1672341',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672346'
|
url: 'https://www.alternate.de/product/1672346',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1673434'
|
url: 'https://www.alternate.de/product/1673434',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.alternate.de/product/1672611'
|
url: 'https://www.alternate.de/product/1672611',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.alternate.de/product/1685588'
|
url: 'https://www.alternate.de/product/1685588',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.alternate.de/product/1685585'
|
url: 'https://www.alternate.de/product/1685585',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.alternate.de/product/1685590'
|
url: 'https://www.alternate.de/product/1685590',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.alternate.de/product/1685584'
|
url: 'https://www.alternate.de/product/1685584',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.alternate.de/product/1651220'
|
url: 'https://www.alternate.de/product/1651220',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.alternate.de/product/1651221'
|
url: 'https://www.alternate.de/product/1651221',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'xfx',
|
brand: 'xfx',
|
||||||
model: 'merc',
|
model: 'merc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1698792'
|
url: 'https://www.alternate.de/product/1698792',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro oc se',
|
model: 'nitro oc se',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1696478'
|
url: 'https://www.alternate.de/product/1696478',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
model: 'nitro oc',
|
model: 'nitro oc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1696482'
|
url: 'https://www.alternate.de/product/1696482',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix lc',
|
model: 'strix lc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1695392'
|
url: 'https://www.alternate.de/product/1695392',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.alternate.de/product/1697044'
|
url: 'https://www.alternate.de/product/1697044',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.alternate.de/product/1702773'
|
url: 'https://www.alternate.de/product/1702773',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.alternate.de/product/1700508'
|
url: 'https://www.alternate.de/product/1700508',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'xfx',
|
brand: 'xfx',
|
||||||
model: 'merc',
|
model: 'merc',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.alternate.de/product/1704614'
|
url: 'https://www.alternate.de/product/1704614',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.alternate.de/product/1675115'
|
url: 'https://www.alternate.de/product/1675115',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.alternate.de/product/1675117'
|
url: 'https://www.alternate.de/product/1675117',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.alternate.de/product/1676874'
|
url: 'https://www.alternate.de/product/1676874',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'alternate'
|
name: 'alternate',
|
||||||
};
|
};
|
||||||
|
|||||||
+289
-289
@@ -1,293 +1,293 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonCa: Store = {
|
export const AmazonCa: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['enter the characters you see below']
|
text: ['enter the characters you see below'],
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#desktop_buybox',
|
container: '#desktop_buybox',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#priceblock_ourprice'
|
container: '#priceblock_ourprice',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B07PBLD2MX&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B07PBLD2MX&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.ca/dp/B07PBLD2MX'
|
url: 'https://www.amazon.ca/dp/B07PBLD2MX',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.ca/dp/B08KWN2LZG'
|
url: 'https://www.amazon.ca/dp/B08KWN2LZG',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.ca/dp/B08KWLMZV4'
|
url: 'https://www.amazon.ca/dp/B08KWLMZV4',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08LW46GH2&Quantity.1=1',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.ca/dp/B08LW46GH2'
|
url: 'https://www.amazon.ca/dp/B08LW46GH2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.ca/dp/B08L8L71SM'
|
url: 'https://www.amazon.ca/dp/B08L8L71SM',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.ca/dp/B08L8L9TCZ'
|
url: 'https://www.amazon.ca/dp/B08L8L9TCZ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR7SV3M&Quantity.1=1',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR7SV3M'
|
url: 'https://www.amazon.ca/dp/B08HR7SV3M',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR5SXPS'
|
url: 'https://www.amazon.ca/dp/B08HR5SXPS',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3DPGW&Quantity.1=1',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR3DPGW'
|
url: 'https://www.amazon.ca/dp/B08HR3DPGW',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR3Y5GQ'
|
url: 'https://www.amazon.ca/dp/B08HR3Y5GQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR55YB5'
|
url: 'https://www.amazon.ca/dp/B08HR55YB5',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR4RJ3Q'
|
url: 'https://www.amazon.ca/dp/B08HR4RJ3Q',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR6FMF3'
|
url: 'https://www.amazon.ca/dp/B08HR6FMF3',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJTH61J'
|
url: 'https://www.amazon.ca/dp/B08HJTH61J',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJS2JLJ'
|
url: 'https://www.amazon.ca/dp/B08HJS2JLJ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HHDP9DW'
|
url: 'https://www.amazon.ca/dp/B08HHDP9DW',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HH5WF97'
|
url: 'https://www.amazon.ca/dp/B08HH5WF97',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJNKT3P'
|
url: 'https://www.amazon.ca/dp/B08HJNKT3P',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJQ182D'
|
url: 'https://www.amazon.ca/dp/B08HJQ182D',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.ca/dp/B08HR9D2JS'
|
url: 'https://www.amazon.ca/dp/B08HR9D2JS',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJRF2CN'
|
url: 'https://www.amazon.ca/dp/B08HJRF2CN',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJPDJTY'
|
url: 'https://www.amazon.ca/dp/B08HJPDJTY',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJGNJ81'
|
url: 'https://www.amazon.ca/dp/B08HJGNJ81',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.ca/dp/B08HJLLF7G'
|
url: 'https://www.amazon.ca/dp/B08HJLLF7G',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amazon.ca/dp/B08166SLDF'
|
url: 'https://www.amazon.ca/dp/B08166SLDF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amazon.ca/dp/B0815XFSGK'
|
url: 'https://www.amazon.ca/dp/B0815XFSGK',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amazon.ca/dp/B08164VTWH'
|
url: 'https://www.amazon.ca/dp/B08164VTWH',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amazon.ca/dp/B0815Y8J9N'
|
url: 'https://www.amazon.ca/dp/B0815Y8J9N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GSC5D9G&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GSC5D9G&Quantity.1=1',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.ca/dp/B08GSC5D9G'
|
url: 'https://www.amazon.ca/dp/B08GSC5D9G',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GS1N24H&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08GS1N24H&Quantity.1=1',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.ca/dp/B08GS1N24H'
|
url: 'https://www.amazon.ca/dp/B08GS1N24H',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08H75RTZ8&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08H75RTZ8&Quantity.1=1',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.amazon.ca/dp/B08H75RTZ8'
|
url: 'https://www.amazon.ca/dp/B08H75RTZ8',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08G9J44ZN&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08G9J44ZN&Quantity.1=1',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.amazon.ca/dp/B08G9J44ZN'
|
url: 'https://www.amazon.ca/dp/B08G9J44ZN',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'xfx',
|
brand: 'xfx',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08NX14LV1&Quantity.1=1',
|
||||||
model: 'merc',
|
model: 'merc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amazon.ca/dp/B08NX14LV1'
|
url: 'https://www.amazon.ca/dp/B08NX14LV1',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sapphire',
|
brand: 'sapphire',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08PQ585CX&Quantity.1=1',
|
'https://www.amazon.ca/gp/aws/cart/add.html?ASIN.1=B08PQ585CX&Quantity.1=1',
|
||||||
model: 'pulse',
|
model: 'pulse',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amazon.ca/dp/B08PQ585CX'
|
url: 'https://www.amazon.ca/dp/B08PQ585CX',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amazon-ca'
|
name: 'amazon-ca',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,64 +1,64 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonDeWarehouse: Store = {
|
export const AmazonDeWarehouse: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: [
|
text: [
|
||||||
'geben sie die unten angezeigten zeichen ein',
|
'geben sie die unten angezeigten zeichen ein',
|
||||||
'geben sie die zeichen unten ein'
|
'geben sie die zeichen unten ein',
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#a-autoid-0-announce',
|
container: '#a-autoid-0-announce',
|
||||||
text: ['In den Einkaufswagen']
|
text: ['In den Einkaufswagen'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.olpOfferPrice',
|
container: '.olpOfferPrice',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '.a-size-medium',
|
container: '.a-size-medium',
|
||||||
text: [
|
text: [
|
||||||
'Derzeit gibt es keine Verkäufer, die diesen Artikel an Ihren Standort liefern können'
|
'Derzeit gibt es keine Verkäufer, die diesen Artikel an Ihren Standort liefern können',
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.de/gp/offer-listing/B07PW9VBK5'
|
url: 'https://www.amazon.de/gp/offer-listing/B07PW9VBK5',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRK9'
|
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRK9',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.de/gp/offer-listing/B08H98GVK8'
|
url: 'https://www.amazon.de/gp/offer-listing/B08H98GVK8',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.amazon.de/gp/offer-listing/B087VM5XC6'
|
url: 'https://www.amazon.de/gp/offer-listing/B087VM5XC6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRLL'
|
url: 'https://www.amazon.de/gp/offer-listing/B08H93ZRLL',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amazon-de-warehouse'
|
name: 'amazon-de-warehouse',
|
||||||
};
|
};
|
||||||
|
|||||||
+554
-554
File diff suppressed because it is too large
Load Diff
+200
-200
@@ -1,204 +1,204 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonEs: Store = {
|
export const AmazonEs: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['introduzca los caracteres que ve a continuación']
|
text: ['introduzca los caracteres que ve a continuación'],
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#desktop_buybox',
|
container: '#desktop_buybox',
|
||||||
text: ['añadir a la cesta']
|
text: ['añadir a la cesta'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#priceblock_ourprice'
|
container: '#priceblock_ourprice',
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '#availability',
|
container: '#availability',
|
||||||
text: ['No disponible']
|
text: ['No disponible'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B07PW9VBK5&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.es/dp/B07PW9VBK5'
|
url: 'https://www.amazon.es/dp/B07PW9VBK5',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HM4V2DH'
|
url: 'https://www.amazon.es/dp/B08HM4V2DH',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HGYXP4C'
|
url: 'https://www.amazon.es/dp/B08HGYXP4C',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HJ9XFNM'
|
url: 'https://www.amazon.es/dp/B08HJ9XFNM',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HGBYWQ6'
|
url: 'https://www.amazon.es/dp/B08HGBYWQ6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HGLN78Q'
|
url: 'https://www.amazon.es/dp/B08HGLN78Q',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HH1BMQQ'
|
url: 'https://www.amazon.es/dp/B08HH1BMQQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HLZXHZY'
|
url: 'https://www.amazon.es/dp/B08HLZXHZY',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HHZVZ3N'
|
url: 'https://www.amazon.es/dp/B08HHZVZ3N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HN37VQK'
|
url: 'https://www.amazon.es/dp/B08HN37VQK',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HN4DSTC'
|
url: 'https://www.amazon.es/dp/B08HN4DSTC',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HN6KYS3'
|
url: 'https://www.amazon.es/dp/B08HN6KYS3',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HM4M621'
|
url: 'https://www.amazon.es/dp/B08HM4M621',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.es/dp/B08HR1NPPQ'
|
url: 'https://www.amazon.es/dp/B08HR1NPPQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amazon.es/dp/B08166SLDF'
|
url: 'https://www.amazon.es/dp/B08166SLDF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amazon.es/dp/B0815XFSGK'
|
url: 'https://www.amazon.es/dp/B0815XFSGK',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amazon.es/dp/B08164VTWH'
|
url: 'https://www.amazon.es/dp/B08164VTWH',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amazon.es/dp/B0815Y8J9N'
|
url: 'https://www.amazon.es/dp/B0815Y8J9N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.es/dp/B08KKJ37F7'
|
url: 'https://www.amazon.es/dp/B08KKJ37F7',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.es/dp/B08KJF2D25'
|
url: 'https://www.amazon.es/dp/B08KJF2D25',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B08H93ZRLL&Quantity.1=1',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.amazon.es/dp/B08H93ZRLL'
|
url: 'https://www.amazon.es/dp/B08H93ZRLL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
|
'https://www.amazon.es/gp/aws/cart/add.html?ASIN.1=B087VM5XC6&Quantity.1=1',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.amazon.es/dp/B087VM5XC6'
|
url: 'https://www.amazon.es/dp/B087VM5XC6',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amazon-es'
|
name: 'amazon-es',
|
||||||
};
|
};
|
||||||
|
|||||||
+187
-187
@@ -1,191 +1,191 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonFr: Store = {
|
export const AmazonFr: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['entrez les caractères que vous voyez ci-dessous']
|
text: ['entrez les caractères que vous voyez ci-dessous'],
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#desktop_buybox',
|
container: '#desktop_buybox',
|
||||||
text: ['ajouter au panier']
|
text: ['ajouter au panier'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#priceblock_ourprice',
|
container: '#priceblock_ourprice',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '#availability',
|
container: '#availability',
|
||||||
text: ['Actuellement indisponible']
|
text: ['Actuellement indisponible'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.fr/dp/B07PW9VBK5'
|
url: 'https://www.amazon.fr/dp/B07PW9VBK5',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR7SV3M'
|
url: 'https://www.amazon.fr/dp/B08HR7SV3M',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR5SXPS'
|
url: 'https://www.amazon.fr/dp/B08HR5SXPS',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR3DPGW'
|
url: 'https://www.amazon.fr/dp/B08HR3DPGW',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR3Y5GQ'
|
url: 'https://www.amazon.fr/dp/B08HR3Y5GQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR55YB5'
|
url: 'https://www.amazon.fr/dp/B08HR55YB5',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR4RJ3Q'
|
url: 'https://www.amazon.fr/dp/B08HR4RJ3Q',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR6FMF3'
|
url: 'https://www.amazon.fr/dp/B08HR6FMF3',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJTH61J'
|
url: 'https://www.amazon.fr/dp/B08HJTH61J',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJS2JLJ'
|
url: 'https://www.amazon.fr/dp/B08HJS2JLJ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HHDP9DW'
|
url: 'https://www.amazon.fr/dp/B08HHDP9DW',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HH5WF97'
|
url: 'https://www.amazon.fr/dp/B08HH5WF97',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJNKT3P'
|
url: 'https://www.amazon.fr/dp/B08HJNKT3P',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJQ182D'
|
url: 'https://www.amazon.fr/dp/B08HJQ182D',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.fr/dp/B08HR9D2JS'
|
url: 'https://www.amazon.fr/dp/B08HR9D2JS',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJRF2CN'
|
url: 'https://www.amazon.fr/dp/B08HJRF2CN',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJPDJTY'
|
url: 'https://www.amazon.fr/dp/B08HJPDJTY',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJGNJ81'
|
url: 'https://www.amazon.fr/dp/B08HJGNJ81',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.amazon.fr/dp/B08HJLLF7G'
|
url: 'https://www.amazon.fr/dp/B08HJLLF7G',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amazon.fr/dp/B08166SLDF'
|
url: 'https://www.amazon.fr/dp/B08166SLDF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amazon.fr/dp/B0815XFSGK'
|
url: 'https://www.amazon.fr/dp/B0815XFSGK',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amazon.fr/dp/B08164VTWH'
|
url: 'https://www.amazon.fr/dp/B08164VTWH',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amazon.fr/dp/B0815Y8J9N'
|
url: 'https://www.amazon.fr/dp/B0815Y8J9N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.fr/dp/B08H93ZRK9'
|
url: 'https://www.amazon.fr/dp/B08H93ZRK9',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.fr/dp/B08H98GVK8'
|
url: 'https://www.amazon.fr/dp/B08H98GVK8',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.amazon.fr/dp/B08H93ZRLL'
|
url: 'https://www.amazon.fr/dp/B08H93ZRLL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.amazon.fr/dp/B087VM5XC6'
|
url: 'https://www.amazon.fr/dp/B087VM5XC6',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amazon-fr'
|
name: 'amazon-fr',
|
||||||
};
|
};
|
||||||
|
|||||||
+411
-413
@@ -1,417 +1,415 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonIt: Store = {
|
export const AmazonIt: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: [
|
text: ['Inserisci i caratteri visualizzati nello spazio sottostante'],
|
||||||
'Inserisci i caratteri visualizzati nello spazio sottostante'
|
},
|
||||||
]
|
inStock: {
|
||||||
},
|
container: '#desktop_buybox',
|
||||||
inStock: {
|
text: ['Aggiungi al carrello'],
|
||||||
container: '#desktop_buybox',
|
},
|
||||||
text: ['Aggiungi al carrello']
|
maxPrice: {
|
||||||
},
|
container: '#priceblock_ourprice',
|
||||||
maxPrice: {
|
euroFormat: true,
|
||||||
container: '#priceblock_ourprice',
|
},
|
||||||
euroFormat: true
|
},
|
||||||
}
|
links: [
|
||||||
},
|
{
|
||||||
links: [
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'dual',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'dual',
|
url: 'https://www.amazon.it/dp/B08KHFZN9P',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KHFZN9P'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'dual',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'dual',
|
url: 'https://www.amazon.it/dp/B08L8HPKR6',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08L8HPKR6'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'strix',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'strix',
|
url: 'https://www.amazon.it/dp/B08L8JNTXQ',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08L8JNTXQ'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'tuf',
|
url: 'https://www.amazon.it/dp/B08L8KC1J7',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08L8KC1J7'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'gaming oc',
|
url: 'https://www.amazon.it/dp/B08KY266MG',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KY266MG'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'gaming',
|
url: 'https://www.amazon.it/dp/B08KWN2LZG',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KWN2LZG'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 revel',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'xlr8 revel',
|
url: 'https://www.amazon.it/dp/B08HBJB7YD',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HBJB7YD'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 uprising',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'xlr8 uprising',
|
url: 'https://www.amazon.it/dp/B08HBF5L3K',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HBF5L3K'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 2x oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'ventus 2x oc',
|
url: 'https://www.amazon.it/dp/B08KWPDXJZ',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KWPDXJZ'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 3x oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'ventus 3x oc',
|
url: 'https://www.amazon.it/dp/B08KWLMZV4',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KWLMZV4'
|
{
|
||||||
},
|
brand: 'zotac',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'zotac',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'gaming',
|
url: 'https://www.amazon.it/dp/B08LF32LJ6',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08LF32LJ6'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3 ultra',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'xc3 ultra',
|
url: 'https://www.amazon.it/dp/B08L8L71SM',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08L8L71SM'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ftw3 ultra',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'ftw3 ultra',
|
url: 'https://www.amazon.it/dp/B08L8L9TCZ',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08L8L9TCZ'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'gaming oc',
|
url: 'https://www.amazon.it/dp/B08KY266MG',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KY266MG'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'vision oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'vision oc',
|
url: 'https://www.amazon.it/dp/B08M13DXSZ',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08M13DXSZ'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'eagle',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
|
series: '3070',
|
||||||
model: 'eagle',
|
url: 'https://www.amazon.it/dp/B08KXZV626',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KXZV626'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 revel',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBR7QBM&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xlr8 revel',
|
url: 'https://www.amazon.it/dp/B08HBR7QBM',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HBR7QBM'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 revel',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBTJMLJ&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xlr8 revel',
|
url: 'https://www.amazon.it/dp/B08HBTJMLJ',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HBTJMLJ'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ftw3 ultra',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR3Y5GQ&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'ftw3 ultra',
|
url: 'https://www.amazon.it/dp/B08HR3Y5GQ',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HR3Y5GQ'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3 ultra',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR55YB5&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xc3 ultra',
|
url: 'https://www.amazon.it/dp/B08HR55YB5',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HR55YB5'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR4RJ3Q&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xc3',
|
url: 'https://www.amazon.it/dp/B08HR4RJ3Q',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HR4RJ3Q'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3 black',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR6FMF3&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xc3 black',
|
url: 'https://www.amazon.it/dp/B08HR6FMF3',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HR6FMF3'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJTH61J&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'gaming oc',
|
url: 'https://www.amazon.it/dp/B08HJTH61J',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJTH61J'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'eagle oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJS2JLJ&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'eagle oc',
|
url: 'https://www.amazon.it/dp/B08HJS2JLJ',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJS2JLJ'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HH5WF97&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'tuf oc',
|
url: 'https://www.amazon.it/dp/B08HH5WF97',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HH5WF97'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HHDP9DW&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'tuf',
|
url: 'https://www.amazon.it/dp/B08HHDP9DW',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HHDP9DW'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'strix oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08J6GMWCQ&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'strix oc',
|
url: 'https://www.amazon.it/dp/B08J6GMWCQ',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08J6GMWCQ'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 3x oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR5SXPS&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'ventus 3x oc',
|
url: 'https://www.amazon.it/dp/B08HR5SXPS',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HR5SXPS'
|
{
|
||||||
},
|
brand: 'zotac',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'zotac',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'trinity',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJNKT3P&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'trinity',
|
url: 'https://www.amazon.it/dp/B08HJNKT3P',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJNKT3P'
|
{
|
||||||
},
|
brand: 'zotac',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'zotac',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'trinity',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJQ182D&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'trinity',
|
url: 'https://www.amazon.it/dp/B08HJQ182D',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJQ182D'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 revel',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBQWBHH&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'xlr8 revel',
|
url: 'https://www.amazon.it/dp/B08HBQWBHH',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HBQWBHH'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 revel',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HBVX53D&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'xlr8 revel',
|
url: 'https://www.amazon.it/dp/B08HBVX53D',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HBVX53D'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming x trio',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HRBW6VB&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'gaming x trio',
|
url: 'https://www.amazon.it/dp/B08HRBW6VB',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HRBW6VB'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 3x',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HR9D2JS&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'ventus 3x',
|
url: 'https://www.amazon.it/dp/B08HR9D2JS',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HR9D2JS'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJRF2CN&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'gaming oc',
|
url: 'https://www.amazon.it/dp/B08HJRF2CN',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJRF2CN'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'eagle oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJPDJTY&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'eagle oc',
|
url: 'https://www.amazon.it/dp/B08HJPDJTY',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJPDJTY'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJGNJ81&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'tuf oc',
|
url: 'https://www.amazon.it/dp/B08HJGNJ81',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJGNJ81'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf oc',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08HJLLF7G&Quantity.1=1',
|
series: '3090',
|
||||||
model: 'tuf oc',
|
url: 'https://www.amazon.it/dp/B08HJLLF7G',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08HJLLF7G'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5600x',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
series: 'ryzen5600',
|
||||||
model: '5600x',
|
url: 'https://www.amazon.it/dp/B08166SLDF',
|
||||||
series: 'ryzen5600',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08166SLDF'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5800x',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
series: 'ryzen5800',
|
||||||
model: '5800x',
|
url: 'https://www.amazon.it/dp/product/B0815XFSGK',
|
||||||
series: 'ryzen5800',
|
},
|
||||||
url: 'https://www.amazon.it/dp/product/B0815XFSGK'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5900x',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
series: 'ryzen5900',
|
||||||
model: '5900x',
|
url: 'https://www.amazon.it/dp/B08164VTWH',
|
||||||
series: 'ryzen5900',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08164VTWH'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5950x',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
series: 'ryzen5950',
|
||||||
model: '5950x',
|
url: 'https://www.amazon.it/dp/B0815Y8J9N',
|
||||||
series: 'ryzen5950',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B0815Y8J9N'
|
{
|
||||||
},
|
brand: 'sapphire',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'sapphire',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'amd reference',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVC76SR&Quantity.1=1',
|
series: 'rx6800xt',
|
||||||
model: 'amd reference',
|
url: 'https://www.amazon.it/dp/B08MVC76SR',
|
||||||
series: 'rx6800xt',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08MVC76SR'
|
{
|
||||||
},
|
brand: 'sapphire',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'sapphire',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'amd reference',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08MVCLBWK&Quantity.1=1',
|
series: 'rx6800',
|
||||||
model: 'amd reference',
|
url: 'https://www.amazon.it/dp/B08MVCLBWK',
|
||||||
series: 'rx6800',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08MVCLBWK'
|
{
|
||||||
},
|
brand: 'sony',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'sony',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ps5 console',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KKJ37F7&Quantity.1=1',
|
series: 'sonyps5c',
|
||||||
model: 'ps5 console',
|
url: 'https://www.amazon.it/dp/B08KKJ37F7',
|
||||||
series: 'sonyps5c',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KKJ37F7'
|
{
|
||||||
},
|
brand: 'sony',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'sony',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ps5 digital',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08KJF2D25&Quantity.1=1',
|
series: 'sonyps5de',
|
||||||
model: 'ps5 digital',
|
url: 'https://www.amazon.it/dp/B08KJF2D25',
|
||||||
series: 'sonyps5de',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08KJF2D25'
|
{
|
||||||
},
|
brand: 'microsoft',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'microsoft',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDSW1ZW&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xbox series x',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDSW1ZW&Quantity.1=1',
|
series: 'xboxsx',
|
||||||
model: 'xbox series x',
|
url: 'https://www.amazon.it/dp/B08JDSW1ZW',
|
||||||
series: 'xboxsx',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08JDSW1ZW'
|
{
|
||||||
},
|
brand: 'microsoft',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'microsoft',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDTCXRG&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xbox series s',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B08JDTCXRG&Quantity.1=1',
|
series: 'xboxss',
|
||||||
model: 'xbox series s',
|
url: 'https://www.amazon.it/dp/B08JDTCXRG',
|
||||||
series: 'xboxss',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B08JDTCXRG'
|
{
|
||||||
},
|
brand: 'corsair',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'corsair',
|
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
|
||||||
cartUrl:
|
model: '750 platinum',
|
||||||
'https://www.amazon.it/gp/aws/cart/add.html?ASIN.1=B07M63H81H&Quantity.1=1',
|
series: 'sf',
|
||||||
model: '750 platinum',
|
url: 'https://www.amazon.it/dp/B07M63H81H',
|
||||||
series: 'sf',
|
},
|
||||||
url: 'https://www.amazon.it/dp/B07M63H81H'
|
],
|
||||||
}
|
name: 'amazon-it',
|
||||||
],
|
|
||||||
name: 'amazon-it'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+234
-236
@@ -1,240 +1,238 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmazonNl: Store = {
|
export const AmazonNl: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['voer de karakters in die u hieronder ziet']
|
text: ['voer de karakters in die u hieronder ziet'],
|
||||||
},
|
},
|
||||||
inStock: [
|
inStock: [
|
||||||
{
|
{
|
||||||
container: '#add-to-cart-button',
|
container: '#add-to-cart-button',
|
||||||
text: ['in winkelwagen']
|
text: ['in winkelwagen'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '#buy-now-button',
|
container: '#buy-now-button',
|
||||||
text: ['nu kopen']
|
text: ['nu kopen'],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#priceblock_ourprice',
|
container: '#priceblock_ourprice',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '#availability',
|
container: '#availability',
|
||||||
text: ['tijdelijk niet']
|
text: ['tijdelijk niet'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '#outOfStock',
|
container: '#outOfStock',
|
||||||
text: [
|
text: ['we weten niet of en wanneer dit item weer op voorraad is'],
|
||||||
'we weten niet of en wanneer dit item weer op voorraad is'
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
links: [
|
||||||
},
|
{
|
||||||
links: [
|
brand: 'test:brand',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'test:brand',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B085K45C3S&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'test:model',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B085K45C3S&Quantity.1=1',
|
series: 'test:series',
|
||||||
model: 'test:model',
|
url: 'https://www.amazon.nl/dp/B085K45C3S',
|
||||||
series: 'test:series',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B085K45C3S'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 3x oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'ventus 3x oc',
|
url: 'https://www.amazon.nl/dp/B08HM4M621',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08HM4M621'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming x trio',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'gaming x trio',
|
url: 'https://www.amazon.nl/dp/B08HM4V2DH',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08HM4V2DH'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3 ultra',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xc3 ultra',
|
url: 'https://www.amazon.nl/dp/B08HJ9XFNM',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08HJ9XFNM'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3 black',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'xc3 black',
|
url: 'https://www.amazon.nl/dp/B08HH1BMQQ',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08HH1BMQQ'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'strix',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
|
series: '3080',
|
||||||
model: 'strix',
|
url: 'https://www.amazon.nl/dp/B08HN7VVLJ',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08HN7VVLJ'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 2x oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'ventus 2x oc',
|
url: 'https://www.amazon.nl/dp/B08P2DQ28S',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08P2DQ28S'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'msi',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ventus 2x oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'ventus 2x oc',
|
url: 'https://www.amazon.nl/dp/B08NW2YJB2',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08NW2YJB2'
|
{
|
||||||
},
|
brand: 'zotac',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'zotac',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'twin edge',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'twin edge',
|
url: 'https://www.amazon.nl/dp/B08P3XJLJJ',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08P3XJLJJ'
|
{
|
||||||
},
|
brand: 'zotac',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'zotac',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'twin edge oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'twin edge oc',
|
url: 'https://www.amazon.nl/dp/B08P3V572B',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08P3V572B'
|
{
|
||||||
},
|
brand: 'zotac',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'zotac',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'twin edge oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'twin edge oc',
|
url: 'https://www.amazon.nl/dp/B08P3BJ9Y8',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08P3BJ9Y8'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'eagle',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'eagle',
|
url: 'https://www.amazon.nl/dp/B08P3JPX8P',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08P3JPX8P'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'gaming oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'gaming oc',
|
url: 'https://www.amazon.nl/dp/B08NW2X37Z',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08NW2X37Z'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'gigabyte',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'eagle oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'eagle oc',
|
url: 'https://www.amazon.nl/dp/B08NW528S1',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08NW528S1'
|
{
|
||||||
},
|
brand: 'pny',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'pny',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xlr8 revel',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'xlr8 revel',
|
url: 'https://www.amazon.nl/dp/B08NW693LG',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08NW693LG'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'tuf oc',
|
url: 'https://www.amazon.nl/dp/B083Z5P6TX',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B083Z5P6TX'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'tuf oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'tuf oc',
|
url: 'https://www.amazon.nl/dp/B08NZ4G4T2',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08NZ4G4T2'
|
{
|
||||||
},
|
brand: 'asus',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'asus',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'dual oc',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'dual oc',
|
url: 'https://www.amazon.nl/dp/B08P2HBBLX',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08P2HBBLX'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'ftw3',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'ftw3',
|
url: 'https://www.amazon.nl/dp/B08PDN36R3',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08PDN36R3'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc gaming',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'xc gaming',
|
url: 'https://www.amazon.nl/dp/B08PDP837W',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08PDP837W'
|
{
|
||||||
},
|
brand: 'evga',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'evga',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1',
|
||||||
cartUrl:
|
model: 'xc3 black',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1',
|
series: '3060ti',
|
||||||
model: 'xc3 black',
|
url: 'https://www.amazon.nl/dp/B08PDMVPZ4',
|
||||||
series: '3060ti',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08PDMVPZ4'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5600x',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08166SLDF&Quantity.1=1',
|
series: 'ryzen5600',
|
||||||
model: '5600x',
|
url: 'https://www.amazon.nl/dp/B08166SLDF',
|
||||||
series: 'ryzen5600',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08166SLDF'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5800x',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815XFSGK&Quantity.1=1',
|
series: 'ryzen5800',
|
||||||
model: '5800x',
|
url: 'https://www.amazon.nl/dp/B0815XFSGK',
|
||||||
series: 'ryzen5800',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B0815XFSGK'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5900x',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B08164VTWH&Quantity.1=1',
|
series: 'ryzen5900',
|
||||||
model: '5900x',
|
url: 'https://www.amazon.nl/dp/B08164VTWH',
|
||||||
series: 'ryzen5900',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B08164VTWH'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
cartUrl:
|
||||||
brand: 'amd',
|
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
||||||
cartUrl:
|
model: '5950x',
|
||||||
'https://www.amazon.nl/gp/aws/cart/add.html?ASIN.1=B0815Y8J9N&Quantity.1=1',
|
series: 'ryzen5950',
|
||||||
model: '5950x',
|
url: 'https://www.amazon.nl/dp/B0815Y8J9N',
|
||||||
series: 'ryzen5950',
|
},
|
||||||
url: 'https://www.amazon.nl/dp/B0815Y8J9N'
|
],
|
||||||
}
|
name: 'amazon-nl',
|
||||||
],
|
|
||||||
name: 'amazon-nl'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+756
-756
File diff suppressed because it is too large
Load Diff
+496
-496
@@ -1,500 +1,500 @@
|
|||||||
import {Link, Store} from './store';
|
import {Link, Store} from './store';
|
||||||
|
|
||||||
export const AmazonUk: Store = {
|
export const AmazonUk: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
captcha: {
|
captcha: {
|
||||||
container: 'body',
|
container: 'body',
|
||||||
text: ['enter the characters you see below']
|
text: ['enter the characters you see below'],
|
||||||
},
|
},
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#availability',
|
container: '#availability',
|
||||||
text: ['in stock']
|
text: ['in stock'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#priceblock_ourprice'
|
container: '#priceblock_ourprice',
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '#availability',
|
container: '#availability',
|
||||||
text: ['out of stock', 'unavailable']
|
text: ['out of stock', 'unavailable'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '#backInStock',
|
container: '#backInStock',
|
||||||
text: ['unavailable']
|
text: ['unavailable'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B0753R2TWC&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B0753R2TWC&Quantity.1=1',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amazon.co.uk/dp/B0753R2TWC/'
|
url: 'https://www.amazon.co.uk/dp/B0753R2TWC/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H95Y452&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H95Y452&Quantity.1=1',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08H95Y452'
|
url: 'https://www.amazon.co.uk/dp/B08H95Y452',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H97NYGP&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H97NYGP&Quantity.1=1',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08H97NYGP'
|
url: 'https://www.amazon.co.uk/dp/B08H97NYGP',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H93GKNJ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08H93GKNJ&Quantity.1=1',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08H93GKNJ'
|
url: 'https://www.amazon.co.uk/dp/B08H93GKNJ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08GD9MNZB&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08GD9MNZB&Quantity.1=1',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08GD9MNZB'
|
url: 'https://www.amazon.co.uk/dp/B08GD9MNZB',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.amazon.co.uk/AMD-Ryzen-5600X-Processor-Cache/dp/B08166SLDF'
|
'https://www.amazon.co.uk/AMD-Ryzen-5600X-Processor-Cache/dp/B08166SLDF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.amazon.co.uk/AMD-Ryzen-5800X-Processor-Cache/dp/B0815XFSGK'
|
'https://www.amazon.co.uk/AMD-Ryzen-5800X-Processor-Cache/dp/B0815XFSGK',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.amazon.co.uk/AMD-Ryzen-5900X-Processor-Cache/dp/B08164VTWH'
|
'https://www.amazon.co.uk/AMD-Ryzen-5900X-Processor-Cache/dp/B08164VTWH',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.amazon.co.uk/AMD-Ryzen-5950X-Processor-Cache/dp/B0815Y8J9N'
|
'https://www.amazon.co.uk/AMD-Ryzen-5950X-Processor-Cache/dp/B0815Y8J9N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN7VVLJ&Quantity.1=1',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HN7VVLJ'
|
url: 'https://www.amazon.co.uk/dp/B08HN7VVLJ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN6KYS3&Quantity.1=1',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HN6KYS3'
|
url: 'https://www.amazon.co.uk/dp/B08HN6KYS3',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN37VQK&Quantity.1=1',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HN37VQK'
|
url: 'https://www.amazon.co.uk/dp/B08HN37VQK',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HN4DSTC&Quantity.1=1',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HN4DSTC'
|
url: 'https://www.amazon.co.uk/dp/B08HN4DSTC',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGBYWQ6&Quantity.1=1',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HGBYWQ6'
|
url: 'https://www.amazon.co.uk/dp/B08HGBYWQ6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGYXP4C&Quantity.1=1',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HGYXP4C'
|
url: 'https://www.amazon.co.uk/dp/B08HGYXP4C',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HGLN78Q&Quantity.1=1',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HGLN78Q'
|
url: 'https://www.amazon.co.uk/dp/B08HGLN78Q',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HH1BMQQ&Quantity.1=1',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HH1BMQQ'
|
url: 'https://www.amazon.co.uk/dp/B08HH1BMQQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HJ9XFNM&Quantity.1=1',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HJ9XFNM'
|
url: 'https://www.amazon.co.uk/dp/B08HJ9XFNM',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KHLDS72&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KHLDS72&Quantity.1=1',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KHLDS72'
|
url: 'https://www.amazon.co.uk/dp/B08KHLDS72',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HHZVZ3N&Quantity.1=1',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HHZVZ3N'
|
url: 'https://www.amazon.co.uk/dp/B08HHZVZ3N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HLZXHZY&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HLZXHZY'
|
url: 'https://www.amazon.co.uk/dp/B08HLZXHZY',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KH7RL89&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KH7RL89&Quantity.1=1',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KH7RL89'
|
url: 'https://www.amazon.co.uk/dp/B08KH7RL89',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JD6QPXD&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JD6QPXD&Quantity.1=1',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08JD6QPXD'
|
url: 'https://www.amazon.co.uk/dp/B08JD6QPXD',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HM4V2DH&Quantity.1=1',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HM4V2DH'
|
url: 'https://www.amazon.co.uk/dp/B08HM4V2DH',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HM4M621&Quantity.1=1',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HM4M621'
|
url: 'https://www.amazon.co.uk/dp/B08HM4M621',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JCVWTQY&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JCVWTQY&Quantity.1=1',
|
||||||
model: 'gaming pro',
|
model: 'gaming pro',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08JCVWTQY'
|
url: 'https://www.amazon.co.uk/dp/B08JCVWTQY',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'palit',
|
brand: 'palit',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JCKYYL8&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08JCKYYL8&Quantity.1=1',
|
||||||
model: 'gaming pro oc',
|
model: 'gaming pro oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08JCKYYL8'
|
url: 'https://www.amazon.co.uk/dp/B08JCKYYL8',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HR1NPPQ&Quantity.1=1',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HR1NPPQ'
|
url: 'https://www.amazon.co.uk/dp/B08HR1NPPQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KHFZN9P&Quantity.1=1',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KHFZN9P'
|
url: 'https://www.amazon.co.uk/dp/B08KHFZN9P',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8HPKR6&Quantity.1=1',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08L8HPKR6'
|
url: 'https://www.amazon.co.uk/dp/B08L8HPKR6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8JNTXQ&Quantity.1=1',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08L8JNTXQ'
|
url: 'https://www.amazon.co.uk/dp/B08L8JNTXQ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8KC1J7&Quantity.1=1',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08L8KC1J7'
|
url: 'https://www.amazon.co.uk/dp/B08L8KC1J7',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KY266MG'
|
url: 'https://www.amazon.co.uk/dp/B08KY266MG',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWN2LZG&Quantity.1=1',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KWN2LZG'
|
url: 'https://www.amazon.co.uk/dp/B08KWN2LZG',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HBJB7YD&Quantity.1=1',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HBJB7YD'
|
url: 'https://www.amazon.co.uk/dp/B08HBJB7YD',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08HBF5L3K&Quantity.1=1',
|
||||||
model: 'xlr8 uprising',
|
model: 'xlr8 uprising',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08HBF5L3K'
|
url: 'https://www.amazon.co.uk/dp/B08HBF5L3K',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWPDXJZ&Quantity.1=1',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KWPDXJZ'
|
url: 'https://www.amazon.co.uk/dp/B08KWPDXJZ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KWLMZV4&Quantity.1=1',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KWLMZV4'
|
url: 'https://www.amazon.co.uk/dp/B08KWLMZV4',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08LF32LJ6&Quantity.1=1',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08LF32LJ6'
|
url: 'https://www.amazon.co.uk/dp/B08LF32LJ6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8L71SM&Quantity.1=1',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08L8L71SM'
|
url: 'https://www.amazon.co.uk/dp/B08L8L71SM',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08L8L9TCZ&Quantity.1=1',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08L8L9TCZ'
|
url: 'https://www.amazon.co.uk/dp/B08L8L9TCZ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KY266MG&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KY266MG'
|
url: 'https://www.amazon.co.uk/dp/B08KY266MG',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08M13DXSZ&Quantity.1=1',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08M13DXSZ'
|
url: 'https://www.amazon.co.uk/dp/B08M13DXSZ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08KXZV626&Quantity.1=1',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08KXZV626'
|
url: 'https://www.amazon.co.uk/dp/B08KXZV626',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P2DQ28S&Quantity.1=1',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08P2DQ28S'
|
url: 'https://www.amazon.co.uk/dp/B08P2DQ28S',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW2YJB2&Quantity.1=1',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08NW2YJB2'
|
url: 'https://www.amazon.co.uk/dp/B08NW2YJB2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3XJLJJ&Quantity.1=1',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08P3XJLJJ'
|
url: 'https://www.amazon.co.uk/dp/B08P3XJLJJ',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3V572B&Quantity.1=1',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08P3V572B'
|
url: 'https://www.amazon.co.uk/dp/B08P3V572B',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3BJ9Y8&Quantity.1=1',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08P3BJ9Y8'
|
url: 'https://www.amazon.co.uk/dp/B08P3BJ9Y8',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P3JPX8P&Quantity.1=1',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08P3JPX8P'
|
url: 'https://www.amazon.co.uk/dp/B08P3JPX8P',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW2X37Z&Quantity.1=1',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08NW2X37Z'
|
url: 'https://www.amazon.co.uk/dp/B08NW2X37Z',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW528S1&Quantity.1=1',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08NW528S1'
|
url: 'https://www.amazon.co.uk/dp/B08NW528S1',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NW693LG&Quantity.1=1',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08NW693LG'
|
url: 'https://www.amazon.co.uk/dp/B08NW693LG',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B083Z5P6TX&Quantity.1=1',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B083Z5P6TX'
|
url: 'https://www.amazon.co.uk/dp/B083Z5P6TX',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08NZ4G4T2&Quantity.1=1',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08NZ4G4T2'
|
url: 'https://www.amazon.co.uk/dp/B08NZ4G4T2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08P2HBBLX&Quantity.1=1',
|
||||||
model: 'dual oc',
|
model: 'dual oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08P2HBBLX'
|
url: 'https://www.amazon.co.uk/dp/B08P2HBBLX',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDN36R3&Quantity.1=1',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08PDN36R3'
|
url: 'https://www.amazon.co.uk/dp/B08PDN36R3',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDP837W&Quantity.1=1',
|
||||||
model: 'xc gaming',
|
model: 'xc gaming',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08PDP837W'
|
url: 'https://www.amazon.co.uk/dp/B08PDP837W',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1',
|
'https://www.amazon.co.uk/gp/aws/cart/add.html?ASIN.1=B08PDMVPZ4&Quantity.1=1',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.amazon.co.uk/dp/B08PDMVPZ4'
|
url: 'https://www.amazon.co.uk/dp/B08PDMVPZ4',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amazon-uk'
|
name: 'amazon-uk',
|
||||||
};
|
};
|
||||||
|
|||||||
+749
-750
File diff suppressed because it is too large
Load Diff
+44
-44
@@ -1,48 +1,48 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmdCa: Store = {
|
export const AmdCa: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.btn-shopping-cart',
|
container: '.btn-shopping-cart',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-page-description h4',
|
container: '.product-page-description h4',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458373400/ca'
|
url: 'https://www.amd.com/en/direct-buy/5458373400/ca',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458373400/ca?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458373400/ca?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458373400/ca'
|
url: 'https://www.amd.com/en/direct-buy/5458373400/ca',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458372800/ca?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458372800/ca?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458372800/ca'
|
url: 'https://www.amd.com/en/direct-buy/5458372800/ca',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458372200/ca?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458372200/ca?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458372200/ca'
|
url: 'https://www.amd.com/en/direct-buy/5458372200/ca',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amd-ca'
|
name: 'amd-ca',
|
||||||
};
|
};
|
||||||
|
|||||||
+80
-80
@@ -1,84 +1,84 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmdDe: Store = {
|
export const AmdDe: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.btn-shopping-cart',
|
container: '.btn-shopping-cart',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-page-description h4',
|
container: '.product-page-description h4',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.btn-radeon',
|
container: '.btn-radeon',
|
||||||
text: ['ausverkauft']
|
text: ['ausverkauft'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5450881400/de'
|
url: 'https://www.amd.com/de/direct-buy/5450881400/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5450881400/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5450881400/de?add-to-cart=true',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5450881400/de'
|
url: 'https://www.amd.com/de/direct-buy/5450881400/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5450881500/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5450881500/de?add-to-cart=true',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5450881500/de'
|
url: 'https://www.amd.com/de/direct-buy/5450881500/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5450881600/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5450881600/de?add-to-cart=true',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5450881600/de'
|
url: 'https://www.amd.com/de/direct-buy/5450881600/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5450881700/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5450881700/de?add-to-cart=true',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5450881700/de'
|
url: 'https://www.amd.com/de/direct-buy/5450881700/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5458374000/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5458374000/de?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5458374000/de'
|
url: 'https://www.amd.com/de/direct-buy/5458374000/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5458374100/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5458374100/de?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5458374100/de'
|
url: 'https://www.amd.com/de/direct-buy/5458374100/de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/de/direct-buy/5458374200/de?add-to-cart=true',
|
'https://www.amd.com/de/direct-buy/5458374200/de?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.amd.com/de/direct-buy/5458374200/de'
|
url: 'https://www.amd.com/de/direct-buy/5458374200/de',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amd-de'
|
name: 'amd-de',
|
||||||
};
|
};
|
||||||
|
|||||||
+60
-60
@@ -1,64 +1,64 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmdIt: Store = {
|
export const AmdIt: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.btn-shopping-cart',
|
container: '.btn-shopping-cart',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-page-description h4',
|
container: '.product-page-description h4',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881400/it'
|
url: 'https://www.amd.com/en/direct-buy/5450881400/it',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881400/it?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881400/it?add-to-cart=true',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881400/it'
|
url: 'https://www.amd.com/en/direct-buy/5450881400/it',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881500/it?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881500/it?add-to-cart=true',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881500/it'
|
url: 'https://www.amd.com/en/direct-buy/5450881500/it',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881600/it?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881600/it?add-to-cart=true',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881600/it'
|
url: 'https://www.amd.com/en/direct-buy/5450881600/it',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881700/it?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881700/it?add-to-cart=true',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881700/it'
|
url: 'https://www.amd.com/en/direct-buy/5450881700/it',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458374100/it?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458374100/it?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458374100/it'
|
url: 'https://www.amd.com/en/direct-buy/5458374100/it',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amd-it'
|
name: 'amd-it',
|
||||||
};
|
};
|
||||||
|
|||||||
+92
-92
@@ -1,96 +1,96 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AmdUk: Store = {
|
export const AmdUk: Store = {
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: [
|
inStock: [
|
||||||
{
|
{
|
||||||
container: '.btn-shopping-cart',
|
container: '.btn-shopping-cart',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '.btn-radeon',
|
container: '.btn-radeon',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-page-description h4',
|
container: '.product-page-description h4',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: [
|
outOfStock: [
|
||||||
{
|
{
|
||||||
container: '.product-out-of-stock',
|
container: '.product-out-of-stock',
|
||||||
text: ['out of stock']
|
text: ['out of stock'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
container: '.btn-radeon',
|
container: '.btn-radeon',
|
||||||
text: ['sold out']
|
text: ['sold out'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881400/gb'
|
url: 'https://www.amd.com/en/direct-buy/5450881400/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881400/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881400/gb?add-to-cart=true',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881400/gb'
|
url: 'https://www.amd.com/en/direct-buy/5450881400/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881500/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881500/gb?add-to-cart=true',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881500/gb'
|
url: 'https://www.amd.com/en/direct-buy/5450881500/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881600/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881600/gb?add-to-cart=true',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881600/gb'
|
url: 'https://www.amd.com/en/direct-buy/5450881600/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881700/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881700/gb?add-to-cart=true',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881700/gb'
|
url: 'https://www.amd.com/en/direct-buy/5450881700/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458374000/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458374000/gb?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458374000/gb'
|
url: 'https://www.amd.com/en/direct-buy/5458374000/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458374100/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458374100/gb?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458374100/gb'
|
url: 'https://www.amd.com/en/direct-buy/5458374100/gb',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458374200/gb?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458374200/gb?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458374200/gb'
|
url: 'https://www.amd.com/en/direct-buy/5458374200/gb',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amd-uk'
|
name: 'amd-uk',
|
||||||
};
|
};
|
||||||
|
|||||||
+76
-76
@@ -1,80 +1,80 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Amd: Store = {
|
export const Amd: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.btn-shopping-cart',
|
container: '.btn-shopping-cart',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-page-description h4',
|
container: '.product-page-description h4',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881400/us'
|
url: 'https://www.amd.com/en/direct-buy/5450881400/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881400/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881400/us?add-to-cart=true',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881400/us'
|
url: 'https://www.amd.com/en/direct-buy/5450881400/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881500/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881500/us?add-to-cart=true',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881500/us'
|
url: 'https://www.amd.com/en/direct-buy/5450881500/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881600/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881600/us?add-to-cart=true',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881600/us'
|
url: 'https://www.amd.com/en/direct-buy/5450881600/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5450881700/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5450881700/us?add-to-cart=true',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5450881700/us'
|
url: 'https://www.amd.com/en/direct-buy/5450881700/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458372200/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458372200/us?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458372200/us'
|
url: 'https://www.amd.com/en/direct-buy/5458372200/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458372800/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458372800/us?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458372800/us'
|
url: 'https://www.amd.com/en/direct-buy/5458372800/us',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
cartUrl:
|
cartUrl:
|
||||||
'https://www.amd.com/en/direct-buy/5458373400/us?add-to-cart=true',
|
'https://www.amd.com/en/direct-buy/5458373400/us?add-to-cart=true',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://www.amd.com/en/direct-buy/5458373400/us'
|
url: 'https://www.amd.com/en/direct-buy/5458373400/us',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'amd'
|
name: 'amd',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,43 +1,43 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AntOnline: Store = {
|
export const AntOnline: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.uk-button',
|
container: '.uk-button',
|
||||||
text: ['Add to Cart']
|
text: ['Add to Cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.cPrice',
|
container: '.cPrice',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.priceView-price .priceView-hero-price span',
|
container: '.priceView-price .priceView-hero-price span',
|
||||||
text: ['Sold Out']
|
text: ['Sold Out'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'https://www.antonline.com/Sony/Electronics/Gaming_Devices/Gaming_Consoles/1409507'
|
'https://www.antonline.com/Sony/Electronics/Gaming_Devices/Gaming_Consoles/1409507',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url:
|
||||||
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1414487'
|
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1414487',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url:
|
url:
|
||||||
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1409527'
|
'https://www.antonline.com/Microsoft/Electronics/Gaming_Devices/Gaming_Consoles/1409527',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'antonline'
|
name: 'antonline',
|
||||||
};
|
};
|
||||||
|
|||||||
+31
-31
@@ -1,35 +1,35 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const ArgosIE: Store = {
|
export const ArgosIE: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.btnbuyreserve',
|
container: '.btnbuyreserve',
|
||||||
text: ['buy or reserve']
|
text: ['buy or reserve'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.price'
|
container: '.price',
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '#subCopy',
|
container: '#subCopy',
|
||||||
text: ["We're working hard to get more stock."]
|
text: ["We're working hard to get more stock."],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url:
|
||||||
'http://www.argos.ie/static/Product/partNumber/8448262/Trail/searchtext%3EXBOX+SERIES+X.htm'
|
'http://www.argos.ie/static/Product/partNumber/8448262/Trail/searchtext%3EXBOX+SERIES+X.htm',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'http://www.argos.ie/static/Product/partNumber/8349000/Trail/searchtext%3EPS5+CONSOLE.htm'
|
'http://www.argos.ie/static/Product/partNumber/8349000/Trail/searchtext%3EPS5+CONSOLE.htm',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'argos-ie'
|
name: 'argos-ie',
|
||||||
};
|
};
|
||||||
|
|||||||
+43
-43
@@ -1,47 +1,47 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Argos: Store = {
|
export const Argos: Store = {
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: 'button[data-test="add-to-trolley-button-button"',
|
container: 'button[data-test="add-to-trolley-button-button"',
|
||||||
text: ['to trolley']
|
text: ['to trolley'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'li[itemprop="price"]'
|
container: 'li[itemprop="price"]',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.argos.co.uk/product/5718469'
|
url: 'https://www.argos.co.uk/product/5718469',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.argos.co.uk/product/8349000'
|
url: 'https://www.argos.co.uk/product/8349000',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.argos.co.uk/product/8349024'
|
url: 'https://www.argos.co.uk/product/8349024',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.argos.co.uk/product/8448262'
|
url: 'https://www.argos.co.uk/product/8448262',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.argos.co.uk/product/8448248'
|
url: 'https://www.argos.co.uk/product/8448248',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'argos'
|
name: 'argos',
|
||||||
};
|
};
|
||||||
|
|||||||
+62
-62
@@ -2,66 +2,66 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Aria: Store = {
|
export const Aria: Store = {
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#addQuantity',
|
container: '#addQuantity',
|
||||||
text: ['add to shopping basket']
|
text: ['add to shopping basket'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.priceBig',
|
container: '.priceBig',
|
||||||
euroFormat: false // Note: Aria uses non-euroFromat as price seperator
|
euroFormat: false, // Note: Aria uses non-euroFromat as price seperator
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.fBox',
|
container: '.fBox',
|
||||||
text: ['out of stock', 'there is currently no stock of this item']
|
text: ['out of stock', 'there is currently no stock of this item'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+2060+Super/Gigabyte+NVIDIA+GeForce+RTX+2060+SUPER+8GB+WINDFORCE+OC+Turing+Graphics+Card+%2B+RTX+Bundle%21?productId=71541'
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+2060+Super/Gigabyte+NVIDIA+GeForce+RTX+2060+SUPER+8GB+WINDFORCE+OC+Turing+Graphics+Card+%2B+RTX+Bundle%21?productId=71541',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Processors/AMD+CPUs/Ryzen+9+-+Socket+AM4/AMD+Ryzen+9+5950X+16+Core+AM4+CPU%2FProcessor?productId=72868'
|
'https://www.aria.co.uk/Products/Components/Processors/AMD+CPUs/Ryzen+9+-+Socket+AM4/AMD+Ryzen+9+5950X+16+Core+AM4+CPU%2FProcessor?productId=72868',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
linksBuilder: {
|
linksBuilder: {
|
||||||
builder: getProductLinksBuilder({
|
builder: getProductLinksBuilder({
|
||||||
productsSelector: '#productListingInner .listTable .listTableTr',
|
productsSelector: '#productListingInner .listTable .listTableTr',
|
||||||
sitePrefix: 'https://www.aria.co.uk',
|
sitePrefix: 'https://www.aria.co.uk',
|
||||||
titleSelector: 'strong > a[href]'
|
titleSelector: 'strong > a[href]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti'
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3060+Ti',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3070'
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3070',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3080'
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3090'
|
'https://www.aria.co.uk/Products/Components/Graphics+Cards/NVIDIA+GeForce/GeForce+RTX+3090',
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
name: 'aria',
|
name: 'aria',
|
||||||
waitUntil: 'domcontentloaded'
|
waitUntil: 'domcontentloaded',
|
||||||
};
|
};
|
||||||
|
|||||||
+137
-137
@@ -1,141 +1,141 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Arlt: Store = {
|
export const Arlt: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.articleDesc .shippingtext',
|
container: '.articleDesc .shippingtext',
|
||||||
text: ['auf Lager', 'Lieferzeit 2-3 Werktage', 'Ware im Zulauf']
|
text: ['auf Lager', 'Lieferzeit 2-3 Werktage', 'Ware im Zulauf'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.articleprice .price',
|
container: '.articleprice .price',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.articleDesc .shippingtext',
|
container: '.articleDesc .shippingtext',
|
||||||
text: ['Neuer Artikel in Kürze verfügbar', 'Liefertermin unbekannt']
|
text: ['Neuer Artikel in Kürze verfügbar', 'Liefertermin unbekannt'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/ASUS-GeForce-GTX1650-Super-TUF-GTX1650S-O4G-GAMING.html'
|
'https://www.arlt.com/ASUS-GeForce-GTX1650-Super-TUF-GTX1650S-O4G-GAMING.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-Dual-GeForce-RTX-3070.html'
|
'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-Dual-GeForce-RTX-3070.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual oc',
|
model: 'dual oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/ASUS-Dual-GeForce-RTX-3070-OC.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/ASUS-Dual-GeForce-RTX-3070-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3070-OC.html'
|
'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3070-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/ASUS-ROG-Strix-GeForce-RTX-3070.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/ASUS-ROG-Strix-GeForce-RTX-3070.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/MSI-GeForce-RTX-3070-Ventus-2X-OC.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3070/MSI-GeForce-RTX-3070-Ventus-2X-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix',
|
model: 'phoenix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/Gainward-GeForce-RTX-3070-Phoenix.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/Gainward-GeForce-RTX-3070-Phoenix.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3070-Phoenix-GS.html'
|
'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3070-Phoenix-GS.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3080-OC.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/ASUS-TUF-Gaming-GeForce-RTX-3080-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3080/MSI-GeForce-RTX-3080-Ventus-3X-OC.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3080/MSI-GeForce-RTX-3080-Ventus-3X-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-TUF-Gaming-GeForce-RTX-3090-OC.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-TUF-Gaming-GeForce-RTX-3090-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-ROG-Strix-GeForce-RTX-3090-OC.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Grafikkarten/NVIDIA/GeForce-RTX/RTX-3090/ASUS-ROG-Strix-GeForce-RTX-3090-OC.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gainward',
|
brand: 'gainward',
|
||||||
model: 'phoenix gs',
|
model: 'phoenix gs',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3090-Phoenix-GS.html'
|
'https://www.arlt.com/Gaming/Gaming-Hardware/Gainward-GeForce-RTX-3090-Phoenix-GS.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-5-5600X-boxed.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-5-5600X-boxed.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-7-5800X-boxed.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-7-5800X-boxed.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5900X-boxed.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5900X-boxed.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5950X-boxed.html'
|
'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5950X-boxed.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'arlt'
|
name: 'arlt',
|
||||||
};
|
};
|
||||||
|
|||||||
+73
-73
@@ -1,77 +1,77 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const AsusDe: Store = {
|
export const AsusDe: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.buybox--button',
|
container: '.buybox--button',
|
||||||
text: ['in den warenkorb']
|
text: ['in den warenkorb'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2766/asus-rog-strix-rtx2060s-o8g-evo-v2-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2766/asus-rog-strix-rtx2060s-o8g-evo-v2-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2828/asus-rog-strix-rtx3080-10g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2828/asus-rog-strix-rtx3080-10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2829/asus-rog-strix-rtx3080-o10g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2829/asus-rog-strix-rtx3080-o10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2824/asus-tuf-rtx3080-10g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2824/asus-tuf-rtx3080-10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2825/asus-tuf-rtx3080-o10g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2825/asus-tuf-rtx3080-o10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2826/asus-rog-strix-rtx3090-24g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2826/asus-rog-strix-rtx3090-24g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2827/asus-rog-strix-rtx3090-o24g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2827/asus-rog-strix-rtx3090-o24g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2822/asus-tuf-rtx3090-24g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2822/asus-tuf-rtx3090-24g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2823/asus-tuf-rtx3090-o24g-gaming'
|
'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2823/asus-tuf-rtx3090-o24g-gaming',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'asus-de'
|
name: 'asus-de',
|
||||||
};
|
};
|
||||||
|
|||||||
+183
-185
@@ -2,191 +2,189 @@ import {Store} from './store';
|
|||||||
import fetch from 'node-fetch';
|
import fetch from 'node-fetch';
|
||||||
|
|
||||||
export const Asus: Store = {
|
export const Asus: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#item_add_cart',
|
container: '#item_add_cart',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '#off_sale',
|
container: '#off_sale',
|
||||||
text: ['sold out']
|
text: ['sold out'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
itemNumber: '202006AM260000003',
|
itemNumber: '202006AM260000003',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://store.asus.com/us/item/202006AM260000003'
|
url: 'https://store.asus.com/us/item/202006AM260000003',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM030000004',
|
itemNumber: '202012AM030000004',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://store.asus.com/us/item/202012AM030000004'
|
url: 'https://store.asus.com/us/item/202012AM030000004',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM030000003',
|
itemNumber: '202012AM030000003',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://store.asus.com/us/item/202012AM030000003'
|
url: 'https://store.asus.com/us/item/202012AM030000003',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM030000005',
|
itemNumber: '202012AM030000005',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://store.asus.com/us/item/202012AM030000005'
|
url: 'https://store.asus.com/us/item/202012AM030000005',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM030000002',
|
itemNumber: '202012AM030000002',
|
||||||
model: 'ko',
|
model: 'ko',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://store.asus.com/us/item/202012AM030000002'
|
url: 'https://store.asus.com/us/item/202012AM030000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202010AM310000002',
|
itemNumber: '202010AM310000002',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://store.asus.com/us/item/202010AM310000002'
|
url: 'https://store.asus.com/us/item/202010AM310000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202011AM240000001',
|
itemNumber: '202011AM240000001',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://store.asus.com/us/item/202011AM240000001'
|
url: 'https://store.asus.com/us/item/202011AM240000001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202010AM310000001',
|
itemNumber: '202010AM310000001',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://store.asus.com/us/item/202010AM310000001'
|
url: 'https://store.asus.com/us/item/202010AM310000001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202011AM070000002',
|
itemNumber: '202011AM070000002',
|
||||||
model: 'ko oc',
|
model: 'ko oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://store.asus.com/us/item/202011AM070000002'
|
url: 'https://store.asus.com/us/item/202011AM070000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202011AM070000003',
|
itemNumber: '202011AM070000003',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://store.asus.com/us/item/202011AM070000003'
|
url: 'https://store.asus.com/us/item/202011AM070000003',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202101AM070000001',
|
itemNumber: '202101AM070000001',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://store.asus.com/us/item/202101AM070000001'
|
url: 'https://store.asus.com/us/item/202101AM070000001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM160000002',
|
itemNumber: '202012AM160000002',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://store.asus.com/us/item/202012AM160000002'
|
url: 'https://store.asus.com/us/item/202012AM160000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202011AM190000001',
|
itemNumber: '202011AM190000001',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://store.asus.com/us/item/202011AM190000001'
|
url: 'https://store.asus.com/us/item/202011AM190000001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM220000002',
|
itemNumber: '202012AM220000002',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://store.asus.com/us/item/202012AM220000002'
|
url: 'https://store.asus.com/us/item/202012AM220000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202009AM150000004',
|
itemNumber: '202009AM150000004',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://store.asus.com/us/item/202009AM150000004'
|
url: 'https://store.asus.com/us/item/202009AM150000004',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202101AM070000002',
|
itemNumber: '202101AM070000002',
|
||||||
model: 'ekwb',
|
model: 'ekwb',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://store.asus.com/us/item/202101AM070000002'
|
url: 'https://store.asus.com/us/item/202101AM070000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202011AM190000002',
|
itemNumber: '202011AM190000002',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://store.asus.com/us/item/202011AM190000002'
|
url: 'https://store.asus.com/us/item/202011AM190000002',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202009AM150000003',
|
itemNumber: '202009AM150000003',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://store.asus.com/us/item/202009AM150000003'
|
url: 'https://store.asus.com/us/item/202009AM150000003',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202010AM310000004',
|
itemNumber: '202010AM310000004',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://store.asus.com/us/item/202010AM310000004'
|
url: 'https://store.asus.com/us/item/202010AM310000004',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202012AM220000001',
|
itemNumber: '202012AM220000001',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://store.asus.com/us/item/202012AM220000001'
|
url: 'https://store.asus.com/us/item/202012AM220000001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
itemNumber: '202011AM200000003',
|
itemNumber: '202011AM200000003',
|
||||||
model: 'crosshair viii',
|
model: 'crosshair viii',
|
||||||
series: 'darkhero',
|
series: 'darkhero',
|
||||||
url: 'https://store.asus.com/us/item/202011AM200000003'
|
url: 'https://store.asus.com/us/item/202011AM200000003',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'asus',
|
name: 'asus',
|
||||||
realTimeInventoryLookup: async (itemNumber: string) => {
|
realTimeInventoryLookup: async (itemNumber: string) => {
|
||||||
const request_url =
|
const request_url = 'https://store.asus.com/us/category/get_real_time_data';
|
||||||
'https://store.asus.com/us/category/get_real_time_data';
|
const response = await fetch(request_url, {
|
||||||
const response = await fetch(request_url, {
|
body: 'sm_seq_list%5B%5D=' + itemNumber,
|
||||||
body: 'sm_seq_list%5B%5D=' + itemNumber,
|
headers: {
|
||||||
headers: {
|
'accept-language': 'en-US,en;q=0.9',
|
||||||
'accept-language': 'en-US,en;q=0.9',
|
'cache-control': 'no-cache',
|
||||||
'cache-control': 'no-cache',
|
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||||
'content-type':
|
},
|
||||||
'application/x-www-form-urlencoded; charset=UTF-8'
|
method: 'POST',
|
||||||
},
|
});
|
||||||
method: 'POST'
|
const response_json = await response.json();
|
||||||
});
|
|
||||||
const response_json = await response.json();
|
|
||||||
|
|
||||||
if (response_json.data[itemNumber] !== undefined) {
|
if (response_json.data[itemNumber] !== undefined) {
|
||||||
const item_info = response_json.data[itemNumber].market_info;
|
const item_info = response_json.data[itemNumber].market_info;
|
||||||
if (item_info.buy === true || item_info.quantity > 0) {
|
if (item_info.buy === true || item_info.quantity > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
successStatusCodes: [[0, 399], 404]
|
successStatusCodes: [[0, 399], 404],
|
||||||
};
|
};
|
||||||
|
|||||||
+88
-88
@@ -2,92 +2,92 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Awd: Store = {
|
export const Awd: Store = {
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.vs-stock .ty-qty-in-stock',
|
container: '.vs-stock .ty-qty-in-stock',
|
||||||
text: ['item(s)']
|
text: ['item(s)'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.ty-price',
|
container: '.ty-price',
|
||||||
euroFormat: false // Note: Awd uses non-euroFromat as price seperator
|
euroFormat: false, // Note: Awd uses non-euroFromat as price seperator
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.vs-stock.ty-float-left',
|
container: '.vs-stock.ty-float-left',
|
||||||
text: ['Out-of-stock']
|
text: ['Out-of-stock'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/asus-nvidia-geforce-gt-710-silent-low-profile-2gb-gddr5-graphics-card-pci-e.html'
|
'https://www.awd-it.co.uk/asus-nvidia-geforce-gt-710-silent-low-profile-2gb-gddr5-graphics-card-pci-e.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/amd-ryzen-5-5600x-cpu-six-core-3.7ghz-processor-socket-am4-retail.html'
|
'https://www.awd-it.co.uk/amd-ryzen-5-5600x-cpu-six-core-3.7ghz-processor-socket-am4-retail.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/amd-ryzen-7-5800x-cpu-eight-core-3.8ghz-processor-socket-am4-retail.html'
|
'https://www.awd-it.co.uk/amd-ryzen-7-5800x-cpu-eight-core-3.8ghz-processor-socket-am4-retail.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/amd-ryzen-9-5900x-cpu-twelve-core-3.7ghz-processor-socket-am4-retail.html'
|
'https://www.awd-it.co.uk/amd-ryzen-9-5900x-cpu-twelve-core-3.7ghz-processor-socket-am4-retail.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/amd-ryzen-9-5950x-sixteen-core-socket-am4-3.4ghz-processor.html'
|
'https://www.awd-it.co.uk/amd-ryzen-9-5950x-sixteen-core-socket-am4-3.4ghz-processor.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
linksBuilder: {
|
linksBuilder: {
|
||||||
builder: getProductLinksBuilder({
|
builder: getProductLinksBuilder({
|
||||||
productsSelector: '.grid-list .ty-grid-list__item',
|
productsSelector: '.grid-list .ty-grid-list__item',
|
||||||
sitePrefix: 'https://www.awd-it.co.uk',
|
sitePrefix: 'https://www.awd-it.co.uk',
|
||||||
titleSelector: '.product-title'
|
titleSelector: '.product-title',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
{
|
{
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/components/graphics-cards/ati/amd-radeon-6800-6800xt.html'
|
'https://www.awd-it.co.uk/components/graphics-cards/ati/amd-radeon-6800-6800xt.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html'
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3060ti.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3070.html'
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3070.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3080.html'
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3080.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3090.html'
|
'https://www.awd-it.co.uk/components/graphics-cards/nvidia/nvidia-geforce-rtx-3090.html',
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
name: 'awd',
|
name: 'awd',
|
||||||
waitUntil: 'domcontentloaded'
|
waitUntil: 'domcontentloaded',
|
||||||
};
|
};
|
||||||
|
|||||||
+214
-214
@@ -1,218 +1,218 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Azerty: Store = {
|
export const Azerty: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.orderdelay',
|
container: '.orderdelay',
|
||||||
text: ['Volgende werkdag in huis', '1 werkdag', '2-3 werkdagen']
|
text: ['Volgende werkdag in huis', '1 werkdag', '2-3 werkdagen'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.mod_article .price',
|
container: '.mod_article .price',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.orderdelay',
|
container: '.orderdelay',
|
||||||
text: ['Onbekend', 'meer dan 10 werkdagen', 'Pre-order']
|
text: ['Onbekend', 'meer dan 10 werkdagen', 'Pre-order'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/gigabyte/3756757/geforce-rtx-2060-oc-6g-grafische-kaart-geforce-rtx-2060'
|
'https://azerty.nl/product/gigabyte/3756757/geforce-rtx-2060-oc-6g-grafische-kaart-geforce-rtx-2060',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/gigabyte/4349658/aorus-geforce-rtx-3080-xtreme-10g-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/gigabyte/4349658/aorus-geforce-rtx-3080-xtreme-10g-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/msi/4346262/geforce-rtx-3080-ventus-3x-10g-oc-grafische-kaart-rtx-3080'
|
'https://azerty.nl/product/msi/4346262/geforce-rtx-3080-ventus-3x-10g-oc-grafische-kaart-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4346679/tuf-gaming-geforce-rtx-3080-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/asus/4346679/tuf-gaming-geforce-rtx-3080-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/msi/4346263/geforce-rtx-3080-gaming-x-trio-10g-grafische-kaart-rtx-3080'
|
'https://azerty.nl/product/msi/4346263/geforce-rtx-3080-gaming-x-trio-10g-grafische-kaart-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4348176/tuf-gaming-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/asus/4348176/tuf-gaming-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4348174/rog-strix-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/asus/4348174/rog-strix-geforce-rtx-3080-oc-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/zotac/4352301/gaming-geforce-rtx-3080-trinity-oc-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/zotac/4352301/gaming-geforce-rtx-3080-trinity-oc-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/gigabyte/4349651/aorus-geforce-rtx-3080-master-10g-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/gigabyte/4349651/aorus-geforce-rtx-3080-master-10g-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/pny/4342269/geforce-rtx-3080-xlr8-gaming-revel-epic-x-rgb-triple-fan-gaming-edition-grafische-kaart-gf-rtx-3080'
|
'https://azerty.nl/product/pny/4342269/geforce-rtx-3080-xlr8-gaming-revel-epic-x-rgb-triple-fan-gaming-edition-grafische-kaart-gf-rtx-3080',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4363892/rog-strix-gaming-geforce-rtx-3070-o8g-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/asus/4363892/rog-strix-gaming-geforce-rtx-3070-o8g-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4373096/rog-strix-gaming-geforce-rtx-3070-8g-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/asus/4373096/rog-strix-gaming-geforce-rtx-3070-8g-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4363910/tuf-gaming-geforce-rtx-3070-oc-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/asus/4363910/tuf-gaming-geforce-rtx-3070-oc-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/asus/4373099/tuf-gaming-geforce-rtx-3070-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/asus/4373099/tuf-gaming-geforce-rtx-3070-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/inno3d/4369725/geforce-rtx-3070-ichill-x4-videokaart-8-gb-ddr6'
|
'https://azerty.nl/product/inno3d/4369725/geforce-rtx-3070-ichill-x4-videokaart-8-gb-ddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/inno3d/4369726/geforce-rtx-3070-ichill-x3-videokaart-8-gb-ddr6'
|
'https://azerty.nl/product/inno3d/4369726/geforce-rtx-3070-ichill-x3-videokaart-8-gb-ddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/msi/4374747/geforce-rtx-3070-ventus-3x-oc-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/msi/4374747/geforce-rtx-3070-ventus-3x-oc-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/msi/4365398/geforce-rtx-3070-gaming-x-trio-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/msi/4365398/geforce-rtx-3070-gaming-x-trio-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'dual fan',
|
model: 'dual fan',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/pny/4342270/uprising-dual-fan-geforce-rtx-3070'
|
'https://azerty.nl/product/pny/4342270/uprising-dual-fan-geforce-rtx-3070',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/pny/4342271/epic-x-rgb-geforce-rtx-3070-triple-fan-gaming-edition-xlr8--videokaart-8-gb-gddr6x'
|
'https://azerty.nl/product/pny/4342271/epic-x-rgb-geforce-rtx-3070-triple-fan-gaming-edition-xlr8--videokaart-8-gb-gddr6x',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/evga/4377247/geforce-rtx-3070-ftw3-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/evga/4377247/geforce-rtx-3070-ftw3-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/evga/4377248/xc3-geforce-rtx-3070-xc3-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/evga/4377248/xc3-geforce-rtx-3070-xc3-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/evga/4377250/ftw3-ultra-geforce-rtx-3070-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/evga/4377250/ftw3-ultra-geforce-rtx-3070-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/evga/4377252/xc3-black-geforce-rtx-3070-videokaart-8-gb-gddr6'
|
'https://azerty.nl/product/evga/4377252/xc3-black-geforce-rtx-3070-videokaart-8-gb-gddr6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/amd/4368019/ryzen-5-5600x-processor-3-7-ghz-4-6-ghz-'
|
'https://azerty.nl/product/amd/4368019/ryzen-5-5600x-processor-3-7-ghz-4-6-ghz-',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/amd/4368018/ryzen-7-5800x-processor-3-8-ghz-4-7-ghz-'
|
'https://azerty.nl/product/amd/4368018/ryzen-7-5800x-processor-3-8-ghz-4-7-ghz-',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/amd/4368017/ryzen-9-5900x-processor-3-7-ghz-4-8-ghz-'
|
'https://azerty.nl/product/amd/4368017/ryzen-9-5900x-processor-3-7-ghz-4-8-ghz-',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://azerty.nl/product/amd/4368016/ryzen-9-5950x-processor-3-4-ghz-4-9-ghz-'
|
'https://azerty.nl/product/amd/4368016/ryzen-9-5950x-processor-3-4-ghz-4-9-ghz-',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'azerty'
|
name: 'azerty',
|
||||||
};
|
};
|
||||||
|
|||||||
+334
-334
@@ -1,339 +1,339 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const BAndH: Store = {
|
export const BAndH: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: 'div[data-selenium="addToCartSection"]',
|
container: 'div[data-selenium="addToCartSection"]',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div[data-selenium="pricingPrice"]',
|
container: 'div[data-selenium="pricingPrice"]',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: 'button[data-selenium="notifyAvailabilityButton"]',
|
container: 'button[data-selenium="notifyAvailabilityButton"]',
|
||||||
text: ['notify when available']
|
text: ['notify when available'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1452927-REG/evga_06g_p4_2063_kr_geforce_rtx_2060_xc.html'
|
'https://www.bhphotovideo.com/c/product/1452927-REG/evga_06g_p4_2063_kr_geforce_rtx_2060_xc.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1602755-REG/asus_dualrtx30708g_geforce_rtx_3070_8g.html'
|
'https://www.bhphotovideo.com/c/product/1602755-REG/asus_dualrtx30708g_geforce_rtx_3070_8g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'dual fan',
|
model: 'dual fan',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1595984-REG/pny_technologies_vcg30708tfxppb_geforce_rtx_3070_epic_x.html'
|
'https://www.bhphotovideo.com/c/product/1595984-REG/pny_technologies_vcg30708tfxppb_geforce_rtx_3070_epic_x.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1602756-REG/asus_strixrtx3070o8_rog_strix_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1602756-REG/asus_strixrtx3070o8_rog_strix_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual oc',
|
model: 'dual oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1603974-REG/asus_dualrtx3070o8g_dual_geforce_rtx_3070.html'
|
'https://www.bhphotovideo.com/c/product/1603974-REG/asus_dualrtx3070o8g_dual_geforce_rtx_3070.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'ko oc',
|
model: 'ko oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606745-REG/asus_90yv0fq2_m0aa00_ko_nvidia_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1606745-REG/asus_90yv0fq2_m0aa00_ko_nvidia_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606746-REG/asus_tuf_rtx3070_o8g_gaming_tuf_gaming_nvidia_geforce.html'
|
'https://www.bhphotovideo.com/c/product/1606746-REG/asus_tuf_rtx3070_o8g_gaming_tuf_gaming_nvidia_geforce.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'ekwb',
|
model: 'ekwb',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1614305-REG/asus_rtx3070_8g_ek_ekwb_geforce_rtx_3070.html'
|
'https://www.bhphotovideo.com/c/product/1614305-REG/asus_rtx3070_8g_ek_ekwb_geforce_rtx_3070.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix white',
|
model: 'strix white',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1614300-REG/asus_rog_strix_rtx3070_o8g_white_rog_strix_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1614300-REG/asus_rog_strix_rtx3070_o8g_white_rog_strix_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
// TUF was removed from BH, not sure why so commenting out listing for now
|
// TUF was removed from BH, not sure why so commenting out listing for now
|
||||||
// {
|
// {
|
||||||
// brand: 'asus',
|
// brand: 'asus',
|
||||||
// model: 'tuf',
|
// model: 'tuf',
|
||||||
// series: '3080',
|
// series: '3080',
|
||||||
// url: 'https://www.bhphotovideo.com/c/product/1593649-REG/asus_tuf_rtx3080_10g_gaming_tuf_gaming_geforce_rtx.html'
|
// url: 'https://www.bhphotovideo.com/c/product/1593649-REG/asus_tuf_rtx3080_10g_gaming_tuf_gaming_geforce_rtx.html'
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593333-REG/gigabyte_gv_n3080gaming_oc_10gd_geforce_rtx_3080_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1593333-REG/gigabyte_gv_n3080gaming_oc_10gd_geforce_rtx_3080_gaming.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1592969-REG/zotac_zt_a30800d_10p_gaming_geforce_rtx_3080.html'
|
'https://www.bhphotovideo.com/c/product/1592969-REG/zotac_zt_a30800d_10p_gaming_geforce_rtx_3080.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1593650-REG/asus_tuf_rtx3080_o10g_gaming_tuf_gaming_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1603617-REG/asus_rog_strix_rtx3080_o10g_gaming_rog_strix_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1603617-REG/asus_rog_strix_rtx3080_o10g_gaming_rog_strix_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix white',
|
model: 'strix white',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1614301-REG/asus_rog_strix_rtx3080_o10g_white_rog_strix_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1614301-REG/asus_rog_strix_rtx3080_o10g_white_rog_strix_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'ekwb',
|
model: 'ekwb',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1614303-REG/asus_rtx3080_10g_ek_ekwb_geforce_rtx_3080.html'
|
'https://www.bhphotovideo.com/c/product/1614303-REG/asus_rtx3080_10g_ek_ekwb_geforce_rtx_3080.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'ko oc',
|
model: 'ko oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1609756-REG/asus_ko_rtx3060ti_o8g_gaming_ko_geforce_rtx_3060.html'
|
'https://www.bhphotovideo.com/c/product/1609756-REG/asus_ko_rtx3060ti_o8g_gaming_ko_geforce_rtx_3060.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1607025-REG/asus_tuf_rtx3060ti_o8g_gaming_geforce_rtx_3060_ti.html'
|
'https://www.bhphotovideo.com/c/product/1607025-REG/asus_tuf_rtx3060ti_o8g_gaming_geforce_rtx_3060_ti.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606948-REG/gigabyte_gv_n306teagle_oc_8gd_rtx_3060_ti_eagle.html'
|
'https://www.bhphotovideo.com/c/product/1606948-REG/gigabyte_gv_n306teagle_oc_8gd_rtx_3060_ti_eagle.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606949-REG/gigabyte_gv_n306teagle_8gd_rtx_3060_ti_eagle.html'
|
'https://www.bhphotovideo.com/c/product/1606949-REG/gigabyte_gv_n306teagle_8gd_rtx_3060_ti_eagle.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus',
|
model: 'aorus',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606945-REG/gigabyte_gv_n306taorus_m_8gd_aorus_rtx_3060_ti.html'
|
'https://www.bhphotovideo.com/c/product/1606945-REG/gigabyte_gv_n306taorus_m_8gd_aorus_rtx_3060_ti.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606947-REG/gigabyte_gv_n306tgaming_oc_8gd_rtx_3060_ti_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1606947-REG/gigabyte_gv_n306tgaming_oc_8gd_rtx_3060_ti_gaming.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming pro',
|
model: 'gaming pro',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593996-REG/msi_g3080gxt10_geforce_rtx_3080_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1593996-REG/msi_g3080gxt10_geforce_rtx_3080_gaming.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593997-REG/msi_g3080v3x10c_geforce_rtx_3080_ventus.html'
|
'https://www.bhphotovideo.com/c/product/1593997-REG/msi_g3080v3x10c_geforce_rtx_3080_ventus.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593645-REG/msi_geforce_rtx_3080_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1593645-REG/msi_geforce_rtx_3080_gaming.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593646-REG/msi_geforce_rtx_3080_ventus.html'
|
'https://www.bhphotovideo.com/c/product/1593646-REG/msi_geforce_rtx_3080_ventus.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1592970-REG/zotac_zt_a30900d_10p_gaming_geforce_rtx_3090.html'
|
'https://www.bhphotovideo.com/c/product/1592970-REG/zotac_zt_a30900d_10p_gaming_geforce_rtx_3090.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593647-REG/msi_geforce_rtx_3090_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1593647-REG/msi_geforce_rtx_3090_gaming.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593994-REG/msi_g3090gxt24_geforce_rtx_3090_gaming.html'
|
'https://www.bhphotovideo.com/c/product/1593994-REG/msi_g3090gxt24_geforce_rtx_3090_gaming.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593648-REG/msi_geforce_rtx_3090_ventus.html'
|
'https://www.bhphotovideo.com/c/product/1593648-REG/msi_geforce_rtx_3090_ventus.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593995-REG/msi_g3090v3x24c_geforce_rtx_3090_ventus.html'
|
'https://www.bhphotovideo.com/c/product/1593995-REG/msi_g3090v3x24c_geforce_rtx_3090_ventus.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593334-REG/gigabyte_gv_n3090eagle_oc_24gd_geforce_rtx_3090_eagle.html'
|
'https://www.bhphotovideo.com/c/product/1593334-REG/gigabyte_gv_n3090eagle_oc_24gd_geforce_rtx_3090_eagle.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1593335-REG/gigabyte_gv_n3090gaming_oc_24gd_geforce_rtx3090_gaming_oc.html'
|
'https://www.bhphotovideo.com/c/product/1593335-REG/gigabyte_gv_n3090gaming_oc_24gd_geforce_rtx3090_gaming_oc.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1594454-REG/asus_90yv0fd0_m0am00_tuf_gaming_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1594454-REG/asus_90yv0fd0_m0am00_tuf_gaming_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1594451-REG/asus_90yv0fd1_m0am00_tuf_gaming_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1594451-REG/asus_90yv0fd1_m0am00_tuf_gaming_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'ekwb',
|
model: 'ekwb',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1607043-REG/asus_rtx3090_24g_ek_geforce_rtx_3090_24g.html'
|
'https://www.bhphotovideo.com/c/product/1607043-REG/asus_rtx3090_24g_ek_geforce_rtx_3090_24g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1601764-REG/asus_rog_strix_rtx3090_o24g_gaming_rog_strix_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1601764-REG/asus_rog_strix_rtx3090_o24g_gaming_rog_strix_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix white',
|
model: 'strix white',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1614302-REG/asus_rog_strix_rtx3090_o24g_white_rog_strix_geforce_rtx.html'
|
'https://www.bhphotovideo.com/c/product/1614302-REG/asus_rog_strix_rtx3090_o24g_white_rog_strix_geforce_rtx.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1598372-REG/amd_100_100000059wof_ryzen_9_5950x_3_4.html'
|
'https://www.bhphotovideo.com/c/product/1598372-REG/amd_100_100000059wof_ryzen_9_5950x_3_4.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1598373-REG/amd_100_100000061wof_ryzen_9_5900x_3_7.html'
|
'https://www.bhphotovideo.com/c/product/1598373-REG/amd_100_100000061wof_ryzen_9_5900x_3_7.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1598376-REG/amd_100_100000063wof_ryzen_7_5800x_3_8.html'
|
'https://www.bhphotovideo.com/c/product/1598376-REG/amd_100_100000063wof_ryzen_7_5800x_3_8.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html'
|
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html'
|
'https://www.bhphotovideo.com/c/product/1598377-REG/amd_100_100000065box_ryzen_5_5600x_3_7.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'corsair',
|
brand: 'corsair',
|
||||||
model: '750 platinum',
|
model: '750 platinum',
|
||||||
series: 'sf',
|
series: 'sf',
|
||||||
url:
|
url:
|
||||||
'https://www.bhphotovideo.com/c/product/1560680-REG/corsair_cp_9020186_na_corsair_sf750_power_supply.html'
|
'https://www.bhphotovideo.com/c/product/1560680-REG/corsair_cp_9020186_na_corsair_sf750_power_supply.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'bandh'
|
name: 'bandh',
|
||||||
};
|
};
|
||||||
|
|||||||
+204
-204
@@ -1,208 +1,208 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const BestBuyCa: Store = {
|
export const BestBuyCa: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div[class*="pricingContainer"]',
|
container: 'div[class*="pricingContainer"]',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.addToCartButton:disabled',
|
container: '.addToCartButton:disabled',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/google-nest-hello-wi-fi-video-doorbell-black-white/12222651'
|
'https://www.bestbuy.ca/en-ca/product/google-nest-hello-wi-fi-video-doorbell-black-white/12222651',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ti-ventus-2x-oc-8gb-gddr6-video-card/15178453?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ti-ventus-2x-oc-8gb-gddr6-video-card/15178453?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'nvidia',
|
brand: 'nvidia',
|
||||||
model: 'founders edition',
|
model: 'founders edition',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3060-ti-8gb-gddr6-video-card/15166285?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3060-ti-8gb-gddr6-video-card/15166285?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-oc-8gb-gddr6-video-card/15178452?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3060-ti-twin-edge-oc-8gb-gddr6-video-card/15178452?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3060-ti-ftw3-ultra-8gb-gddr6-video-card/15200164?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3060-ti-ftw3-ultra-8gb-gddr6-video-card/15200164?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3080-trinity-10gb-gddr6x-video-card/14953249?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3080-trinity-10gb-gddr6x-video-card/14953249?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3080-trinity-oc-10gb-gddr6x-video-card/15000077?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3080-trinity-oc-10gb-gddr6x-video-card/15000077?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x',
|
model: 'ventus 3x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3080-ventus-3x-10gb-gddr6x-video-card/14950588?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3080-ventus-3x-10gb-gddr6x-video-card/14950588?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/15084753?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card/15084753?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card-english/14961449?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-video-card-english/14961449?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x-video-card/14953248?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3080-10gb-gddr6x-video-card/14953248?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-video-card/14954116?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-video-card/14954116?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3090-trinity-24gb-gddr6x-video-card/14953250?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/zotac-geforce-rtx-3090-trinity-24gb-gddr6x-video-card/14953250?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3090-24gb-gddr6x-video-card/14953247?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/asus-tuf-gaming-geforce-rtx-3090-24gb-gddr6x-video-card/14953247?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3090-24gb-gddr6x-video-card/14954117?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/asus-rog-strix-geforce-rtx-3090-24gb-gddr6x-video-card/14954117?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3090-ventus-3x-oc-24gb-gddr6x-video-card/14966477?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3090-ventus-3x-oc-24gb-gddr6x-video-card/14966477?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-nvidia-geforce-rtx-3090-xc3-ultra-gaming-24gb-gddr6x-video-card/14967857?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-nvidia-geforce-rtx-3090-xc3-ultra-gaming-24gb-gddr6x-video-card/14967857?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3070-ventus-3x-oc-8gb-gddr6x-video-card/15038016?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3070-ventus-3x-oc-8gb-gddr6x-video-card/15038016?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-oc-8gb-gddr6x-video-card/15000078?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-oc-8gb-gddr6x-video-card/15000078?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-8gb-gddr6x-video-card/15000079?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/zotac-nvidia-geforce-rtx-3070-twin-edge-8gb-gddr6x-video-card/15000079?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'nvidia',
|
brand: 'nvidia',
|
||||||
model: 'founders edition',
|
model: 'founders edition',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3070-8gb-gddr6-video-card-only-at-best-buy/15078017?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3070-8gb-gddr6-video-card-only-at-best-buy/15078017?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3070-xc3-ultra-8gb-gddr6-video-card/15147122?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3070-xc3-ultra-8gb-gddr6-video-card/15147122?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3070-xc3-black-8gb-gddr6-video-card/15081879?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/evga-geforce-rtx-3070-xc3-black-8gb-gddr6-video-card/15081879?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/playstation-5-console-online-only/14962185?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/playstation-5-console-online-only/14962185?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/playstation-5-digital-edition-console-online-only/14962184?intl=nosplash'
|
'https://www.bestbuy.ca/en-ca/product/playstation-5-digital-edition-console-online-only/14962184?intl=nosplash',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/xbox-series-x-1tb-console-new-model-online-only/14964951'
|
'https://www.bestbuy.ca/en-ca/product/xbox-series-x-1tb-console-new-model-online-only/14964951',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url:
|
url:
|
||||||
'https://www.bestbuy.ca/en-ca/product/xbox-series-s-512gb-console-new-model-online-only/14964950'
|
'https://www.bestbuy.ca/en-ca/product/xbox-series-s-512gb-console-new-model-online-only/14964950',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'bestbuy-ca',
|
name: 'bestbuy-ca',
|
||||||
waitUntil: 'domcontentloaded'
|
waitUntil: 'domcontentloaded',
|
||||||
};
|
};
|
||||||
|
|||||||
+461
-462
@@ -1,466 +1,465 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const BestBuy: Store = {
|
export const BestBuy: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container:
|
container: '[data-sticky-media-gallery] .fulfillment-add-to-cart-button',
|
||||||
'[data-sticky-media-gallery] .fulfillment-add-to-cart-button',
|
text: ['add to cart'],
|
||||||
text: ['add to cart']
|
},
|
||||||
},
|
maxPrice: {
|
||||||
maxPrice: {
|
container:
|
||||||
container:
|
'[data-sticky-media-gallery] .priceView-price .priceView-hero-price span',
|
||||||
'[data-sticky-media-gallery] .priceView-price .priceView-hero-price span'
|
},
|
||||||
}
|
},
|
||||||
},
|
links: [
|
||||||
links: [
|
{
|
||||||
{
|
brand: 'test:brand',
|
||||||
brand: 'test:brand',
|
model: 'test:model',
|
||||||
model: 'test:model',
|
series: 'test:series',
|
||||||
series: 'test:series',
|
url: 'https://api.bestbuy.com/click/-/6258941/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6258941/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'nvidia',
|
||||||
brand: 'nvidia',
|
cartUrl: 'https://api.bestbuy.com/click/-/6429442/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6429442/cart',
|
model: 'founders edition',
|
||||||
model: 'founders edition',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6429442/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6429442/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439300/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439300/cart',
|
model: 'xc3 black',
|
||||||
model: 'xc3 black',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439300/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439300/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6437912/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6437912/cart',
|
model: 'eagle',
|
||||||
model: 'eagle',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6437912/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6437912/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6437909/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6437909/cart',
|
model: 'gaming oc',
|
||||||
model: 'gaming oc',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6437909/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6437909/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'pny',
|
||||||
brand: 'pny',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432654/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432654/cart',
|
model: 'dual fan',
|
||||||
model: 'dual fan',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6432654/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432654/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'pny',
|
||||||
brand: 'pny',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432653/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432653/cart',
|
model: 'xlr8 revel',
|
||||||
model: 'xlr8 revel',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6432653/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432653/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439384/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439384/cart',
|
model: 'aorus',
|
||||||
model: 'aorus',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439384/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439384/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439385/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439385/cart',
|
model: 'vision',
|
||||||
model: 'vision',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439385/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439385/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439128/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439128/cart',
|
model: 'tuf',
|
||||||
model: 'tuf',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439128/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439128/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6438278/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6438278/cart',
|
model: 'ventus 3x oc',
|
||||||
model: 'ventus 3x oc',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6438278/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6438278/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439127/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439127/cart',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439127/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439127/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439301/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439301/cart',
|
model: 'ftw3 ultra',
|
||||||
model: 'ftw3 ultra',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439301/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439301/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439299/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439299/cart',
|
model: 'xc3 ultra',
|
||||||
model: 'xc3 ultra',
|
series: '3070',
|
||||||
series: '3070',
|
url: 'https://api.bestbuy.com/click/-/6439299/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439299/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'nvidia',
|
||||||
brand: 'nvidia',
|
cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6429440/cart',
|
model: 'founders edition',
|
||||||
model: 'founders edition',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6429440/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6429440/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432445/cart',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6432445/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432445/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432399/cart',
|
model: 'xc3 black',
|
||||||
model: 'xc3 black',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6432399/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432399/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436194/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436194/cart',
|
model: 'xc3',
|
||||||
model: 'xc3',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6436194/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436194/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432400/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432400/cart',
|
model: 'xc3 ultra',
|
||||||
model: 'xc3 ultra',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6432400/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432400/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436196/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436196/cart',
|
model: 'ftw3 ultra',
|
||||||
model: 'ftw3 ultra',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6436196/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436196/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436191/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436191/cart',
|
model: 'ftw3',
|
||||||
model: 'ftw3',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6436191/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436191/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430620/cart',
|
model: 'gaming oc',
|
||||||
model: 'gaming oc',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6430620/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430620/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430621/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430621/cart',
|
model: 'eagle oc',
|
||||||
model: 'eagle oc',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6430621/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430621/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436219/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436219/cart',
|
model: 'vision oc',
|
||||||
model: 'vision oc',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6436219/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436219/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436223/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436223/cart',
|
model: 'aorus master',
|
||||||
model: 'aorus master',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6436223/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436223/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430175/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430175/cart',
|
model: 'ventus 3x oc',
|
||||||
model: 'ventus 3x oc',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6430175/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430175/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'pny',
|
||||||
brand: 'pny',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432655/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432655/cart',
|
model: 'xlr8 revel',
|
||||||
model: 'xlr8 revel',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6432655/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432655/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'pny',
|
||||||
brand: 'pny',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432658/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432658/cart',
|
model: 'xlr8 revel',
|
||||||
model: 'xlr8 revel',
|
series: '3080',
|
||||||
series: '3080',
|
url: 'https://api.bestbuy.com/click/-/6432658/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432658/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'nvidia',
|
||||||
brand: 'nvidia',
|
cartUrl: 'https://api.bestbuy.com/click/-/6429434/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6429434/cart',
|
model: 'founders edition',
|
||||||
model: 'founders edition',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6429434/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6429434/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432447/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432447/cart',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6432447/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432447/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432446/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432446/cart',
|
model: 'tuf',
|
||||||
model: 'tuf',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6432446/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432446/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430215/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430215/cart',
|
model: 'ventus 3x oc',
|
||||||
model: 'ventus 3x oc',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6430215/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430215/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430623/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430623/cart',
|
model: 'gaming',
|
||||||
model: 'gaming',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6430623/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430623/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430624/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430624/cart',
|
model: 'eagle',
|
||||||
model: 'eagle',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6430624/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430624/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6434363/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6434363/cart',
|
model: 'xc3',
|
||||||
model: 'xc3',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6434363/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6434363/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436193/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436193/cart',
|
model: 'ftw3',
|
||||||
model: 'ftw3',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6436193/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436193/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6436192/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6436192/cart',
|
model: 'ftw3 ultra',
|
||||||
model: 'ftw3 ultra',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6436192/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6436192/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'pny',
|
||||||
brand: 'pny',
|
cartUrl: 'https://api.bestbuy.com/click/-/6432657/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6432657/cart',
|
model: 'xlr8 revel',
|
||||||
model: 'xlr8 revel',
|
series: '3090',
|
||||||
series: '3090',
|
url: 'https://api.bestbuy.com/click/-/6432657/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6432657/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'nvidia',
|
||||||
brand: 'nvidia',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439402/cart',
|
model: 'founders edition',
|
||||||
model: 'founders edition',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6439402/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439402/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6441172/cart',
|
model: 'ventus 2x',
|
||||||
model: 'ventus 2x',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6441172/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6441172/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6442484/cart',
|
model: 'gaming oc',
|
||||||
model: 'gaming oc',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6442484/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6442484/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6442485/cart',
|
model: 'eagle',
|
||||||
model: 'eagle',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6442485/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6442485/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6438942/cart',
|
model: '5900x',
|
||||||
model: '5900x',
|
series: 'ryzen5900',
|
||||||
series: 'ryzen5900',
|
url: 'https://api.bestbuy.com/click/-/6438942/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6438942/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
cartUrl: 'https://api.bestbuy.com/click/-/6438941/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6438941/cart',
|
model: '5950x',
|
||||||
model: '5950x',
|
series: 'ryzen5950',
|
||||||
series: 'ryzen5950',
|
url: 'https://api.bestbuy.com/click/-/6438941/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6438941/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
cartUrl: 'https://api.bestbuy.com/click/-/6439000/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6439000/cart',
|
model: '5800x',
|
||||||
model: '5800x',
|
series: 'ryzen5800',
|
||||||
series: 'ryzen5800',
|
url: 'https://api.bestbuy.com/click/-/6439000/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6439000/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
cartUrl: 'https://api.bestbuy.com/click/-/6438943/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6438943/cart',
|
model: '5600x',
|
||||||
model: '5600x',
|
series: 'ryzen5600',
|
||||||
series: 'ryzen5600',
|
url: 'https://api.bestbuy.com/click/-/6438943/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6438943/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
cartUrl: 'https://api.bestbuy.com/click/-/6426149/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6426149/cart',
|
model: 'ps5 console',
|
||||||
model: 'ps5 console',
|
series: 'sonyps5c',
|
||||||
series: 'sonyps5c',
|
url: 'https://api.bestbuy.com/click/-/6426149/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6426149/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430161/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430161/cart',
|
model: 'ps5 digital',
|
||||||
model: 'ps5 digital',
|
series: 'sonyps5de',
|
||||||
series: 'sonyps5de',
|
url: 'https://api.bestbuy.com/click/-/6430161/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430161/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
cartUrl: 'https://api.bestbuy.com/click/-/6428324/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6428324/cart',
|
model: 'xbox series x',
|
||||||
model: 'xbox series x',
|
series: 'xboxsx',
|
||||||
series: 'xboxsx',
|
url: 'https://api.bestbuy.com/click/-/6428324/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6428324/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
cartUrl: 'https://api.bestbuy.com/click/-/6430277/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6430277/cart',
|
model: 'xbox series s',
|
||||||
model: 'xbox series s',
|
series: 'xboxss',
|
||||||
series: 'xboxss',
|
url: 'https://api.bestbuy.com/click/-/6430277/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6430277/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6440913/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6440913/cart',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6800xt',
|
||||||
series: 'rx6800xt',
|
url: 'https://api.bestbuy.com/click/-/6440913/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6440913/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6441020/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6441020/cart',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url: 'https://api.bestbuy.com/click/-/6441020/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6441020/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'xfx',
|
||||||
brand: 'xfx',
|
cartUrl: 'https://api.bestbuy.com/click/-/6442077/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6442077/cart',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url: 'https://api.bestbuy.com/click/-/6442077/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6442077/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'xfx',
|
||||||
brand: 'xfx',
|
cartUrl: 'https://api.bestbuy.com/click/-/6441226/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6441226/cart',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6800xt',
|
||||||
series: 'rx6800xt',
|
url: 'https://api.bestbuy.com/click/-/6441226/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6441226/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'xfx',
|
||||||
brand: 'xfx',
|
cartUrl: 'https://api.bestbuy.com/click/-/6442585/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6442585/cart',
|
model: 'merc',
|
||||||
model: 'merc',
|
series: 'rx6800xt',
|
||||||
series: 'rx6800xt',
|
url: 'https://api.bestbuy.com/click/-/6442585/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6442585/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'xfx',
|
||||||
brand: 'xfx',
|
cartUrl: 'https://api.bestbuy.com/click/-/6444358/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6444358/cart',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6900xt',
|
||||||
series: 'rx6900xt',
|
url: 'https://api.bestbuy.com/click/-/6444358/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6444358/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
cartUrl: 'https://api.bestbuy.com/click/-/6444716/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6444716/cart',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6900xt',
|
||||||
series: 'rx6900xt',
|
url: 'https://api.bestbuy.com/click/-/6444716/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6444716/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'xfx',
|
||||||
brand: 'xfx',
|
cartUrl: 'https://api.bestbuy.com/click/-/6445157/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6445157/cart',
|
model: 'merc',
|
||||||
model: 'merc',
|
series: 'rx6900xt',
|
||||||
series: 'rx6900xt',
|
url: 'https://api.bestbuy.com/click/-/6445157/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6445157/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'corsair',
|
||||||
brand: 'corsair',
|
cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6351845/cart',
|
model: '750 platinum',
|
||||||
model: '750 platinum',
|
series: 'sf',
|
||||||
series: 'sf',
|
url: 'https://api.bestbuy.com/click/-/6351845/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6351845/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'corsair',
|
||||||
brand: 'corsair',
|
cartUrl: 'https://api.bestbuy.com/click/-/6351844/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6351844/cart',
|
model: '600 platinum',
|
||||||
model: '600 platinum',
|
series: 'sf',
|
||||||
series: 'sf',
|
url: 'https://api.bestbuy.com/click/-/6351844/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6351844/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'pny',
|
||||||
brand: 'pny',
|
cartUrl: 'https://api.bestbuy.com/click/-/6446660/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6446660/cart',
|
model: 'xlr8 uprising',
|
||||||
model: 'xlr8 uprising',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6446660/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6446660/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6444445/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6444445/cart',
|
model: 'xc gaming',
|
||||||
model: 'xc gaming',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6444445/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6444445/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6444444/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6444444/cart',
|
model: 'ftw3',
|
||||||
model: 'ftw3',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6444444/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6444444/pdp'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'evga',
|
||||||
brand: 'evga',
|
cartUrl: 'https://api.bestbuy.com/click/-/6444449/cart',
|
||||||
cartUrl: 'https://api.bestbuy.com/click/-/6444449/cart',
|
model: 'ftw3',
|
||||||
model: 'ftw3',
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url: 'https://api.bestbuy.com/click/-/6444449/pdp',
|
||||||
url: 'https://api.bestbuy.com/click/-/6444449/pdp'
|
},
|
||||||
}
|
],
|
||||||
],
|
name: 'bestbuy',
|
||||||
name: 'bestbuy'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+85
-87
@@ -2,91 +2,89 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Box: Store = {
|
export const Box: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#divBuyButton',
|
container: '#divBuyButton',
|
||||||
text: ['add to basket']
|
text: ['add to basket'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.p-price',
|
container: '.p-price',
|
||||||
euroFormat: false // Note: Box uses non-euroFromat as price seperator
|
euroFormat: false, // Note: Box uses non-euroFromat as price seperator
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '#divBuyButton',
|
container: '#divBuyButton',
|
||||||
text: ['request stock alert', 'coming soon']
|
text: ['request stock alert', 'coming soon'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.box.co.uk/Gigabyte-GeForce-RTX-2080-Super-8GB-Wind_2724554.html'
|
'https://www.box.co.uk/Gigabyte-GeForce-RTX-2080-Super-8GB-Wind_2724554.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url:
|
url:
|
||||||
'https://www.box.co.uk/CFI-1015A-Sony-Playstation-5-Console_3199689.html'
|
'https://www.box.co.uk/CFI-1015A-Sony-Playstation-5-Console_3199689.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'https://www.box.co.uk/CFI-1015B-Sony-PlayStation-5-Digital-Edition-Conso_3199692.html'
|
'https://www.box.co.uk/CFI-1015B-Sony-PlayStation-5-Digital-Edition-Conso_3199692.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url: 'https://www.box.co.uk/RRT-00007-Xbox-Series-X-Console_3201195.html',
|
||||||
'https://www.box.co.uk/RRT-00007-Xbox-Series-X-Console_3201195.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series s',
|
||||||
model: 'xbox series s',
|
series: 'xboxss',
|
||||||
series: 'xboxss',
|
url: 'https://www.box.co.uk/RRS-00007-Xbox-Series-S-Console_3201197.html',
|
||||||
url:
|
},
|
||||||
'https://www.box.co.uk/RRS-00007-Xbox-Series-S-Console_3201197.html'
|
{
|
||||||
},
|
brand: 'amd',
|
||||||
{
|
model: 'tuf oc',
|
||||||
brand: 'amd',
|
series: 'rx6900xt',
|
||||||
model: 'tuf oc',
|
url:
|
||||||
series: 'rx6900xt',
|
'https://www.box.co.uk/90YV0GE0-M0NM00-ASUS-Radeon-RX-X6900XT-16GB-OC-Gaming-Gr_3561243.html',
|
||||||
url:
|
},
|
||||||
'https://www.box.co.uk/90YV0GE0-M0NM00-ASUS-Radeon-RX-X6900XT-16GB-OC-Gaming-Gr_3561243.html'
|
],
|
||||||
}
|
linksBuilder: {
|
||||||
],
|
builder: getProductLinksBuilder({
|
||||||
linksBuilder: {
|
productsSelector: '.products-right .p-list',
|
||||||
builder: getProductLinksBuilder({
|
sitePrefix: 'https://www.box.co.uk',
|
||||||
productsSelector: '.products-right .p-list',
|
titleSelector: '.p-list-section > h3 > a[href]',
|
||||||
sitePrefix: 'https://www.box.co.uk',
|
}),
|
||||||
titleSelector: '.p-list-section > h3 > a[href]'
|
urls: [
|
||||||
}),
|
{
|
||||||
urls: [
|
series: '3060ti',
|
||||||
{
|
url: 'https://www.box.co.uk/rtx-3060-ti-graphics-cards',
|
||||||
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',
|
||||||
series: '3070',
|
},
|
||||||
url: 'https://www.box.co.uk/rtx-3070-graphics-cards'
|
{
|
||||||
},
|
series: '3080',
|
||||||
{
|
url: 'https://www.box.co.uk/rtx-3080-graphics-cards',
|
||||||
series: '3080',
|
},
|
||||||
url: 'https://www.box.co.uk/rtx-3080-graphics-cards'
|
{
|
||||||
},
|
series: '3090',
|
||||||
{
|
url: 'https://www.box.co.uk/rtx-3090-graphics-cards',
|
||||||
series: '3090',
|
},
|
||||||
url: 'https://www.box.co.uk/rtx-3090-graphics-cards'
|
],
|
||||||
}
|
},
|
||||||
]
|
name: 'box',
|
||||||
},
|
waitUntil: 'domcontentloaded',
|
||||||
name: 'box',
|
|
||||||
waitUntil: 'domcontentloaded'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+167
-167
@@ -1,171 +1,171 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Bpctech: Store = {
|
export const Bpctech: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.productStockStatus',
|
container: '.productStockStatus',
|
||||||
text: ['in stock']
|
text: ['in stock'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'div.price-box.price-final_price > span > span',
|
container: 'div.price-box.price-final_price > span > span',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/tuf-rtx3080-10g-gaming-asus-geforce-rtx-3080-tuf-gaming-10gb-video-card.html'
|
'https://www.bpctech.com.au/tuf-rtx3080-10g-gaming-asus-geforce-rtx-3080-tuf-gaming-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/tuf-rtx3080-o10g-gaming-asus-geforce-rtx-3080-tuf-gaming-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/tuf-rtx3080-o10g-gaming-asus-geforce-rtx-3080-tuf-gaming-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/rog-strix-rtx3080-o10g-gaming-asus-geforce-rtx-3080-rog-strix-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/rog-strix-rtx3080-o10g-gaming-asus-geforce-rtx-3080-rog-strix-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// brand: 'colorful',
|
// brand: 'colorful',
|
||||||
// model: 'igame advanced oc',
|
// model: 'igame advanced oc',
|
||||||
// series: '3080',
|
// series: '3080',
|
||||||
// url: 'https://www.bpctech.com.au/colorful-advancedoc10g-v-colorful-igame-geforce-rtx-3080-advanced-oc-10g-v-video-card.html'
|
// url: 'https://www.bpctech.com.au/colorful-advancedoc10g-v-colorful-igame-geforce-rtx-3080-advanced-oc-10g-v-video-card.html'
|
||||||
// },
|
// },
|
||||||
// {
|
// {
|
||||||
// brand: 'colorful',
|
// brand: 'colorful',
|
||||||
// model: 'igame vulcan oc',
|
// model: 'igame vulcan oc',
|
||||||
// series: '3080',
|
// series: '3080',
|
||||||
// url: 'https://www.bpctech.com.au/colorful-vulcanoc10g-v-colorful-igame-geforce-rtx-3080-vulcan-oc-10g-video-card.html'
|
// url: 'https://www.bpctech.com.au/colorful-vulcanoc10g-v-colorful-igame-geforce-rtx-3080-vulcan-oc-10g-video-card.html'
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/10g-p5-3897-kr-evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-video-card.html'
|
'https://www.bpctech.com.au/10g-p5-3897-kr-evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/10g-p5-3881-kr-evga-geforce-rtx-3080-xc3-black-gaming-10gb-video-card.html'
|
'https://www.bpctech.com.au/10g-p5-3881-kr-evga-geforce-rtx-3080-xc3-black-gaming-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/10g-p5-3885-kr-evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-video-card.html'
|
'https://www.bpctech.com.au/10g-p5-3885-kr-evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'galax',
|
brand: 'galax',
|
||||||
model: 'sg oc',
|
model: 'sg oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/38nwm3md99nn-galax-geforce-rtx-3080-sg-1-click-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/38nwm3md99nn-galax-geforce-rtx-3080-sg-1-click-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/gv-n3080vision-oc-10gd-gigabyte-geforce-rtx-3080-vision-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/gv-n3080vision-oc-10gd-gigabyte-geforce-rtx-3080-vision-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/gv-n3080gaming-oc-10gd-gigabyte-geforce-rtx-3080-gaming-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/gv-n3080gaming-oc-10gd-gigabyte-geforce-rtx-3080-gaming-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/gv-n3080aorus-m-10gd-gigabyte-geforce-rtx-3080-aorus-master-10g-video-card.html'
|
'https://www.bpctech.com.au/gv-n3080aorus-m-10gd-gigabyte-geforce-rtx-3080-aorus-master-10g-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/gv-n3080aorus-x-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-video-card.html'
|
'https://www.bpctech.com.au/gv-n3080aorus-x-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme waterforce',
|
model: 'aorus xtreme waterforce',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/gv-n3080aorusx-w-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-10gb-video-card.html'
|
'https://www.bpctech.com.au/gv-n3080aorusx-w-10gd-gigabyte-aorus-geforce-rtx-3080-xtreme-waterforce-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/gv-n3080eagle-oc-10gd-gigabyte-geforce-rtx-3080-eagle-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/gv-n3080eagle-oc-10gd-gigabyte-geforce-rtx-3080-eagle-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/c30804-106xx-1810va36-inno3d-geforce-rtx-3080-ichill-x4-10gb-video-card.html'
|
'https://www.bpctech.com.au/c30804-106xx-1810va36-inno3d-geforce-rtx-3080-ichill-x4-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/c30803-106xx-1810va37-inno3d-geforce-rtx-3080-ichill-x3-10gb-video-card.html'
|
'https://www.bpctech.com.au/c30803-106xx-1810va37-inno3d-geforce-rtx-3080-ichill-x3-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/n30802-106xx-1810va34-inno3d-geforce-rtx-3080-twin-x2-oc-10gb-video-card.html'
|
'https://www.bpctech.com.au/n30802-106xx-1810va34-inno3d-geforce-rtx-3080-twin-x2-oc-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'leadtek',
|
brand: 'leadtek',
|
||||||
model: 'hurricane',
|
model: 'hurricane',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/rtx3080-hurricane-leadtek-geforce-rtx-3080-hurricane-10gb-video-card.html'
|
'https://www.bpctech.com.au/rtx3080-hurricane-leadtek-geforce-rtx-3080-hurricane-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/rtx3080-suprim-x-10g-msi-geforce-rtx-3080-suprim-x-10gb-video-card.html'
|
'https://www.bpctech.com.au/rtx3080-suprim-x-10g-msi-geforce-rtx-3080-suprim-x-10gb-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/rtx3080-ventus-3x-10g-oc-msi-rtx-3080-ventus-3x-10g-oc-video-card.html'
|
'https://www.bpctech.com.au/rtx3080-ventus-3x-10g-oc-msi-rtx-3080-ventus-3x-10g-oc-video-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.bpctech.com.au/rtx3080-gaming-x-trio-10g-msi-rtx-3080-gaming-x-trio-10g-video-card.html'
|
'https://www.bpctech.com.au/rtx3080-gaming-x-trio-10g-msi-rtx-3080-gaming-x-trio-10g-video-card.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'bpctech'
|
name: 'bpctech',
|
||||||
};
|
};
|
||||||
|
|||||||
+39
-39
@@ -1,43 +1,43 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const BpmPower: Store = {
|
export const BpmPower: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.dispoSiProd >span',
|
container: '.dispoSiProd >span',
|
||||||
text: ['Disponibile']
|
text: ['Disponibile'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'p.prezzoScheda:nth-child(1)',
|
container: 'p.prezzoScheda:nth-child(1)',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.dispoSiProd >span',
|
container: '.dispoSiProd >span',
|
||||||
text: ['Esaurito']
|
text: ['Esaurito'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.bpm-power.com/it/online/audio/auricolari-audio/apple-airpods-2-2019-b1492931'
|
'https://www.bpm-power.com/it/online/audio/auricolari-audio/apple-airpods-2-2019-b1492931',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.bpm-power.com/it/online/componenti-pc/schede-video/nvidia-msi-rtx-3070-b1710142'
|
'https://www.bpm-power.com/it/online/componenti-pc/schede-video/nvidia-msi-rtx-3070-b1710142',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.bpm-power.com/it/online/componenti-pc/processori/cpu-amd-ryzen-7-b1710075'
|
'https://www.bpm-power.com/it/online/componenti-pc/processori/cpu-amd-ryzen-7-b1710075',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'bpm-power'
|
name: 'bpm-power',
|
||||||
};
|
};
|
||||||
|
|||||||
+596
-596
File diff suppressed because it is too large
Load Diff
+922
-922
File diff suppressed because it is too large
Load Diff
+100
-100
@@ -2,104 +2,104 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Ccl: Store = {
|
export const Ccl: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#pnlAddToBasket',
|
container: '#pnlAddToBasket',
|
||||||
text: ['add to basket']
|
text: ['add to basket'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#pnlPriceText > p',
|
container: '#pnlPriceText > p',
|
||||||
euroFormat: false // Note: CCL uses non-euroFromat as price seperator
|
euroFormat: false, // Note: CCL uses non-euroFromat as price seperator
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '#pnlSoldOut',
|
container: '#pnlSoldOut',
|
||||||
text: ['sold out', 'coming soon']
|
text: ['sold out', 'coming soon'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/product/296443/RTX-2060-SUPER-VENTUS-GP-OC/Graphics-Cards/MSI-GeForce-RTX-2060-SUPER-VENTUS-GP-OC-8GB-Overclocked-Graphics-Card/VGA5671/'
|
'https://www.cclonline.com/product/296443/RTX-2060-SUPER-VENTUS-GP-OC/Graphics-Cards/MSI-GeForce-RTX-2060-SUPER-VENTUS-GP-OC-8GB-Overclocked-Graphics-Card/VGA5671/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/product/331765/100-100000065BOX/CPU-Processors/AMD-Ryzen-5-5600X-3-7GHz-Hexa-Core-Processor-with-6-Cores-12-Threads-65W-TDP-35MB-Cache-4-6GHz-Turbo-Wraith-Stealth-Cooler/CPU0679/'
|
'https://www.cclonline.com/product/331765/100-100000065BOX/CPU-Processors/AMD-Ryzen-5-5600X-3-7GHz-Hexa-Core-Processor-with-6-Cores-12-Threads-65W-TDP-35MB-Cache-4-6GHz-Turbo-Wraith-Stealth-Cooler/CPU0679/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/product/331766/100-100000063WOF/CPU-Processors/AMD-Ryzen-7-5800X-3-8GHz-Octa-Core-Processor-with-8-Cores-16-Threads-105W-TDP-36MB-Cache-4-7GHz-Turbo-No-Cooler/CPU0680/'
|
'https://www.cclonline.com/product/331766/100-100000063WOF/CPU-Processors/AMD-Ryzen-7-5800X-3-8GHz-Octa-Core-Processor-with-8-Cores-16-Threads-105W-TDP-36MB-Cache-4-7GHz-Turbo-No-Cooler/CPU0680/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/product/331767/100-100000061WOF/CPU-Processors/AMD-Ryzen-9-5900X-3-7GHz-Dodeca-Core-Processor-with-12-Cores-24-Threads-105W-TDP-70MB-Cache-4-8GHz-Turbo-No-Cooler/CPU0681/'
|
'https://www.cclonline.com/product/331767/100-100000061WOF/CPU-Processors/AMD-Ryzen-9-5900X-3-7GHz-Dodeca-Core-Processor-with-12-Cores-24-Threads-105W-TDP-70MB-Cache-4-8GHz-Turbo-No-Cooler/CPU0681/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/product/331768/100-100000059WOF/CPU-Processors/AMD-Ryzen-9-5950X-3-4GHz-Hexadeca-Core-Processor-with-16-Cores-32-Threads-105W-TDP-72MB-Cache-4-9GHz-Turbo-No-Cooler/CPU0682/'
|
'https://www.cclonline.com/product/331768/100-100000059WOF/CPU-Processors/AMD-Ryzen-9-5950X-3-4GHz-Hexadeca-Core-Processor-with-16-Cores-32-Threads-105W-TDP-72MB-Cache-4-9GHz-Turbo-No-Cooler/CPU0682/',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
linksBuilder: {
|
linksBuilder: {
|
||||||
builder: getProductLinksBuilder({
|
builder: getProductLinksBuilder({
|
||||||
productsSelector: '.productListingContainerOuter .productList',
|
productsSelector: '.productListingContainerOuter .productList',
|
||||||
sitePrefix: 'https://www.cclonline.com',
|
sitePrefix: 'https://www.cclonline.com',
|
||||||
titleAttribute: 'title',
|
titleAttribute: 'title',
|
||||||
titleSelector: '.productList_Detail a[title]'
|
titleSelector: '.productList_Detail a[title]',
|
||||||
}),
|
}),
|
||||||
urls: [
|
urls: [
|
||||||
{
|
{
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3060-Ti-Graphics-Cards/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3070-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3070-Graphics-Cards/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3080-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3080-Graphics-Cards/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3090-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/GeForce-RTX-3090-Graphics-Cards/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-Graphics-Cards/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/AMD-Radeon-RX-6800-XT-Graphics-Cards/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url:
|
url:
|
||||||
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/attributeslist/1268064/'
|
'https://www.cclonline.com/category/430/PC-Components/Graphics-Cards/attributeslist/1268064/',
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
name: 'ccl',
|
name: 'ccl',
|
||||||
waitUntil: 'domcontentloaded'
|
waitUntil: 'domcontentloaded',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,88 +1,86 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Centrecom: Store = {
|
export const Centrecom: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container:
|
container: '.prod_stores_stock > li:nth-child(1) > span:nth-child(2)',
|
||||||
'.prod_stores_stock > li:nth-child(1) > span:nth-child(2)',
|
text: ['In Stock'],
|
||||||
text: ['In Stock']
|
},
|
||||||
},
|
maxPrice: {
|
||||||
maxPrice: {
|
container: 'div.prod_price_current.product-price > span',
|
||||||
container: 'div.prod_price_current.product-price > span',
|
euroFormat: false,
|
||||||
euroFormat: false
|
},
|
||||||
},
|
outOfStock: {
|
||||||
outOfStock: {
|
container: '.prod_stores_stock > li:nth-child(1) > span:nth-child(2)',
|
||||||
container:
|
text: ['Sold Out'],
|
||||||
'.prod_stores_stock > li:nth-child(1) > span:nth-child(2)',
|
},
|
||||||
text: ['Sold Out']
|
},
|
||||||
}
|
links: [
|
||||||
},
|
{
|
||||||
links: [
|
brand: 'asus',
|
||||||
{
|
model: 'tuf oc',
|
||||||
brand: 'asus',
|
series: '3080',
|
||||||
model: 'tuf oc',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/asus-geforce-rtx-3080-tuf-oc-10gb-gaming-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/asus-geforce-rtx-3080-tuf-oc-10gb-gaming-graphics-card'
|
{
|
||||||
},
|
brand: 'galax',
|
||||||
{
|
model: 'sg oc',
|
||||||
brand: 'galax',
|
series: '3080',
|
||||||
model: 'sg oc',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/galax-geforce-rtx-3080-sg-1-click-oc-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/galax-geforce-rtx-3080-sg-1-click-oc-graphics-card'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
model: 'aorus master',
|
||||||
brand: 'gigabyte',
|
series: '3080',
|
||||||
model: 'aorus master',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/gigabyte-aorus-geforce-rtx-3080-master-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/gigabyte-aorus-geforce-rtx-3080-master-graphics-card'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
model: 'aorus xtreme',
|
||||||
brand: 'gigabyte',
|
series: '3080',
|
||||||
model: 'aorus xtreme',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/gigabyte-geforce-rtx-3080-aorus-extreme-10gb-gddr6x-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/gigabyte-geforce-rtx-3080-aorus-extreme-10gb-gddr6x-graphics-card'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
model: 'eagle oc',
|
||||||
brand: 'gigabyte',
|
series: '3080',
|
||||||
model: 'eagle oc',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/gigabyte-geforce-rtx-3080-eagle-oc-10g-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/gigabyte-geforce-rtx-3080-eagle-oc-10g-graphics-card'
|
{
|
||||||
},
|
brand: 'gigabyte',
|
||||||
{
|
model: 'gaming oc',
|
||||||
brand: 'gigabyte',
|
series: '3080',
|
||||||
model: 'gaming oc',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/gigabyte-geforce-rtx-3080-gaming-oc-10g-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/gigabyte-geforce-rtx-3080-gaming-oc-10g-graphics-card'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
model: 'gaming x trio',
|
||||||
brand: 'msi',
|
series: '3080',
|
||||||
model: 'gaming x trio',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/msi-geforce-rtx-3080-gaming-x-trio-10g-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/msi-geforce-rtx-3080-gaming-x-trio-10g-graphics-card'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
model: 'suprim x',
|
||||||
brand: 'msi',
|
series: '3080',
|
||||||
model: 'suprim x',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/msi-geforce-rtx-3080-suprim-x-10g-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/msi-geforce-rtx-3080-suprim-x-10g-graphics-card'
|
{
|
||||||
},
|
brand: 'msi',
|
||||||
{
|
model: 'ventus 3x oc',
|
||||||
brand: 'msi',
|
series: '3080',
|
||||||
model: 'ventus 3x oc',
|
url:
|
||||||
series: '3080',
|
'https://www.centrecom.com.au/msi-geforce-rtx-3080-ventus-3x-oc-10gb-graphics-card',
|
||||||
url:
|
},
|
||||||
'https://www.centrecom.com.au/msi-geforce-rtx-3080-ventus-3x-oc-10gb-graphics-card'
|
],
|
||||||
}
|
name: 'centrecom',
|
||||||
],
|
|
||||||
name: 'centrecom'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+37
-37
@@ -1,41 +1,41 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Comet: Store = {
|
export const Comet: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.caption',
|
container: '.caption',
|
||||||
text: ['Aggiungi al carrello']
|
text: ['Aggiungi al carrello'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
cartUrl: 'https://www.comet.it/cart/insert/PSX01802A/online',
|
cartUrl: 'https://www.comet.it/cart/insert/PSX01802A/online',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.comet.it/ps5/sony-playstation-5'
|
url: 'https://www.comet.it/ps5/sony-playstation-5',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.comet.it/ps5/sony-playstation-5-digital-edition'
|
url: 'https://www.comet.it/ps5/sony-playstation-5-digital-edition',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl: 'https://www.comet.it/cart/insert/MIS01077A/online',
|
cartUrl: 'https://www.comet.it/cart/insert/MIS01077A/online',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url: 'https://www.comet.it/xbox-serie-x/xbox-series-x'
|
url: 'https://www.comet.it/xbox-serie-x/xbox-series-x',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
cartUrl: 'https://www.comet.it/cart/insert/MIS010761/online',
|
cartUrl: 'https://www.comet.it/cart/insert/MIS010761/online',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url: 'https://www.comet.it/xbox-serie-x/xbox-series-s'
|
url: 'https://www.comet.it/xbox-serie-x/xbox-series-s',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'comet'
|
name: 'comet',
|
||||||
};
|
};
|
||||||
|
|||||||
+294
-294
@@ -1,298 +1,298 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const ComputerAlliance: Store = {
|
export const ComputerAlliance: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container:
|
container:
|
||||||
'#main > div.col-md-12 > div:nth-child(1) > div.col-sm-7.product-information > div:nth-child(5) > div > ul > li:nth-child(1) > a',
|
'#main > div.col-md-12 > div:nth-child(1) > div.col-sm-7.product-information > div:nth-child(5) > div > ul > li:nth-child(1) > a',
|
||||||
text: ['In Stock']
|
text: ['In Stock'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: 'span.price',
|
container: 'span.price',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container:
|
container:
|
||||||
'#main > div.col-md-12 > div:nth-child(1) > div.col-sm-7.product-information > div:nth-child(5) > div > ul > li:nth-child(1) > a',
|
'#main > div.col-md-12 > div:nth-child(1) > div.col-sm-7.product-information > div:nth-child(5) > div > ul > li:nth-child(1) > a',
|
||||||
text: ['Out of Stock']
|
text: ['Out of Stock'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rtx3080-10gb-tuf-gaming-pcie-video-card-tuf-rtx3080-10g-gaming'
|
'https://www.computeralliance.com.au/asus-rtx3080-10gb-tuf-gaming-pcie-video-card-tuf-rtx3080-10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rtx3080-10gb-tuf-oc-gaming-pcie-video-card-tuf-rtx3080-o10g-gaming'
|
'https://www.computeralliance.com.au/asus-rtx3080-10gb-tuf-oc-gaming-pcie-video-card-tuf-rtx3080-o10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rtx3080-10gb-rog-strix-oc-gaming-pcie-video-card-rog-strix-rtx3080-o10g-gaming'
|
'https://www.computeralliance.com.au/asus-rtx3080-10gb-rog-strix-oc-gaming-pcie-video-card-rog-strix-rtx3080-o10g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/evga-rtx3080-10gb-ftw3-ultra-gaming-pcie-video-card-10g-p5-3897-kr'
|
'https://www.computeralliance.com.au/evga-rtx3080-10gb-ftw3-ultra-gaming-pcie-video-card-10g-p5-3897-kr',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/evga-rtx3080-10gb-xc3-ultra-gaming-pcie-video-card-10g-p5-3885-kr'
|
'https://www.computeralliance.com.au/evga-rtx3080-10gb-xc3-ultra-gaming-pcie-video-card-10g-p5-3885-kr',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'galax',
|
brand: 'galax',
|
||||||
model: 'sg oc',
|
model: 'sg oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/galax-rtx3080-10gb-sg-1-click-oc-pcie-video-card-38nwm3md99nn'
|
'https://www.computeralliance.com.au/galax-rtx3080-10gb-sg-1-click-oc-pcie-video-card-38nwm3md99nn',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-aorus-master-pcie-video-card-gv-n3080aorus-m-10gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-aorus-master-pcie-video-card-gv-n3080aorus-m-10gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-aorus-xtreme-pcie-video-card-gv-n3080aorus-x-10gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-aorus-xtreme-pcie-video-card-gv-n3080aorus-x-10gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-eagle-oc-pcie-video-card-gv-n3080eagle-oc-10gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-eagle-oc-pcie-video-card-gv-n3080eagle-oc-10gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-gaming-oc-pcie-video-card-gv-n3080gaming-oc-10gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-gaming-oc-pcie-video-card-gv-n3080gaming-oc-10gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-vision-oc-pcie-video-card-gv-n3080vision-oc-10gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3080-10gb-vision-oc-pcie-video-card-gv-n3080vision-oc-10gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/inno3d-geforce-rtx-3080-ichill-x4-10gb-video-card-c30804-106xx-1810va36'
|
'https://www.computeralliance.com.au/inno3d-geforce-rtx-3080-ichill-x4-10gb-video-card-c30804-106xx-1810va36',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rtx3080-10gb-gaming-x-trio-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rtx3080-10gb-gaming-x-trio-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rtx3080-10gb-suprim-x-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rtx3080-10gb-suprim-x-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rtx3080-10gb-ventus-3x-oc-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rtx3080-10gb-ventus-3x-oc-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rtx3090-24gb-tuf-gaming-pcie-video-card-tuf-rtx3090-24g-gaming'
|
'https://www.computeralliance.com.au/asus-rtx3090-24gb-tuf-gaming-pcie-video-card-tuf-rtx3090-24g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rtx3090-24gb-tuf-gaming-pcie-oc-video-card-tuf-rtx3090-o24g-gaming'
|
'https://www.computeralliance.com.au/asus-rtx3090-24gb-tuf-gaming-pcie-oc-video-card-tuf-rtx3090-o24g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rtx3090-24gb-rog-strix-oc-pcie-video-card-rog-strix-rtx3090-o24g-gaming'
|
'https://www.computeralliance.com.au/asus-rtx3090-24gb-rog-strix-oc-pcie-video-card-rog-strix-rtx3090-o24g-gaming',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'galax',
|
brand: 'galax',
|
||||||
model: 'sg oc',
|
model: 'sg oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/galax-rtx3090-24gb-sg-1-click-oc-pcie-video-card-39nsm5md1gna'
|
'https://www.computeralliance.com.au/galax-rtx3090-24gb-sg-1-click-oc-pcie-video-card-39nsm5md1gna',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-aorus-master-pcie-video-card-gv-n3090aorus-m-24gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-aorus-master-pcie-video-card-gv-n3090aorus-m-24gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-aorus-xtreme-pcie-video-card-gv-n3090aorus-x-24gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-aorus-xtreme-pcie-video-card-gv-n3090aorus-x-24gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-eagle-oc-pcie-video-card-gv-n3090eagle-oc-24gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-eagle-oc-pcie-video-card-gv-n3090eagle-oc-24gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-gaming-oc-pcie-video-card-gv-n3090gaming-oc-24gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-gaming-oc-pcie-video-card-gv-n3090gaming-oc-24gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-vision-oc-pcie-video-card-gv-n3090vision-oc-24gd'
|
'https://www.computeralliance.com.au/gigabyte-rtx3090-24gb-vision-oc-pcie-video-card-gv-n3090vision-oc-24gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/inno3d-geforce-rtx-3090-ichill-x4-24gb-video-card-c30904-246xx-1880va36'
|
'https://www.computeralliance.com.au/inno3d-geforce-rtx-3090-ichill-x4-24gb-video-card-c30904-246xx-1880va36',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rtx3090-24gb-ventus-3x-oc-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rtx3090-24gb-ventus-3x-oc-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rtx3090-24gb-gaming-x-trio-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rtx3090-24gb-gaming-x-trio-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rtx3090-24gb-suprim-x-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rtx3090-24gb-suprim-x-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asrock',
|
brand: 'asrock',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asrock-rx6800-16gb-pcie-video-card'
|
'https://www.computeralliance.com.au/asrock-rx6800-16gb-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix lc',
|
model: 'strix lc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rx6800xt-16gb-rog-strix-liquid-cooled-oc-gaming-pcie-video-card'
|
'https://www.computeralliance.com.au/asus-rx6800xt-16gb-rog-strix-liquid-cooled-oc-gaming-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rx6800-16gb-gaming-oc-pcie-video-card-gv-r68gaming-oc-16gd'
|
'https://www.computeralliance.com.au/gigabyte-rx6800-16gb-gaming-oc-pcie-video-card-gv-r68gaming-oc-16gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/gigabyte-rx6800xt-16gb-gaming-oc-pcie-video-card-gv-r68xtgaming-oc-16gd'
|
'https://www.computeralliance.com.au/gigabyte-rx6800xt-16gb-gaming-oc-pcie-video-card-gv-r68xtgaming-oc-16gd',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rx6800-16gb-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rx6800-16gb-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/msi-rx6800xt-16gb-gaming-x-trio-pcie-video-card'
|
'https://www.computeralliance.com.au/msi-rx6800xt-16gb-gaming-x-trio-pcie-video-card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/asus-rx6900xt-16gb-pcie-video-card-rx6900xt-16g'
|
'https://www.computeralliance.com.au/asus-rx6900xt-16gb-pcie-video-card-rx6900xt-16g',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/amd-am4-ryzen-9-5950x-16-core-4.9ghz-cpu-no-heatsink-100-100000059wof'
|
'https://www.computeralliance.com.au/amd-am4-ryzen-9-5950x-16-core-4.9ghz-cpu-no-heatsink-100-100000059wof',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/amd-am4-ryzen-9-5900x-12-core-4.8ghz-cpu-no-heatsink-100-100000061wof'
|
'https://www.computeralliance.com.au/amd-am4-ryzen-9-5900x-12-core-4.8ghz-cpu-no-heatsink-100-100000061wof',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/amd-am4-ryzen-7-5800x-8-core-4.7ghz-cpu-(no-heatsink)-100-100000063wof'
|
'https://www.computeralliance.com.au/amd-am4-ryzen-7-5800x-8-core-4.7ghz-cpu-(no-heatsink)-100-100000063wof',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.computeralliance.com.au/amd-am4-ryzen-5-5600x-6-core-4.6ghz-cpu-100-100000065box'
|
'https://www.computeralliance.com.au/amd-am4-ryzen-5-5600x-6-core-4.6ghz-cpu-100-100000065box',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'computeralliance'
|
name: 'computeralliance',
|
||||||
};
|
};
|
||||||
|
|||||||
+777
-781
File diff suppressed because it is too large
Load Diff
+120
-120
@@ -1,124 +1,124 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Coolblue: Store = {
|
export const Coolblue: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.product-order',
|
container: '.product-order',
|
||||||
text: ['bestel snel', 'morgen in huis']
|
text: ['bestel snel', 'morgen in huis'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.js-order-block .sales-price__current',
|
container: '.js-order-block .sales-price__current',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.product-order',
|
container: '.product-order',
|
||||||
text: ['binnenkort leverbaar', 'tijdelijk uitverkocht']
|
text: ['binnenkort leverbaar', 'tijdelijk uitverkocht'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.coolblue.nl/product/826844/'
|
url: 'https://www.coolblue.nl/product/826844/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868737/'
|
url: 'https://www.coolblue.nl/product/868737/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868741/'
|
url: 'https://www.coolblue.nl/product/868741/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868726/'
|
url: 'https://www.coolblue.nl/product/868726/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868736/'
|
url: 'https://www.coolblue.nl/product/868736/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868740/'
|
url: 'https://www.coolblue.nl/product/868740/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868733/'
|
url: 'https://www.coolblue.nl/product/868733/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868731/'
|
url: 'https://www.coolblue.nl/product/868731/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.coolblue.nl/product/868732/'
|
url: 'https://www.coolblue.nl/product/868732/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868738/'
|
url: 'https://www.coolblue.nl/product/868738/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868739/'
|
url: 'https://www.coolblue.nl/product/868739/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868730/'
|
url: 'https://www.coolblue.nl/product/868730/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868727/'
|
url: 'https://www.coolblue.nl/product/868727/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868728/'
|
url: 'https://www.coolblue.nl/product/868728/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868729/'
|
url: 'https://www.coolblue.nl/product/868729/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868734/'
|
url: 'https://www.coolblue.nl/product/868734/',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.coolblue.nl/product/868735/'
|
url: 'https://www.coolblue.nl/product/868735/',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'coolblue'
|
name: 'coolblue',
|
||||||
};
|
};
|
||||||
|
|||||||
+291
-291
@@ -1,295 +1,295 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Coolmod: Store = {
|
export const Coolmod: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.product-availability',
|
container: '.product-availability',
|
||||||
text: ['Envío']
|
text: ['Envío'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.text-price-total',
|
container: '.text-price-total',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.product-availability',
|
container: '.product-availability',
|
||||||
text: ['Sin Stock']
|
text: ['Sin Stock'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/kfa2-geforce-rtx-2060-super-1-click-oc-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/kfa2-geforce-rtx-2060-super-1-click-oc-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-geforce-rtx-3080-eagle-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-geforce-rtx-3080-eagle-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/msi-geforce-rtx-3080-ventus-3x-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/msi-geforce-rtx-3080-ventus-3x-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/asus-geforce-tuf-rtx-3080-gaming-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/asus-geforce-tuf-rtx-3080-gaming-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-geforce-rtx-3080-gaming-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-geforce-rtx-3080-gaming-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/msi-geforce-rtx-3080-gaming-x-trio-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/msi-geforce-rtx-3080-gaming-x-trio-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/asus-geforce-tuf-rtx-3080-oc-gaming-10gb-gddr6x-tarjeta-grfica-precio'
|
'https://www.coolmod.com/asus-geforce-tuf-rtx-3080-oc-gaming-10gb-gddr6x-tarjeta-grfica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-trinity-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-trinity-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-tarjeta-grfica-precio'
|
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-tarjeta-grfica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-trinity-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-trinity-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-geforce-rtx-3080-vision-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-geforce-rtx-3080-vision-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-gaming-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-gaming-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-master-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-master-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/evga-geforce-rtx-3080-ftw3-gaming-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/evga-geforce-rtx-3080-ftw3-gaming-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/pny-geforce-rtx-3080-xlr8-gaming-epic-x-rgb-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/pny-geforce-rtx-3080-xlr8-gaming-epic-x-rgb-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'kfa2',
|
brand: 'kfa2',
|
||||||
model: 'sg oc',
|
model: 'sg oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/kfa2-geforce-rtx-3080-sg-1-click-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/kfa2-geforce-rtx-3080-sg-1-click-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/inno3d-geforce-rtx-3080-ichill-x4-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/inno3d-geforce-rtx-3080-ichill-x4-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/inno3d-geforce-rtx-3080-ichill-x3-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/inno3d-geforce-rtx-3080-ichill-x3-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'twin x2 oc',
|
model: 'twin x2 oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/inno3d-geforce-rtx-3080-twin-x2-oc-10gb-gddr6x-tarjeta-grafica-precio'
|
'https://www.coolmod.com/inno3d-geforce-rtx-3080-twin-x2-oc-10gb-gddr6x-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/amd-ryzen-5-5600x-46ghz-socket-am4-boxed-procesador-precio'
|
'https://www.coolmod.com/amd-ryzen-5-5600x-46ghz-socket-am4-boxed-procesador-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/amd-ryzen-7-5800x-47ghz-socket-am4-boxed-procesador-precio'
|
'https://www.coolmod.com/amd-ryzen-7-5800x-47ghz-socket-am4-boxed-procesador-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/amd-ryzen-9-5900x-48ghz-socket-am4-boxed-procesador-precio'
|
'https://www.coolmod.com/amd-ryzen-9-5900x-48ghz-socket-am4-boxed-procesador-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/amd-ryzen-9-5950x-49ghz-socket-am4-boxed-procesador-precio'
|
'https://www.coolmod.com/amd-ryzen-9-5950x-49ghz-socket-am4-boxed-procesador-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/asus-dual-geforce-rtx-3070-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/asus-dual-geforce-rtx-3070-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/msi-geforce-rtx-3070-gaming-x-trio-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/msi-geforce-rtx-3070-gaming-x-trio-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x',
|
model: 'ventus 2x',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/msi-geforce-rtx-3070-ventus-2x-oc-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/msi-geforce-rtx-3070-ventus-2x-oc-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/evga-geforce-rtx-3070-xc3-black-gaming-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/evga-geforce-rtx-3070-xc3-black-gaming-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3070-gaming-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3070-gaming-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-geforce-rtx-3070-eagle-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-geforce-rtx-3070-eagle-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3070-master-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3070-master-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'pny',
|
brand: 'pny',
|
||||||
model: 'xlr8 revel',
|
model: 'xlr8 revel',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/pny-geforce-rtx-3070-xlr8-gaming-epic-x-rgb-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/pny-geforce-rtx-3070-xlr8-gaming-epic-x-rgb-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3070-twin-edge-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/zotac-gaming-geforce-rtx-3070-twin-edge-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'kfa2',
|
brand: 'kfa2',
|
||||||
model: 'sg oc',
|
model: 'sg oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.coolmod.com/kfa2-geforce-rtx-3070-sg-1-click-oc-8gb-gddr6-tarjeta-grafica-precio'
|
'https://www.coolmod.com/kfa2-geforce-rtx-3070-sg-1-click-oc-8gb-gddr6-tarjeta-grafica-precio',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'coolmod'
|
name: 'coolmod',
|
||||||
};
|
};
|
||||||
|
|||||||
+35
-35
@@ -1,39 +1,39 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Corsair: Store = {
|
export const Corsair: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.add_to_cart_form',
|
container: '.add_to_cart_form',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product-price',
|
container: '.product-price',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020181-NA'
|
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020181-NA',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'corsair',
|
brand: 'corsair',
|
||||||
model: '750 platinum',
|
model: '750 platinum',
|
||||||
series: 'sf',
|
series: 'sf',
|
||||||
url:
|
url:
|
||||||
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020186-NA'
|
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020186-NA',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'corsair',
|
brand: 'corsair',
|
||||||
model: '600 platinum',
|
model: '600 platinum',
|
||||||
series: 'sf',
|
series: 'sf',
|
||||||
url:
|
url:
|
||||||
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020182-NA'
|
'https://www.corsair.com/us/en/Categories/Products/Power-Supply-Units/Power-Supply-Units-Advanced/SF-Series/p/CP-9020182-NA',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'corsair'
|
name: 'corsair',
|
||||||
};
|
};
|
||||||
|
|||||||
+150
-150
@@ -1,154 +1,154 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Cpl: Store = {
|
export const Cpl: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container:
|
container:
|
||||||
'div.product-stock > table > tbody > tr:nth-child(1) > td.stock-value',
|
'div.product-stock > table > tbody > tr:nth-child(1) > td.stock-value',
|
||||||
text: ['In Stock']
|
text: ['In Stock'],
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container:
|
container:
|
||||||
'div.product-stock > table > tbody > tr:nth-child(1) > td.stock-value',
|
'div.product-stock > table > tbody > tr:nth-child(1) > td.stock-value',
|
||||||
text: ['Pre Order']
|
text: ['Pre Order'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/asus-rog-strix-rtx3080-10g-gaming-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/asus-rog-strix-rtx3080-10g-gaming-graphics-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/asus-tuf-rtx3080-10g-gaming-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/asus-tuf-rtx3080-10g-gaming-graphics-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/asus-tuf-rtx3080-o10g-gaming-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/asus-tuf-rtx3080-o10g-gaming-graphics-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-ftw3-gaming-10g-p5-3895-kr-10gb-gddr6x-icx3-technology-argb-led-metal-backplate-hdmi-dpx3.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-ftw3-gaming-10g-p5-3895-kr-10gb-gddr6x-icx3-technology-argb-led-metal-backplate-hdmi-dpx3.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-ftw3-ultra-gaming-10g-p5-3897-kr-10gb-gddr6x-icx3-technology-argb-led-metal-backplate-hdmi-dpx3.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-ftw3-ultra-gaming-10g-p5-3897-kr-10gb-gddr6x-icx3-technology-argb-led-metal-backplate-hdmi-dpx3.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-xc3-black-gaming-10g-p5-3881-kr-10gb-gddr6x-icx3-cooling-argb-led-hdmi-dpx3.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-xc3-black-gaming-10g-p5-3881-kr-10gb-gddr6x-icx3-cooling-argb-led-hdmi-dpx3.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-xc3-gaming-10g-p5-3883-kr-10gb-gddr6x-icx3-cooling-argb-led-metal-backplate-hdmi-dpx3.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-xc3-gaming-10g-p5-3883-kr-10gb-gddr6x-icx3-cooling-argb-led-metal-backplate-hdmi-dpx3.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-xc3-ultra-gaming-10g-p5-3885-kr-10gb-gddr6x-icx3-cooling-argb-led-metal-backplate-hdmi-dpx3.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/evga-geforce-rtx-3080-xc3-ultra-gaming-10g-p5-3885-kr-10gb-gddr6x-icx3-cooling-argb-led-metal-backplate-hdmi-dpx3.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-gv-n3080aorus-m-10gd-aorus-geforce-rtx-3080-master-10gb.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-gv-n3080aorus-m-10gd-aorus-geforce-rtx-3080-master-10gb.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-aorus-geforce-rtx-3080-xtreme-10g.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-aorus-geforce-rtx-3080-xtreme-10g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-geforce-rtx-3080-eagle-oc-10gb-graphics-card-gv-n3080eagle-oc-10gd.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-geforce-rtx-3080-eagle-oc-10gb-graphics-card-gv-n3080eagle-oc-10gd.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-gv-n3080gaming-oc-10gd-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-gv-n3080gaming-oc-10gd-graphics-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-gv-n3080vision-oc-10gd-geforce-rtx-3080-vision-oc-10gb.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/gigabyte-gv-n3080vision-oc-10gd-geforce-rtx-3080-vision-oc-10gb.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/inno3d-c30803-106xx-1810va37-geforce-rtx-3080-ichill-x3-10g.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/inno3d-c30803-106xx-1810va37-geforce-rtx-3080-ichill-x3-10g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x4',
|
model: 'ichill x4',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/inno3d-c30804-106xx-1810va36-geforce-rtx-3080-ichill-x4-10g.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/inno3d-c30804-106xx-1810va36-geforce-rtx-3080-ichill-x4-10g.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'leadtek',
|
brand: 'leadtek',
|
||||||
model: 'hurricane',
|
model: 'hurricane',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/leadtek-12789000110-geforce-rtx-3080-hurricane.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/leadtek-12789000110-geforce-rtx-3080-hurricane.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/msi-rtx-3080-gaming-x-trio-10g-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/msi-rtx-3080-gaming-x-trio-10g-graphics-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/msi-geforce-rtx-3080-suprim-x-10g-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/msi-geforce-rtx-3080-suprim-x-10g-graphics-card.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/msi-rtx-3080-ventus-3x-10g-oc-graphics-card.html'
|
'https://cplonline.com.au/graphics-cards/geforce-rtx-3080/msi-rtx-3080-ventus-3x-10g-oc-graphics-card.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'cpl'
|
name: 'cpl',
|
||||||
};
|
};
|
||||||
|
|||||||
+112
-113
@@ -2,117 +2,116 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Currys: Store = {
|
export const Currys: Store = {
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#product-actions button',
|
container: '#product-actions button',
|
||||||
text: ['add to basket']
|
text: ['add to basket'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container:
|
container: '#product-actions span[class*="ProductPriceBlock__Price"]',
|
||||||
'#product-actions span[class*="ProductPriceBlock__Price"]',
|
euroFormat: false, // Note: Currys uses non-euroFromat as price seperator
|
||||||
euroFormat: false // Note: Currys uses non-euroFromat as price seperator
|
},
|
||||||
},
|
outOfStock: {
|
||||||
outOfStock: {
|
container: '#product-actions .unavailable',
|
||||||
container: '#product-actions .unavailable',
|
text: ['not available for delivery'],
|
||||||
text: ['not available for delivery']
|
},
|
||||||
}
|
},
|
||||||
},
|
links: [
|
||||||
links: [
|
{
|
||||||
{
|
brand: 'test:brand',
|
||||||
brand: 'test:brand',
|
model: 'test:model',
|
||||||
model: 'test:model',
|
series: 'test:series',
|
||||||
series: 'test:series',
|
url:
|
||||||
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',
|
||||||
'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',
|
||||||
brand: 'amd',
|
model: '5600x',
|
||||||
model: '5600x',
|
series: 'ryzen5600',
|
||||||
series: 'ryzen5600',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-5-5600x-processor-10216691-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-5-5600x-processor-10216691-pdt.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5800x',
|
||||||
model: '5800x',
|
series: 'ryzen5800',
|
||||||
series: 'ryzen5800',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-7-5800x-processor-10216690-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-7-5800x-processor-10216690-pdt.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5900x',
|
||||||
model: '5900x',
|
series: 'ryzen5900',
|
||||||
series: 'ryzen5900',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5900x-processor-10216689-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5900x-processor-10216689-pdt.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5950x',
|
||||||
model: '5950x',
|
series: 'ryzen5950',
|
||||||
series: 'ryzen5950',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5950x-processor-10216688-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/computing-accessories/components-upgrades/processors/amd-ryzen-9-5950x-processor-10216688-pdt.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
model: 'ps5 console',
|
||||||
model: 'ps5 console',
|
series: 'sonyps5c',
|
||||||
series: 'sonyps5c',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/sony-playstation-5-825-gb-10203370-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/sony-playstation-5-825-gb-10203370-pdt.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
model: 'ps5 digital',
|
||||||
model: 'ps5 digital',
|
series: 'sonyps5de',
|
||||||
series: 'sonyps5de',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/playstation-5-sony-1714-commercial.html',
|
||||||
'https://www.currys.co.uk/gbuk/playstation-5-sony-1714-commercial.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series x',
|
||||||
model: 'xbox series x',
|
series: 'xboxsx',
|
||||||
series: 'xboxsx',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/microsoft-xbox-series-x-1-tb-10203371-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/microsoft-xbox-series-x-1-tb-10203371-pdt.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series s',
|
||||||
model: 'xbox series s',
|
series: 'xboxss',
|
||||||
series: 'xboxss',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/microsoft-xbox-series-s-512-gb-ssd-10205195-pdt.html',
|
||||||
'https://www.currys.co.uk/gbuk/gaming/console-gaming/consoles/microsoft-xbox-series-s-512-gb-ssd-10205195-pdt.html'
|
},
|
||||||
}
|
],
|
||||||
],
|
linksBuilder: {
|
||||||
linksBuilder: {
|
builder: getProductLinksBuilder({
|
||||||
builder: getProductLinksBuilder({
|
productsSelector: '.resultList .product',
|
||||||
productsSelector: '.resultList .product',
|
sitePrefix: 'https://www.currys.co.uk',
|
||||||
sitePrefix: 'https://www.currys.co.uk',
|
titleSelector: '.productTitle',
|
||||||
titleSelector: '.productTitle',
|
urlSelector: 'a[href]',
|
||||||
urlSelector: 'a[href]'
|
}),
|
||||||
}),
|
urls: [
|
||||||
urls: [
|
{
|
||||||
{
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/rtx-3060-ti/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313952/xx-criteria.html',
|
||||||
'https://www.currys.co.uk/gbuk/rtx-3060-ti/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313952/xx-criteria.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/rtx-3070/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313849/xx-criteria.html',
|
||||||
'https://www.currys.co.uk/gbuk/rtx-3070/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313849/xx-criteria.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/rtx-3080/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313767/xx-criteria.html',
|
||||||
'https://www.currys.co.uk/gbuk/rtx-3080/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313767/xx-criteria.html'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'https://www.currys.co.uk/gbuk/rtx-3090/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313725/xx-criteria.html',
|
||||||
'https://www.currys.co.uk/gbuk/rtx-3090/components-upgrades/graphics-cards/324_3091_30343_xx_ba00013562-bv00313725/xx-criteria.html'
|
},
|
||||||
}
|
],
|
||||||
]
|
},
|
||||||
},
|
name: 'currys',
|
||||||
name: 'currys',
|
waitUntil: 'domcontentloaded',
|
||||||
waitUntil: 'domcontentloaded'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+120
-120
@@ -1,124 +1,124 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Cyberport: Store = {
|
export const Cyberport: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.tooltipAvailabilityParent',
|
container: '.tooltipAvailabilityParent',
|
||||||
text: ['sofort verfügbar']
|
text: ['sofort verfügbar'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#productDetailOverview .price',
|
container: '#productDetailOverview .price',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.tooltipAvailabilityParent',
|
container: '.tooltipAvailabilityParent',
|
||||||
text: ['noch nicht verfügbar']
|
text: ['noch nicht verfügbar'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E12-3KL'
|
url: 'https://www.cyberport.de?DEEP=2E12-3KL',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E07-51S'
|
url: 'https://www.cyberport.de?DEEP=2E07-51S',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E07-51T'
|
url: 'https://www.cyberport.de?DEEP=2E07-51T',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E07-51L'
|
url: 'https://www.cyberport.de?DEEP=2E07-51L',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf oc',
|
model: 'tuf oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E07-51N'
|
url: 'https://www.cyberport.de?DEEP=2E07-51N',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E21-537'
|
url: 'https://www.cyberport.de?DEEP=2E21-537',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E21-52Y'
|
url: 'https://www.cyberport.de?DEEP=2E21-52Y',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.cyberport.de?DEEP=2e21-532'
|
url: 'https://www.cyberport.de?DEEP=2e21-532',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E21-52Z'
|
url: 'https://www.cyberport.de?DEEP=2E21-52Z',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E12-3L6'
|
url: 'https://www.cyberport.de?DEEP=2E12-3L6',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E12-3L7c'
|
url: 'https://www.cyberport.de?DEEP=2E12-3L7c',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity',
|
model: 'trinity',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E13-1H4'
|
url: 'https://www.cyberport.de?DEEP=2E13-1H4',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'trinity oc',
|
model: 'trinity oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.cyberport.de?DEEP=2E13-1H7'
|
url: 'https://www.cyberport.de?DEEP=2E13-1H7',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://www.cyberport.de?DEEP=2001-71p'
|
url: 'https://www.cyberport.de?DEEP=2001-71p',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://www.cyberport.de/?DEEP=2001-71n'
|
url: 'https://www.cyberport.de/?DEEP=2001-71n',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://www.cyberport.de?DEEP=2001-71m'
|
url: 'https://www.cyberport.de?DEEP=2001-71m',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5950x',
|
model: '5950x',
|
||||||
series: 'ryzen5950',
|
series: 'ryzen5950',
|
||||||
url: 'https://www.cyberport.de?DEEP=2001-71l'
|
url: 'https://www.cyberport.de?DEEP=2001-71l',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'cyberport'
|
name: 'cyberport',
|
||||||
};
|
};
|
||||||
|
|||||||
+217
-217
@@ -1,221 +1,221 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Dcomp: Store = {
|
export const Dcomp: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '#cart-info > button.btn.addToCart',
|
container: '#cart-info > button.btn.addToCart',
|
||||||
text: ['Add to', '']
|
text: ['Add to', ''],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#prodprice',
|
container: '#prodprice',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '#cart-info > button.btn.notifyMe',
|
container: '#cart-info > button.btn.notifyMe',
|
||||||
text: ['Notify Me']
|
text: ['Notify Me'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3172'
|
url: 'https://dcomp.com.au/productdetail/3172',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3205'
|
url: 'https://dcomp.com.au/productdetail/3205',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3206'
|
url: 'https://dcomp.com.au/productdetail/3206',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3183'
|
url: 'https://dcomp.com.au/productdetail/3183',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3310'
|
url: 'https://dcomp.com.au/productdetail/3310',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme waterforce',
|
model: 'aorus xtreme waterforce',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3307'
|
url: 'https://dcomp.com.au/productdetail/3307',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme waterforce wb',
|
model: 'aorus xtreme waterforce wb',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3308'
|
url: 'https://dcomp.com.au/productdetail/3308',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3136'
|
url: 'https://dcomp.com.au/productdetail/3136',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3135'
|
url: 'https://dcomp.com.au/productdetail/3135',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3166'
|
url: 'https://dcomp.com.au/productdetail/3166',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3199'
|
url: 'https://dcomp.com.au/productdetail/3199',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3306'
|
url: 'https://dcomp.com.au/productdetail/3306',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://dcomp.com.au/productdetail/3141'
|
url: 'https://dcomp.com.au/productdetail/3141',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3226'
|
url: 'https://dcomp.com.au/productdetail/3226',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix oc',
|
model: 'strix oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3281'
|
url: 'https://dcomp.com.au/productdetail/3281',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus master',
|
model: 'aorus master',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3309'
|
url: 'https://dcomp.com.au/productdetail/3309',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme',
|
model: 'aorus xtreme',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3263'
|
url: 'https://dcomp.com.au/productdetail/3263',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme waterforce',
|
model: 'aorus xtreme waterforce',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3388'
|
url: 'https://dcomp.com.au/productdetail/3388',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus xtreme waterforce wb',
|
model: 'aorus xtreme waterforce wb',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3417'
|
url: 'https://dcomp.com.au/productdetail/3417',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3234'
|
url: 'https://dcomp.com.au/productdetail/3234',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3158'
|
url: 'https://dcomp.com.au/productdetail/3158',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'vision oc',
|
model: 'vision oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3235'
|
url: 'https://dcomp.com.au/productdetail/3235',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3168'
|
url: 'https://dcomp.com.au/productdetail/3168',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3167'
|
url: 'https://dcomp.com.au/productdetail/3167',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://dcomp.com.au/productdetail/3300'
|
url: 'https://dcomp.com.au/productdetail/3300',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://dcomp.com.au/productdetail/3358'
|
url: 'https://dcomp.com.au/productdetail/3358',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'amd reference',
|
model: 'amd reference',
|
||||||
series: 'rx6800',
|
series: 'rx6800',
|
||||||
url: 'https://dcomp.com.au/productdetail/3386'
|
url: 'https://dcomp.com.au/productdetail/3386',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://dcomp.com.au/productdetail/3421'
|
url: 'https://dcomp.com.au/productdetail/3421',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: 'rx6800xt',
|
series: 'rx6800xt',
|
||||||
url: 'https://dcomp.com.au/productdetail/3387'
|
url: 'https://dcomp.com.au/productdetail/3387',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'gaming oc',
|
model: 'gaming oc',
|
||||||
series: 'rx6900xt',
|
series: 'rx6900xt',
|
||||||
url: 'https://dcomp.com.au/productdetail/3422'
|
url: 'https://dcomp.com.au/productdetail/3422',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5900x',
|
model: '5900x',
|
||||||
series: 'ryzen5900',
|
series: 'ryzen5900',
|
||||||
url: 'https://dcomp.com.au/productdetail/3270'
|
url: 'https://dcomp.com.au/productdetail/3270',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5800x',
|
model: '5800x',
|
||||||
series: 'ryzen5800',
|
series: 'ryzen5800',
|
||||||
url: 'https://dcomp.com.au/productdetail/3289'
|
url: 'https://dcomp.com.au/productdetail/3289',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'amd',
|
brand: 'amd',
|
||||||
model: '5600x',
|
model: '5600x',
|
||||||
series: 'ryzen5600',
|
series: 'ryzen5600',
|
||||||
url: 'https://dcomp.com.au/productdetail/3265'
|
url: 'https://dcomp.com.au/productdetail/3265',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'dcomp'
|
name: 'dcomp',
|
||||||
};
|
};
|
||||||
|
|||||||
+269
-270
@@ -1,274 +1,273 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Drako: Store = {
|
export const Drako: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: [
|
inStock: [
|
||||||
{
|
{
|
||||||
container:
|
container: '#bottom_left_panel > div:nth-child(9) > div:nth-child(2)',
|
||||||
'#bottom_left_panel > div:nth-child(9) > div:nth-child(2)',
|
text: ['ordinabile'],
|
||||||
text: ['ordinabile']
|
},
|
||||||
}
|
],
|
||||||
],
|
maxPrice: {
|
||||||
maxPrice: {
|
container: '.price',
|
||||||
container: '.price',
|
euroFormat: true,
|
||||||
euroFormat: true
|
},
|
||||||
}
|
},
|
||||||
},
|
links: [
|
||||||
links: [
|
{
|
||||||
{
|
brand: 'test:brand',
|
||||||
brand: 'test:brand',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=22674&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=22674&action=add_product',
|
model: 'test:model',
|
||||||
model: 'test:model',
|
series: 'test:series',
|
||||||
series: 'test:series',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=22674',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=22674'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'kfa2',
|
||||||
brand: 'kfa2',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24303&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24303&action=add_product',
|
model: 'sg',
|
||||||
model: 'sg',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24303',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24303'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24286&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24286&action=add_product',
|
model: 'gaming oc',
|
||||||
model: 'gaming oc',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24286',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24286'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24722&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24722&action=add_product',
|
model: 'strix oc',
|
||||||
model: 'strix oc',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24722',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24722'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24288&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24288&action=add_product',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24288',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24288'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24291&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24291&action=add_product',
|
model: 'tuf oc',
|
||||||
model: 'tuf oc',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24291',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24291'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24680&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24680&action=add_product',
|
model: 'ekwb',
|
||||||
model: 'ekwb',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24680',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24680'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24290&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24290&action=add_product',
|
model: 'tuf',
|
||||||
model: 'tuf',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24290',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24290'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24666&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24666&action=add_product',
|
model: 'ekwb',
|
||||||
model: 'ekwb',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24666',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24666'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24289&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24289&action=add_product',
|
model: 'strix oc',
|
||||||
model: 'strix oc',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24289',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24289'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24723&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24723&action=add_product',
|
model: 'strix white',
|
||||||
model: 'strix white',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24723',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24723'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24287&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24287&action=add_product',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24287',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24287'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24293&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24293&action=add_product',
|
model: 'tuf oc',
|
||||||
model: 'tuf oc',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24293',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24293'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24292&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24292&action=add_product',
|
model: 'tuf',
|
||||||
model: 'tuf',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24292',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24292'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24420&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24420&action=add_product',
|
model: 'dual',
|
||||||
model: 'dual',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24420',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24420'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24422&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24422&action=add_product',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24422',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24422'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24721&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24721&action=add_product',
|
model: 'tuf',
|
||||||
model: 'tuf',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24721',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24721'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24421&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24421&action=add_product',
|
model: 'tuf oc',
|
||||||
model: 'tuf oc',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24421',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24421'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24426&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24426&action=add_product',
|
model: 'aorus master',
|
||||||
model: 'aorus master',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24426',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24426'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24423&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24423&action=add_product',
|
model: 'eagle oc',
|
||||||
model: 'eagle oc',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24423',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24423'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24425&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24425&action=add_product',
|
model: 'gaming oc',
|
||||||
model: 'gaming oc',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24425',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24425'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24424&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24424&action=add_product',
|
model: 'eagle',
|
||||||
model: 'eagle',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24424',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24424'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'kfa2',
|
||||||
brand: 'kfa2',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24292&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24292&action=add_product',
|
model: 'sg',
|
||||||
model: 'sg',
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24475',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24475'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24604&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24604&action=add_product',
|
model: 'strix',
|
||||||
model: 'strix',
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24604',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24604'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24605&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24605&action=add_product',
|
model: 'tuf',
|
||||||
model: 'tuf',
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24605',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24605'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'asus',
|
||||||
brand: 'asus',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606&action=add_product',
|
model: 'tuf oc',
|
||||||
model: 'tuf oc',
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'gigabyte',
|
||||||
brand: 'gigabyte',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606&action=add_product',
|
model: 'amd reference',
|
||||||
model: 'amd reference',
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24606'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
cartUrl:
|
||||||
cartUrl:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24456&action=add_product',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24456&action=add_product',
|
model: '5600x',
|
||||||
model: '5600x',
|
series: 'ryzen5600',
|
||||||
series: 'ryzen5600',
|
url:
|
||||||
url:
|
'http://www.drako.it/drako_catalog/product_info.php?products_id=24456',
|
||||||
'http://www.drako.it/drako_catalog/product_info.php?products_id=24456'
|
},
|
||||||
}
|
],
|
||||||
],
|
name: 'drako',
|
||||||
name: 'drako',
|
successStatusCodes: [[0, 399], 404],
|
||||||
successStatusCodes: [[0, 399], 404]
|
|
||||||
};
|
};
|
||||||
|
|||||||
+45
-46
@@ -1,50 +1,49 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const EbGames: Store = {
|
export const EbGames: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.singleVariantText .prodPriceCont'
|
container: '.singleVariantText .prodPriceCont',
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '#btnAddToCart[style*="display:none;"] ',
|
container: '#btnAddToCart[style*="display:none;"] ',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url: 'https://www.ebgames.ca/Switch/Games/727918/mario-kart-8-deluxe',
|
||||||
'https://www.ebgames.ca/Switch/Games/727918/mario-kart-8-deluxe'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
model: 'ps5 console',
|
||||||
model: 'ps5 console',
|
series: 'sonyps5c',
|
||||||
series: 'sonyps5c',
|
url: 'https://www.ebgames.ca/PS5/Games/877522',
|
||||||
url: 'https://www.ebgames.ca/PS5/Games/877522'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
model: 'ps5 digital',
|
||||||
model: 'ps5 digital',
|
series: 'sonyps5de',
|
||||||
series: 'sonyps5de',
|
url: 'https://www.ebgames.ca/PS5/Games/877523',
|
||||||
url: 'https://www.ebgames.ca/PS5/Games/877523'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series x',
|
||||||
model: 'xbox series x',
|
series: 'xboxsx',
|
||||||
series: 'xboxsx',
|
url:
|
||||||
url:
|
'https://www.ebgames.ca/Xbox%20Series%20X/Games/877779/xbox-series-x',
|
||||||
'https://www.ebgames.ca/Xbox%20Series%20X/Games/877779/xbox-series-x'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series s',
|
||||||
model: 'xbox series s',
|
series: 'xboxss',
|
||||||
series: 'xboxss',
|
url:
|
||||||
url:
|
'https://www.ebgames.ca/Xbox%20Series%20X/Games/877780/xbox-series-s',
|
||||||
'https://www.ebgames.ca/Xbox%20Series%20X/Games/877780/xbox-series-s'
|
},
|
||||||
}
|
],
|
||||||
],
|
name: 'ebgames',
|
||||||
name: 'ebgames'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+126
-127
@@ -2,131 +2,130 @@ import {Store} from './store';
|
|||||||
import {getProductLinksBuilder} from './helpers/card';
|
import {getProductLinksBuilder} from './helpers/card';
|
||||||
|
|
||||||
export const Ebuyer: Store = {
|
export const Ebuyer: Store = {
|
||||||
currency: '£',
|
currency: '£',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.purchase-info__cta',
|
container: '.purchase-info__cta',
|
||||||
text: ['add to basket', 'pre-order']
|
text: ['add to basket', 'pre-order'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.purchase-info__price .price',
|
container: '.purchase-info__price .price',
|
||||||
euroFormat: false // Note: ebuyer uses non-euroFromat as price seperator
|
euroFormat: false, // Note: ebuyer uses non-euroFromat as price seperator
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.purchase-info',
|
container: '.purchase-info',
|
||||||
text: ['coming soon']
|
text: ['coming soon'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.ebuyer.com/874209-gigabyte-geforce-rtx-2060-windforce-6gb-oc-graphics-card-gv-n2060wf2oc-6gd-v2'
|
'https://www.ebuyer.com/874209-gigabyte-geforce-rtx-2060-windforce-6gb-oc-graphics-card-gv-n2060wf2oc-6gd-v2',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url:
|
url:
|
||||||
'https://www.ebuyer.com/1133940-sony-playstation-5-console-cfi-1016a'
|
'https://www.ebuyer.com/1133940-sony-playstation-5-console-cfi-1016a',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'https://www.ebuyer.com/1133942-sony-playstation-5-digital-edition-cfi-1016b-'
|
'https://www.ebuyer.com/1133942-sony-playstation-5-digital-edition-cfi-1016b-',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url: 'https://www.ebuyer.com/1133948-xbox-series-x-console-rrt-00007',
|
||||||
'https://www.ebuyer.com/1133948-xbox-series-x-console-rrt-00007'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series s',
|
||||||
model: 'xbox series s',
|
series: 'xboxss',
|
||||||
series: 'xboxss',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/1133947-xbox-series-s-all-digital-console-rrs-00007',
|
||||||
'https://www.ebuyer.com/1133947-xbox-series-s-all-digital-console-rrs-00007'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5600x',
|
||||||
model: '5600x',
|
series: 'ryzen5600',
|
||||||
series: 'ryzen5600',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/1126988-amd-ryzen-5-5600x-am4-processor-100-100000065box',
|
||||||
'https://www.ebuyer.com/1126988-amd-ryzen-5-5600x-am4-processor-100-100000065box'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5800x',
|
||||||
model: '5800x',
|
series: 'ryzen5800',
|
||||||
series: 'ryzen5800',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/1126987-amd-ryzen-7-5800x-am4-processor-100-100000063wof',
|
||||||
'https://www.ebuyer.com/1126987-amd-ryzen-7-5800x-am4-processor-100-100000063wof'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5900x',
|
||||||
model: '5900x',
|
series: 'ryzen5900',
|
||||||
series: 'ryzen5900',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/1126986-amd-ryzen-9-5900x-am4-processor-100-100000061wof',
|
||||||
'https://www.ebuyer.com/1126986-amd-ryzen-9-5900x-am4-processor-100-100000061wof'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5950x',
|
||||||
model: '5950x',
|
series: 'ryzen5950',
|
||||||
series: 'ryzen5950',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/1126985-amd-ryzen-9-5950x-am4-processor-100-100000059wof',
|
||||||
'https://www.ebuyer.com/1126985-amd-ryzen-9-5950x-am4-processor-100-100000059wof'
|
},
|
||||||
}
|
],
|
||||||
],
|
linksBuilder: {
|
||||||
linksBuilder: {
|
builder: getProductLinksBuilder({
|
||||||
builder: getProductLinksBuilder({
|
productsSelector: '#list-view .listing-product',
|
||||||
productsSelector: '#list-view .listing-product',
|
sitePrefix: 'https://www.ebuyer.com',
|
||||||
sitePrefix: 'https://www.ebuyer.com',
|
titleSelector: '.listing-product-title',
|
||||||
titleSelector: '.listing-product-title',
|
urlSelector: 'a[href]',
|
||||||
urlSelector: 'a[href]'
|
}),
|
||||||
}),
|
urls: [
|
||||||
urls: [
|
{
|
||||||
{
|
series: 'rx6800',
|
||||||
series: 'rx6800',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: 'rx6800xt',
|
||||||
series: 'rx6800xt',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800-XT',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6800-XT'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: 'rx6900xt',
|
||||||
series: 'rx6900xt',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6900-XT',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-AMD/subcat/AMD-RX-6900-XT'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3060ti',
|
||||||
series: '3060ti',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3060-Ti'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3070',
|
||||||
series: '3070',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3070',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3070'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3080',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3080'
|
},
|
||||||
},
|
{
|
||||||
{
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3090',
|
||||||
'https://www.ebuyer.com/store/Components/cat/Graphics-Cards-Nvidia/subcat/GeForce-RTX-3090'
|
},
|
||||||
}
|
],
|
||||||
]
|
},
|
||||||
},
|
name: 'ebuyer',
|
||||||
name: 'ebuyer',
|
waitUntil: 'domcontentloaded',
|
||||||
waitUntil: 'domcontentloaded'
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,71 +1,70 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Elcorteingles: Store = {
|
export const Elcorteingles: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
// Captcha: {
|
// Captcha: {
|
||||||
// container: 'body',
|
// container: 'body',
|
||||||
// text: [
|
// text: [
|
||||||
// 'geben sie die unten angezeigten zeichen ein',
|
// 'geben sie die unten angezeigten zeichen ein',
|
||||||
// 'geben sie die zeichen unten ein'
|
// 'geben sie die zeichen unten ein'
|
||||||
// ]
|
// ]
|
||||||
// },
|
// },
|
||||||
inStock: [
|
inStock: [
|
||||||
{
|
{
|
||||||
container:
|
container: '.product_detail-purchase.mb-2.c12 .js-add-cart-text',
|
||||||
'.product_detail-purchase.mb-2.c12 .js-add-cart-text',
|
text: ['a la cesta'],
|
||||||
text: ['a la cesta']
|
},
|
||||||
}
|
],
|
||||||
],
|
maxPrice: {
|
||||||
maxPrice: {
|
container: '.product_detail-buy-price-container .price._big',
|
||||||
container: '.product_detail-buy-price-container .price._big',
|
euroFormat: true,
|
||||||
euroFormat: true
|
},
|
||||||
},
|
outOfStock: [
|
||||||
outOfStock: [
|
{
|
||||||
{
|
container:
|
||||||
container:
|
'.c12.mt-2.product_detail-add_to_cart.one_click_enabled .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
|
||||||
'.c12.mt-2.product_detail-add_to_cart.one_click_enabled .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
|
text: ['Agotado'],
|
||||||
text: ['Agotado']
|
},
|
||||||
},
|
{
|
||||||
{
|
container:
|
||||||
container:
|
'.product_detail-purchase.mb-2.c12 .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
|
||||||
'.product_detail-purchase.mb-2.c12 .c12.button._normal.js-buy-button._sold_out.view-page._disabled',
|
text: ['No disponible'],
|
||||||
text: ['No disponible']
|
},
|
||||||
}
|
],
|
||||||
]
|
},
|
||||||
},
|
links: [
|
||||||
links: [
|
{
|
||||||
{
|
brand: 'test:brand',
|
||||||
brand: 'test:brand',
|
model: 'test:model',
|
||||||
model: 'test:model',
|
series: 'test:series',
|
||||||
series: 'test:series',
|
url: 'https://www.elcorteingles.es/moda/A26324406/',
|
||||||
url: 'https://www.elcorteingles.es/moda/A26324406/'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
model: 'ps5 console',
|
||||||
model: 'ps5 console',
|
series: 'sonyps5c',
|
||||||
series: 'sonyps5c',
|
url: 'https://www.elcorteingles.es/videojuegos/A37046604',
|
||||||
url: 'https://www.elcorteingles.es/videojuegos/A37046604'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'sony',
|
||||||
brand: 'sony',
|
model: 'ps5 digital',
|
||||||
model: 'ps5 digital',
|
series: 'sonyps5de',
|
||||||
series: 'sonyps5de',
|
url: 'https://www.elcorteingles.es/videojuegos/A37046605',
|
||||||
url: 'https://www.elcorteingles.es/videojuegos/A37046605'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series x',
|
||||||
model: 'xbox series x',
|
series: 'xboxsx',
|
||||||
series: 'xboxsx',
|
url: 'https://www.elcorteingles.es/videojuegos/A37047078',
|
||||||
url: 'https://www.elcorteingles.es/videojuegos/A37047078'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'microsoft',
|
||||||
brand: 'microsoft',
|
model: 'xbox series s',
|
||||||
model: 'xbox series s',
|
series: 'xboxss',
|
||||||
series: 'xboxss',
|
url: 'https://www.elcorteingles.es/videojuegos/A37047080',
|
||||||
url: 'https://www.elcorteingles.es/videojuegos/A37047080'
|
},
|
||||||
}
|
],
|
||||||
],
|
name: 'elcorteingles',
|
||||||
name: 'elcorteingles'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+84
-84
@@ -1,88 +1,88 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Eprice: Store = {
|
export const Eprice: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.topSideDx',
|
container: '.topSideDx',
|
||||||
text: ['disponibile', 'pochi pezzi']
|
text: ['disponibile', 'pochi pezzi'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '#PrezzoClasic span[class*="big"]',
|
container: '#PrezzoClasic span[class*="big"]',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.dispo',
|
container: '.dispo',
|
||||||
text: ['ESAURITO O FUORI PROD.']
|
text: ['ESAURITO O FUORI PROD.'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.eprice.it/cuffie-con-microfono-APPLE/d-9030906'
|
url: 'https://www.eprice.it/cuffie-con-microfono-APPLE/d-9030906',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-MSI/d-14039974'
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039974',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual',
|
model: 'dual',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-ASUS/d-14042082'
|
url: 'https://www.eprice.it/schede-video-ASUS/d-14042082',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'strix',
|
model: 'strix',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-ASUS/d-14039878'
|
url: 'https://www.eprice.it/schede-video-ASUS/d-14039878',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'tuf',
|
model: 'tuf',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-ASUS/d-14039876'
|
url: 'https://www.eprice.it/schede-video-ASUS/d-14039876',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-MSI/d-14039972'
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039972',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-MSI/d-14039974'
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039974',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x oc',
|
model: 'ventus 2x oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-MSI/d-14039973'
|
url: 'https://www.eprice.it/schede-video-MSI/d-14039973',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'gaming',
|
model: 'gaming',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.eprice.it/schede-video-ZOTAC/d-13979806'
|
url: 'https://www.eprice.it/schede-video-ZOTAC/d-13979806',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url: 'https://www.eprice.it/playstation-5-SONY/d-13981612'
|
url: 'https://www.eprice.it/playstation-5-SONY/d-13981612',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url: 'https://www.eprice.it/playstation-5-SONY/d-13981613'
|
url: 'https://www.eprice.it/playstation-5-SONY/d-13981613',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'eprice'
|
name: 'eprice',
|
||||||
};
|
};
|
||||||
|
|||||||
+102
-102
@@ -1,106 +1,106 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Equippr: Store = {
|
export const Equippr: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: 'buybox--button-container',
|
container: 'buybox--button-container',
|
||||||
text: ['in den warenkorb']
|
text: ['in den warenkorb'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product--price',
|
container: '.product--price',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.product--buybox',
|
container: '.product--buybox',
|
||||||
text: ['bald verfügbar']
|
text: ['bald verfügbar'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/amd-ryzen-5-2600x-6x-3-60-ghz-box-yd260xbcafbox-2000034.html'
|
'https://www.equippr.de/amd-ryzen-5-2600x-6x-3-60-ghz-box-yd260xbcafbox-2000034.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'asus',
|
brand: 'asus',
|
||||||
model: 'dual oc',
|
model: 'dual oc',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/asus-geforce-rtx-3060-ti-dual-8-gb-gddr6-retail-2066580.html'
|
'https://www.equippr.de/asus-geforce-rtx-3060-ti-dual-8-gb-gddr6-retail-2066580.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'inno3d',
|
brand: 'inno3d',
|
||||||
model: 'ichill x3',
|
model: 'ichill x3',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/inno3d-geforce-rtx-3060-ti-ichill-x3-8-gb-gddr6-2066593.html'
|
'https://www.equippr.de/inno3d-geforce-rtx-3060-ti-ichill-x3-8-gb-gddr6-2066593.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'aorus',
|
model: 'aorus',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/gigabyte-geforce-rtx-3060-ti-aorus-8-gb-gddr6-retail-2066569.html'
|
'https://www.equippr.de/gigabyte-geforce-rtx-3060-ti-aorus-8-gb-gddr6-retail-2066569.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/msi-geforce-rtx-3060-ti-gaming-x-trio-8-gb-gddr6-retail-2066573.html'
|
'https://www.equippr.de/msi-geforce-rtx-3060-ti-gaming-x-trio-8-gb-gddr6-retail-2066573.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 2x',
|
model: 'ventus 2x',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/msi-geforce-rtx-3060-ti-ventus-2x-oc-8-gb-gddr6-retail-2066574.html'
|
'https://www.equippr.de/msi-geforce-rtx-3060-ti-ventus-2x-oc-8-gb-gddr6-retail-2066574.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge oc',
|
model: 'twin edge oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/zotac-geforce-rtx-3070-twin-edge-oc-8-gb-gddr6-retail-2064130.html'
|
'https://www.equippr.de/zotac-geforce-rtx-3070-twin-edge-oc-8-gb-gddr6-retail-2064130.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'zotac',
|
brand: 'zotac',
|
||||||
model: 'twin edge',
|
model: 'twin edge',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/zotac-geforce-rtx-3070-twin-edge-8-gb-gddr6-retail-2060897.html'
|
'https://www.equippr.de/zotac-geforce-rtx-3070-twin-edge-8-gb-gddr6-retail-2060897.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle',
|
model: 'eagle',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/gigabyte-geforce-rtx-3070-eagle-8-gb-gddr6-retail-2063884.html'
|
'https://www.equippr.de/gigabyte-geforce-rtx-3070-eagle-8-gb-gddr6-retail-2063884.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'gigabyte',
|
brand: 'gigabyte',
|
||||||
model: 'eagle oc',
|
model: 'eagle oc',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/gigabyte-geforce-rtx-3070-eagle-oc-8-gb-gddr6-retail-2063882.html'
|
'https://www.equippr.de/gigabyte-geforce-rtx-3070-eagle-oc-8-gb-gddr6-retail-2063882.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/evga-geforce-rtx-3080-xc3-ultra-gaming-10-gb-gddr6x-retail-2061393.html'
|
'https://www.equippr.de/evga-geforce-rtx-3080-xc3-ultra-gaming-10-gb-gddr6x-retail-2061393.html',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://www.equippr.de/evga-geforce-rtx-3080-xc3-gaming-10-gb-gddr6x-retail-2061391.html'
|
'https://www.equippr.de/evga-geforce-rtx-3080-xc3-gaming-10-gb-gddr6x-retail-2061391.html',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'equippr'
|
name: 'equippr',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,61 +1,61 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const EuronicsDE: Store = {
|
export const EuronicsDE: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.buy-btn--cart-text',
|
container: '.buy-btn--cart-text',
|
||||||
text: ['Warenkorb']
|
text: ['Warenkorb'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.price--content',
|
container: '.price--content',
|
||||||
euroFormat: true
|
euroFormat: true,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container:
|
container:
|
||||||
'.product--buybox .alert.is--error.is--rounded .alert--content',
|
'.product--buybox .alert.is--error.is--rounded .alert--content',
|
||||||
text: [
|
text: [
|
||||||
'Artikel steht derzeit nicht zur Verfügung',
|
'Artikel steht derzeit nicht zur Verfügung',
|
||||||
'Morgen im Laufe des Morgens und nur online unter'
|
'Morgen im Laufe des Morgens und nur online unter',
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.de/telefon-und-navigation/festnetz/schnurlose-telefone/kx-tg6721gb-schnurlostelefon-mit-anrufbeantworter-schwarz-4051168442801'
|
'https://www.euronics.de/telefon-und-navigation/festnetz/schnurlose-telefone/kx-tg6721gb-schnurlostelefon-mit-anrufbeantworter-schwarz-4051168442801',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/xbox-series-x/spielekonsole/xbox-series-s-512gb-konsole-4061856838076'
|
'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',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/xbox-series-x/spielekonsole/xbox-series-x-1tb-konsole-4061856838045'
|
'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',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-digital-edition-konsole-4061856837833'
|
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-digital-edition-konsole-4061856837833',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-konsole-4061856837826'
|
'https://www.euronics.de/spiele-und-konsolen-film-und-musik/spiele-und-konsolen/playstation-5/spielekonsole/playstation-5-konsole-4061856837826',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'euronics-de'
|
name: 'euronics-de',
|
||||||
};
|
};
|
||||||
|
|||||||
+38
-38
@@ -1,42 +1,42 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Euronics: Store = {
|
export const Euronics: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.purchaseButtonsWidth',
|
container: '.purchaseButtonsWidth',
|
||||||
text: ['Aggiungi al carrello']
|
text: ['Aggiungi al carrello'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 console',
|
model: 'ps5 console',
|
||||||
series: 'sonyps5c',
|
series: 'sonyps5c',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.it/console/sony-computer/playstation-5/eProd202008906'
|
'https://www.euronics.it/console/sony-computer/playstation-5/eProd202008906',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'sony',
|
brand: 'sony',
|
||||||
model: 'ps5 digital',
|
model: 'ps5 digital',
|
||||||
series: 'sonyps5de',
|
series: 'sonyps5de',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.it/console/sony-computer/playstation-5-digital-edition/eProd202008907'
|
'https://www.euronics.it/console/sony-computer/playstation-5-digital-edition/eProd202008907',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series x',
|
model: 'xbox series x',
|
||||||
series: 'xboxsx',
|
series: 'xboxsx',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.it/console/microsoft/xbox-series-x-1tb-it-italy-sxto/eProd202008981'
|
'https://www.euronics.it/console/microsoft/xbox-series-x-1tb-it-italy-sxto/eProd202008981',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'microsoft',
|
brand: 'microsoft',
|
||||||
model: 'xbox series s',
|
model: 'xbox series s',
|
||||||
series: 'xboxss',
|
series: 'xboxss',
|
||||||
url:
|
url:
|
||||||
'https://www.euronics.it/console/microsoft/xbox-series-s-512gb-it-italy-ltsn/eProd202008982'
|
'https://www.euronics.it/console/microsoft/xbox-series-s-512gb-it-italy-ltsn/eProd202008982',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'euronics'
|
name: 'euronics',
|
||||||
};
|
};
|
||||||
|
|||||||
+109
-110
@@ -1,114 +1,113 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Evatech: Store = {
|
export const Evatech: Store = {
|
||||||
backoffStatusCodes: [403, 429],
|
backoffStatusCodes: [403, 429],
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.product_detail_add_to_cart > span:nth-child(2)',
|
container: '.product_detail_add_to_cart > span:nth-child(2)',
|
||||||
text: ['ADD TO CART']
|
text: ['ADD TO CART'],
|
||||||
},
|
},
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container: '.product_detail_price',
|
container: '.product_detail_price',
|
||||||
euroFormat: false
|
euroFormat: false,
|
||||||
},
|
},
|
||||||
outOfStock: {
|
outOfStock: {
|
||||||
container: '.product_detail_add_to_cart > div:nth-child(2)',
|
container: '.product_detail_add_to_cart > div:nth-child(2)',
|
||||||
text: ['SOLD OUT']
|
text: ['SOLD OUT'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'colorful',
|
brand: 'colorful',
|
||||||
model: 'igame ultra oc',
|
model: 'igame ultra oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://evatech.com.au/product/6511/colorful-igame-rtx-3080-ultra-oc-10g'
|
'https://evatech.com.au/product/6511/colorful-igame-rtx-3080-ultra-oc-10g',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'colorful',
|
brand: 'colorful',
|
||||||
model: 'igame advanced oc',
|
model: 'igame advanced oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://evatech.com.au/product/6507/colorful-igame-rtx-3080-advanced-oc-10g'
|
'https://evatech.com.au/product/6507/colorful-igame-rtx-3080-advanced-oc-10g',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'colorful',
|
brand: 'colorful',
|
||||||
model: 'igame vulcan oc',
|
model: 'igame vulcan oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://evatech.com.au/product/6514/colorful-igame-rtx-3080-vulcan-oc-10g'
|
'https://evatech.com.au/product/6514/colorful-igame-rtx-3080-vulcan-oc-10g',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'suprim x',
|
model: 'suprim x',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://evatech.com.au/product/6574/msi-geforce-rtx-3080-suprim-x-10g'
|
'https://evatech.com.au/product/6574/msi-geforce-rtx-3080-suprim-x-10g',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'gaming x trio',
|
model: 'gaming x trio',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url:
|
||||||
'https://evatech.com.au/product/6505/msi-rtx-3080-gamingx-trio-10g-oc'
|
'https://evatech.com.au/product/6505/msi-rtx-3080-gamingx-trio-10g-oc',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'msi',
|
brand: 'msi',
|
||||||
model: 'ventus 3x oc',
|
model: 'ventus 3x oc',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url:
|
url: 'https://evatech.com.au/product/6494/msi-rtx-3080-ventus-3x-10g-oc',
|
||||||
'https://evatech.com.au/product/6494/msi-rtx-3080-ventus-3x-10g-oc'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'zotac',
|
||||||
brand: 'zotac',
|
model: 'trinity',
|
||||||
model: 'trinity',
|
series: '3080',
|
||||||
series: '3080',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6496/zotac-rtx3080-trinity-10gb-gddr6x',
|
||||||
'https://evatech.com.au/product/6496/zotac-rtx3080-trinity-10gb-gddr6x'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'colorful',
|
||||||
brand: 'colorful',
|
model: 'igame advanced oc',
|
||||||
model: 'igame advanced oc',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6513/colorful-igame-rtx-3090-advance-oc-24g',
|
||||||
'https://evatech.com.au/product/6513/colorful-igame-rtx-3090-advance-oc-24g'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
model: 'ventus 3x oc',
|
||||||
model: 'ventus 3x oc',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6524/msi-geforce-rtx-3090-ventus-3x-oc-24gb',
|
||||||
'https://evatech.com.au/product/6524/msi-geforce-rtx-3090-ventus-3x-oc-24gb'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
model: 'gaming x trio',
|
||||||
model: 'gaming x trio',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6550/msi-rtx-3090-gaming-x-trio-24gb',
|
||||||
'https://evatech.com.au/product/6550/msi-rtx-3090-gaming-x-trio-24gb'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'msi',
|
||||||
brand: 'msi',
|
model: 'suprim x',
|
||||||
model: 'suprim x',
|
series: '3090',
|
||||||
series: '3090',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6573/msi-geforce-rtx-3090-suprim-x-24g',
|
||||||
'https://evatech.com.au/product/6573/msi-geforce-rtx-3090-suprim-x-24g'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5900x',
|
||||||
model: '5900x',
|
series: 'ryzen5900',
|
||||||
series: 'ryzen5900',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6558/amd-ryzen-9-5900x-12core-24-thread-base37ghz-boost48ghz-preorder',
|
||||||
'https://evatech.com.au/product/6558/amd-ryzen-9-5900x-12core-24-thread-base37ghz-boost48ghz-preorder'
|
},
|
||||||
},
|
{
|
||||||
{
|
brand: 'amd',
|
||||||
brand: 'amd',
|
model: '5800x',
|
||||||
model: '5800x',
|
series: 'ryzen5800',
|
||||||
series: 'ryzen5800',
|
url:
|
||||||
url:
|
'https://evatech.com.au/product/6557/amd-ryzen-7-5800x-8core-16-thread-base38ghz-boost47ghz-preorder',
|
||||||
'https://evatech.com.au/product/6557/amd-ryzen-7-5800x-8core-16-thread-base38ghz-boost47ghz-preorder'
|
},
|
||||||
}
|
],
|
||||||
],
|
name: 'evatech',
|
||||||
name: 'evatech'
|
|
||||||
};
|
};
|
||||||
|
|||||||
+70
-70
@@ -1,74 +1,74 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const EvgaEu: Store = {
|
export const EvgaEu: Store = {
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.product-buy-specs',
|
container: '.product-buy-specs',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3895-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3895-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3897-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3897-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3883-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3883-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3881-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3881-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3885-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=10G-P5-3885-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3985-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3985-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3987-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3987-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3973-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3973-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3971-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3971-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3975-KR'
|
url: 'https://eu.evga.com/products/product.aspx?pn=24G-P5-3975-KR',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'evga-eu'
|
name: 'evga-eu',
|
||||||
};
|
};
|
||||||
|
|||||||
+118
-118
@@ -1,122 +1,122 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Evga: Store = {
|
export const Evga: Store = {
|
||||||
currency: '$',
|
currency: '$',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: {
|
inStock: {
|
||||||
container: '.product-buy-specs',
|
container: '.product-buy-specs',
|
||||||
text: ['add to cart']
|
text: ['add to cart'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
brand: 'test:brand',
|
brand: 'test:brand',
|
||||||
model: 'test:model',
|
model: 'test:model',
|
||||||
series: 'test:series',
|
series: 'test:series',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=06G-P4-2065-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=06G-P4-2065-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc gaming',
|
model: 'xc gaming',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3663-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3663-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3665-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3665-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3060ti',
|
series: '3060ti',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3667-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3667-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3751-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3751-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3755-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3755-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3070',
|
series: '3070',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3767-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=08G-P5-3767-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3881-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3881-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3897-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3897-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra hydro copper',
|
model: 'ftw3 ultra hydro copper',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3897-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3897-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3895-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3895-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3883-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3883-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3080',
|
series: '3080',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3885-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=10G-P5-3885-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 black',
|
model: 'xc3 black',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3971-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3971-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3 ultra',
|
model: 'ftw3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3987-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3987-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'ftw3',
|
model: 'ftw3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3985-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3985-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3',
|
model: 'xc3',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3973-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3973-KR',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
brand: 'evga',
|
brand: 'evga',
|
||||||
model: 'xc3 ultra',
|
model: 'xc3 ultra',
|
||||||
series: '3090',
|
series: '3090',
|
||||||
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3975-KR'
|
url: 'https://www.evga.com/products/product.aspx?pn=24G-P5-3975-KR',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
name: 'evga'
|
name: 'evga',
|
||||||
};
|
};
|
||||||
|
|||||||
+53
-55
@@ -1,59 +1,57 @@
|
|||||||
import {Store} from './store';
|
import {Store} from './store';
|
||||||
|
|
||||||
export const Expert: Store = {
|
export const Expert: Store = {
|
||||||
backoffStatusCodes: [403, 429, 503],
|
backoffStatusCodes: [403, 429, 503],
|
||||||
currency: '€',
|
currency: '€',
|
||||||
labels: {
|
labels: {
|
||||||
inStock: [
|
inStock: [
|
||||||
{
|
{
|
||||||
container: 'span.widget-ArticleStatus-buttonText',
|
container: 'span.widget-ArticleStatus-buttonText',
|
||||||
text: ['In den Warenkorb']
|
text: ['In den Warenkorb'],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
maxPrice: {
|
maxPrice: {
|
||||||
container:
|
container: '.widget-Container-subContent .widget-ArticlePrice-price',
|
||||||
'.widget-Container-subContent .widget-ArticlePrice-price',
|
euroFormat: false,
|
||||||
euroFormat: false
|
},
|
||||||
},
|
outOfStock: [
|
||||||
outOfStock: [
|
{
|
||||||
{
|
container:
|
||||||
container:
|
'span[style="font-size: 14pt;"] > span[style="color: #ff5e19;"]',
|
||||||
'span[style="font-size: 14pt;"] > span[style="color: #ff5e19;"]',
|
text: ['Das von Ihnen ausgewählte Produkt ist ausverkauft'],
|
||||||
text: ['Das von Ihnen ausgewählte Produkt ist ausverkauft']
|
},
|
||||||
},
|
{
|
||||||
{
|
container: 'span.widget-ArticleStatus-statusPointText',
|
||||||
container: 'span.widget-ArticleStatus-statusPointText',
|
text: ['Artikel ist derzeit nicht verfügbar'],
|
||||||
text: ['Artikel ist derzeit nicht verfügbar']
|
},
|
||||||
}
|
],
|
||||||
]
|
},
|
||||||
},
|
links: [
|
||||||
links: [
|
{
|
||||||
{
|
brand: 'test:brand',
|
||||||
brand: 'test:brand',
|
model: 'test:model',
|
||||||
model: 'test:model',
|
series: 'test:series',
|
||||||
series: 'test:series',
|
url: 'https://www.expert.de/shop/11364114744-ps4-pro-1tb-jet-black.html',
|
||||||
url:
|
},
|
||||||
'https://www.expert.de/shop/11364114744-ps4-pro-1tb-jet-black.html'
|
{
|
||||||
},
|
brand: 'sony',
|
||||||
{
|
model: 'ps5 console',
|
||||||
brand: 'sony',
|
series: 'sonyps5c',
|
||||||
model: 'ps5 console',
|
url: 'https://www.expert.de/shop/11364129744-playstation-r-5.html',
|
||||||
series: 'sonyps5c',
|
},
|
||||||
url: 'https://www.expert.de/shop/11364129744-playstation-r-5.html'
|
{
|
||||||
},
|
brand: 'sony',
|
||||||
{
|
model: 'ps5 digital',
|
||||||
brand: 'sony',
|
series: 'sonyps5de',
|
||||||
model: 'ps5 digital',
|
url:
|
||||||
series: 'sonyps5de',
|
'https://www.expert.de/shop/11364133744-playstation-r-5-digital-edition.html',
|
||||||
url:
|
},
|
||||||
'https://www.expert.de/shop/11364133744-playstation-r-5-digital-edition.html'
|
{
|
||||||
},
|
brand: 'microsoft',
|
||||||
{
|
model: 'xbox series s',
|
||||||
brand: 'microsoft',
|
series: 'xboxss',
|
||||||
model: 'xbox series s',
|
url: 'https://www.expert.de/shop/11350018530-xbox-series-s.html',
|
||||||
series: 'xboxss',
|
},
|
||||||
url: 'https://www.expert.de/shop/11350018530-xbox-series-s.html'
|
],
|
||||||
}
|
name: 'expert',
|
||||||
],
|
|
||||||
name: 'expert'
|
|
||||||
};
|
};
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user