fix: resolve remaining sonar findings
All checks were successful
build-and-push / lint (push) Successful in 4s
build-and-push / sonar (push) Successful in 12s
build-and-push / docker (push) Successful in 1m9s

This commit is contained in:
nocci 2025-12-31 10:38:07 +00:00
parent 5e0c5263ca
commit 2bc8e958d2
3 changed files with 26 additions and 12 deletions

12
gog.js
View file

@ -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;

View file

@ -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 {

View file

@ -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()) {