pg: checkTimeLeft via PG_TIMELEFT=1
This commit is contained in:
parent
30b1835bdb
commit
f920aa26d0
2 changed files with 21 additions and 1 deletions
|
|
@ -110,6 +110,23 @@ try {
|
||||||
// bottom to top: oldest to newest games
|
// bottom to top: oldest to newest games
|
||||||
internal.reverse();
|
internal.reverse();
|
||||||
external.reverse();
|
external.reverse();
|
||||||
|
const checkTimeLeft = async url => {
|
||||||
|
// console.log(' Checking time left for game:', url);
|
||||||
|
const check = async p => {
|
||||||
|
console.log(' ', await p.locator('.availability-date').innerText());
|
||||||
|
const dueDateOrg = await p.locator('.availability-date .tw-bold').innerText();
|
||||||
|
const dueDate = datetime(new Date(Date.parse(dueDateOrg + ' 17:00')));
|
||||||
|
console.log(' Due date:', dueDate);
|
||||||
|
};
|
||||||
|
if (page.url() == url) {
|
||||||
|
await check(page);
|
||||||
|
} else {
|
||||||
|
const p = await context.newPage();
|
||||||
|
await p.goto(url, { waitUntil: 'domcontentloaded' });
|
||||||
|
await check(p);
|
||||||
|
p.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
console.log('Number of free unclaimed games (Prime Gaming):', internal.length);
|
console.log('Number of free unclaimed games (Prime Gaming):', internal.length);
|
||||||
// claim games in internal store
|
// claim games in internal store
|
||||||
for (const card of internal) {
|
for (const card of internal) {
|
||||||
|
|
@ -118,6 +135,7 @@ try {
|
||||||
const slug = await (await card.$('a')).getAttribute('href');
|
const slug = await (await card.$('a')).getAttribute('href');
|
||||||
const url = 'https://gaming.amazon.com' + slug.split('?')[0];
|
const url = 'https://gaming.amazon.com' + slug.split('?')[0];
|
||||||
console.log('Current free game:', title);
|
console.log('Current free game:', title);
|
||||||
|
if (cfg.pg_timeLeft) await checkTimeLeft(url);
|
||||||
if (cfg.dryrun) continue;
|
if (cfg.dryrun) continue;
|
||||||
if (cfg.interactive && !await confirm()) continue;
|
if (cfg.interactive && !await confirm()) continue;
|
||||||
await (await card.$('.tw-button:has-text("Claim")')).click();
|
await (await card.$('.tw-button:has-text("Claim")')).click();
|
||||||
|
|
@ -144,6 +162,7 @@ try {
|
||||||
const item_text = await page.innerText('[data-a-target="DescriptionItemDetails"]');
|
const item_text = await page.innerText('[data-a-target="DescriptionItemDetails"]');
|
||||||
const store = item_text.toLowerCase().replace(/.* on /, '').slice(0, -1);
|
const store = item_text.toLowerCase().replace(/.* on /, '').slice(0, -1);
|
||||||
console.log(' External store:', store);
|
console.log(' External store:', store);
|
||||||
|
if (cfg.pg_timeLeft) await checkTimeLeft(url);
|
||||||
if (cfg.dryrun) continue;
|
if (cfg.dryrun) continue;
|
||||||
if (cfg.interactive && !await confirm()) continue;
|
if (cfg.interactive && !await confirm()) continue;
|
||||||
await Promise.any([page.click('[data-a-target="buy-box"] .tw-button:has-text("Get game")'), page.click('[data-a-target="buy-box"] .tw-button:has-text("Claim")'), page.click('.tw-button:has-text("Complete Claim")'), page.waitForSelector('div:has-text("Link game account")'), page.waitForSelector('.thank-you-title:has-text("Success")')]); // waits for navigation
|
await Promise.any([page.click('[data-a-target="buy-box"] .tw-button:has-text("Get game")'), page.click('[data-a-target="buy-box"] .tw-button:has-text("Claim")'), page.click('.tw-button:has-text("Complete Claim")'), page.waitForSelector('div:has-text("Link game account")'), page.waitForSelector('.thank-you-title:has-text("Success")')]); // waits for navigation
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,8 @@ export const cfg = {
|
||||||
xbox_email: process.env.XBOX_EMAIL || process.env.EMAIL,
|
xbox_email: process.env.XBOX_EMAIL || process.env.EMAIL,
|
||||||
xbox_password: process.env.XBOX_PASSWORD || process.env.PASSWORD,
|
xbox_password: process.env.XBOX_PASSWORD || process.env.PASSWORD,
|
||||||
xbox_otpkey: process.env.XBOX_OTPKEY,
|
xbox_otpkey: process.env.XBOX_OTPKEY,
|
||||||
// experimmental - likely to change
|
// experimmental
|
||||||
pg_redeem: process.env.PG_REDEEM == '1', // prime-gaming: redeem keys on external stores
|
pg_redeem: process.env.PG_REDEEM == '1', // prime-gaming: redeem keys on external stores
|
||||||
pg_claimdlc: process.env.PG_CLAIMDLC == '1', // prime-gaming: claim in-game content
|
pg_claimdlc: process.env.PG_CLAIMDLC == '1', // prime-gaming: claim in-game content
|
||||||
|
pg_timeLeft: process.env.PG_TIMELEFT == '1', // prime-gaming: list time left to claim
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue