From 2bc8e958d2bae951975d5fd21b5f10b42dde7f96 Mon Sep 17 00:00:00 2001 From: nocci Date: Wed, 31 Dec 2025 10:38:07 +0000 Subject: [PATCH] fix: resolve remaining sonar findings --- gog.js | 12 ++++++++---- prime-gaming.js | 20 +++++++++++++------- unrealengine.js | 6 +++++- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/gog.js b/gog.js index 767fec1..358e47a 100644 --- a/gog.js +++ b/gog.js @@ -56,7 +56,11 @@ try { const email = cfg.gog_email || await prompt({ message: 'Enter email' }); const password = email && (cfg.gog_password || await prompt({ type: 'password', message: 'Enter password' })); if (email && password) { - iframe.locator('a[href="/logout"]').click().catch(_ => { }); // Click 'Change account' (email from previous login is set in some cookie) + try { + await iframe.locator('a[href="/logout"]').click(); // Click 'Change account' (email from previous login is set in some cookie) + } catch { + // link not present, continue with login flow + } await iframe.locator('#login_username').fill(email); await iframe.locator('#login_password').fill(password); await iframe.locator('#login_login').click(); @@ -103,9 +107,7 @@ try { const banner = page.locator('#giveaway'); const hasGiveaway = await banner.count(); - if (!hasGiveaway) { - console.log('Currently no free giveaway!'); - } else { + if (hasGiveaway) { const text = await page.locator('.giveaway__content-header').innerText(); const match_all = text.match(/Claim (.*) and don't miss the|Success! (.*) was added to/); const title = match_all[1] ? match_all[1] : match_all[2]; @@ -146,6 +148,8 @@ try { await page.locator('li:has-text("Marketing communications through Trusted Partners") label').uncheck(); await page.locator('li:has-text("Promotions and hot deals") label').uncheck(); } + } else { + console.log('Currently no free giveaway!'); } } catch (error) { process.exitCode ||= 1; diff --git a/prime-gaming.js b/prime-gaming.js index a09cbca..a6e502a 100644 --- a/prime-gaming.js +++ b/prime-gaming.js @@ -433,13 +433,13 @@ try { } // Disabled CTA (e.g., needs linking or not available) if (await disabledCTA.count()) { - if (store !== 'epic-games') { + if (store === 'epic-games') { + console.log(' CTA disabled for epic-games, will still try to link/claim.'); + } else { console.log(' CTA is disabled, skipping (likely needs linking/not available).'); notify_game.status = 'disabled'; db.data[user][title] ||= { title, time: datetime(), url, store, status: 'disabled' }; continue; - } else { - console.log(' CTA disabled for epic-games, will still try to link/claim.'); } } if (store == 'luna') { @@ -664,13 +664,19 @@ try { await page.goto(url, { waitUntil: 'domcontentloaded' }); // most games have a button 'Get in-game content' // epic-games: Fall Guys: Claim -> Continue -> Go to Epic Games (despite account linked and logged into epic-games) -> not tied to account but via some cookie? + const claimAndContinue = async () => { + await page.click('.tw-button:has-text("Claim")'); + try { + await page.click('button:has-text("Continue")'); + } catch { + // continue button not always present + } + }; + const claimOptions = [ page.click('.tw-button:has-text("Get in-game content")'), page.click('.tw-button:has-text("Claim your gift")'), - (async () => { - await page.click('.tw-button:has-text("Claim")'); - await page.click('button:has-text("Continue")').catch(() => {}); - })(), + claimAndContinue(), ]; await Promise.any(claimOptions); try { diff --git a/unrealengine.js b/unrealengine.js index 6eb7d79..29d1064 100644 --- a/unrealengine.js +++ b/unrealengine.js @@ -98,7 +98,11 @@ try { console.log(`Signed in as ${user}`); db.data[user] ||= {}; - page.locator('button:has-text("Accept All Cookies")').click().catch(_ => { }); + try { + await page.locator('button:has-text("Accept All Cookies")').click(); + } catch { + // button may not be present + } const ids = []; for (const p of await page.locator('article.asset').all()) {