Commit graph

189 commits

Author SHA1 Message Date
root
48c861b3de fix: Multiple bug fixes and code cleanup
All checks were successful
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Successful in 21s
build-and-push / docker (push) Successful in 25s
- package.json: Add missing @eslint/js and globals devDependencies
- docker-entrypoint.sh: Fix X11 lock file name (.X1-lock → .X11-lock)
- epic-claimer-new.js: Use imported solveCloudflare/isCloudflareChallenge instead of duplicate implementations
- src/cloudflare.js: Fix solveCloudflare to use cfg.flaresolverr_url, remove unused imports
- epic-games.js: Remove unused code (getFreeGamesFromGraphQL, exchangeTokenForCookies, FREE_GAMES_QUERY, deviceAuthLoginSuccess variable)
- Run eslint --fix to clean up trailing spaces
2026-03-08 13:58:57 +00:00
nocci
b72bb3fa4c fix: use JavaScript imports for TypeScript files
All checks were successful
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Successful in 21s
build-and-push / docker (push) Successful in 8s
2026-03-07 14:54:36 +00:00
nocci
d47bfd7e8e fix: import constants.ts instead of constants.js
All checks were successful
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Successful in 22s
build-and-push / docker (push) Successful in 11s
2026-03-07 14:51:51 +00:00
nocci
cc2f370eee fix: remove unnecessary parentheses around expressions
All checks were successful
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Successful in 20s
build-and-push / docker (push) Successful in 11s
2026-03-07 14:33:48 +00:00
nocci
3f241bf400 fix: use separate locators with OR for captcha detection
Some checks failed
build-and-push / lint (push) Failing after 8s
build-and-push / sonar (push) Has been skipped
build-and-push / docker (push) Has been skipped
2026-03-07 14:31:27 +00:00
nocci
6615cf02db fix: use :is() for OR condition in Playwright selector
All checks were successful
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Successful in 20s
build-and-push / docker (push) Successful in 11s
2026-03-07 14:24:41 +00:00
nocci
6194e3eff3 fix: correct Playwright selector syntax for OR condition
All checks were successful
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Successful in 20s
build-and-push / docker (push) Successful in 12s
2026-03-07 14:19:36 +00:00
nocci
96df8cb3d4 refactor: migrate ESLint configuration to flat config and remove redundant rule files
- replace legacy .eslintrc files with flat eslint.config.js
- consolidate eslint globals for improved code clarity
- enable prefer-const and no-unused-vars off in *.js for flexibility
- remove unused import statements and redundant eslint directives from epic-games.js and aliexpress.js
- standardize function parameter syntax to arrow with parentheses omitted where safe
- add comments marking unused but retained functions for reference
2026-03-06 15:38:58 +00:00
nocci
728b0c734b refactor[epic-games]: migrate to GraphQL API and modularize authentication logic
This commit refactors epic-games.js to use the GraphQL API instead of the legacy promotions endpoint for retrieving free games. Key architectural improvements include:

- Added modular authentication module (device-auths.ts) supporting persistent device auth tokens
- Introduces cookie management module (cookie.ts) for persistent session handling
- Extracts GraphQL query structures and API endpoints into constants.ts
- Implements multiple fallback strategies: device auth login, token exchange, and fallback to standard login
- Adds support for both GraphQL and promotions-based game discovery
- Streamlines claim process with improved tracking and error handling
- Removes legacy selectors and redundant logic

Additionally, updates package.json to include TypeScript and reorganizes dependency order for better maintainability.
2026-03-06 15:26:26 +00:00
nocci
370e3db206 🔧 chore(workflows): add screenshot to ESLint globals
Some checks failed
build-and-push / lint (push) Successful in 8s
build-and-push / sonar (push) Failing after 0s
build-and-push / docker (push) Has been skipped
- add screenshot as a readonly global variable to ESLint configuration

♻️ refactor(epic-games): improve path resolution for screenshots

- replace resolve with path.resolve for better path management
2026-01-08 15:43:30 +00:00
nocci
37de92c92e fix: handle epic login captcha manually in legacy/new flows
Some checks failed
build-and-push / lint (push) Failing after 1s
build-and-push / sonar (push) Has been skipped
build-and-push / docker (push) Has been skipped
2025-12-31 13:50:14 +00:00
nocci
7a9f31df7c feat: add optional new epic claimer mode
All checks were successful
build-and-push / lint (push) Successful in 5s
build-and-push / sonar (push) Successful in 12s
build-and-push / docker (push) Successful in 1m13s
2025-12-31 12:25:07 +00:00
nocci
a477bb3327 Fix lint: guard browser globals and normalize indentation
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 1m12s
2025-12-30 16:47:46 +00:00
nocci
7ffc454e47 Clean up Sonar issues and lint warnings
Some checks failed
build-and-push / lint (push) Failing after 5s
build-and-push / sonar (push) Has been skipped
build-and-push / docker (push) Has been skipped
2025-12-30 16:45:17 +00:00
nocci
52895fd991 Fix eslint no-unused-vars in async handlers
Some checks failed
build-and-push / lint (push) Failing after 4s
build-and-push / sonar (push) Has been skipped
build-and-push / docker (push) Has been skipped
2025-12-30 16:15:14 +00:00
nocci
3fd861f134 Fix eslint no-empty and clean tests
Some checks failed
build-and-push / lint (push) Failing after 4s
build-and-push / sonar (push) Has been skipped
build-and-push / docker (push) Has been skipped
2025-12-30 16:13:15 +00:00
nocci
5f919039ab Clean Sonar issues in store scripts
Some checks failed
build-and-push / lint (push) Failing after 4s
build-and-push / sonar (push) Has been skipped
build-and-push / docker (push) Has been skipped
2025-12-30 16:08:59 +00:00
nocci
405e801851 Clean Sonar findings: merge RUNs, drop commented code, update node imports
All checks were successful
build-and-push / lint (push) Successful in 4s
build-and-push / sonar (push) Successful in 11s
build-and-push / docker (push) Successful in 1m13s
2025-12-30 15:39:11 +00:00
Ralf Vogler
726db4527b Current free game title in blue 2025-04-15 17:26:27 +02:00
Ralf Vogler
ea69c76b50 eg: fix #449: only notify once if 'Game already in library' 2025-03-11 10:14:42 +01:00
Ralf Vogler
3626fc1762 fixup #417 2025-03-05 16:17:48 +01:00
NeoMod
b3ab8f7830
Fixed missing game link in notification for epic-games on captcha halt
This fixes the "game link" missing from notification when checking Epic Games Store and encountering a captcha, as per #259 should have been but instead wasn't. Issue was identified in #402 comment by "vttc08" (https://github.com/vogler/free-games-claimer/issues/402#issuecomment-2510818082)

I also added the missing notification for "Game Already in Library" for Epic Games Store, since I felt it is useful because it provides an easy way to know if the script is working or not during scheduled usage.

This also provided the opportunity to check if the game url link was handled properly outside "Discord": I have added a commented option where one could activate the "Already in Library" notification that will also provide the game url link for easy verification.
2025-01-01 15:31:04 +01:00
Ralf Vogler
c8cf7362fa eg: wait for purchaseBtn to have some text, fixes #375 2024-09-01 01:20:45 +02:00
Ralf Vogler
fef5b97e3b eg: wait for purchaseBtn, without it didn't detect bundle as already claimed 2024-08-29 20:23:43 +02:00
Ralf Vogler
292aadae3c eg: list games included in a bundle 2024-08-29 20:06:59 +02:00
Ralf Vogler
7279ba06e8 eg: change back to purchase-cta-button from 'aside button', fixes #374 2024-08-29 19:48:28 +02:00
Ralf Vogler
c8e0640490 eg: #371: dump HTML in case of EULA popup to find new locator
https://github.com/vogler/free-games-claimer/issues/371
2024-08-29 12:46:28 +02:00
Ralf Vogler
d9e91d22c9 eg: fix changed button locators 2024-08-01 15:46:41 +02:00
Ralf Vogler
17f1ee41c9 eg: don't exit on login error since it may be 'Incorrect response' for captcha
https://github.com/vogler/free-games-claimer/issues/183#issuecomment-2195691372
2024-06-27 23:32:15 +02:00
Ralf Vogler
aee72327ea eg: disable webgl since it leaks running virtualized, #183 2024-06-27 15:41:58 +02:00
Ralf Vogler
00275d825b eg: forgot to catch timeout for captcha detection 2024-06-27 15:40:45 +02:00
Ralf Vogler
e154b74e4d eg: TODO handle base game for add-ons via function 2024-06-27 14:09:37 +02:00
Ralf Vogler
9af36e902c eg: fix login: password now together with email again, detect login error, closes #338, closes #337 2024-06-26 17:16:38 +02:00
Ralf Vogler
55226933c0 filenamify datetime recordHar for Windows : -> ., fix #336 2024-06-25 15:30:02 +02:00
Ralf Vogler
9ef9798626 eg: detect 'Failed to challenge captcha, please try again later.' 2024-05-23 15:55:07 +02:00
Ralf Vogler
e49fa930e0 eg: claim base game before add-on 2024-05-23 15:54:23 +02:00
Ralf Vogler
3338d08a1d eg: fix title for Bundles, TODO got stuck after
happened for 'LISA: The Definitive Edition' - https://store.epicgames.com/en-US/bundles/lisa-the-definitive-edition
2024-05-02 16:58:31 +02:00
Ralf Vogler
28bcceb285 eg: enter date of birth if age confirmation pops up, #275 2023-12-31 16:58:56 +01:00
Ralf Vogler
c3657f05ac workaround for cropped viewport (Playwright regression), fixes #277 2023-12-28 17:56:09 +01:00
Ralf Vogler
7ca79bd413 eg: debug window.screen 2023-12-28 17:31:23 +01:00
Ralf Vogler
105f6f414a eg: only ask for password after email submit -> notice captcha before 2023-12-26 17:49:51 +01:00
Ralf Vogler
64676795d1 mv {config,migrate,util,version}.js src/ 2023-12-26 17:09:14 +01:00
Ralf Vogler
09a364c67d extract chrome-specific comments/args into util.js/launchChromium 2023-12-26 16:48:25 +01:00
Ralf Vogler
68b66444ca eg: set cookie to void 'please provide your date of birth', closes #275 2023-12-24 15:52:59 +01:00
Ralf Vogler
9f97805517 debug navigator.{userAgent, platform} 2023-12-21 16:38:12 +01:00
Ralf Vogler
30957d63d0 DEBUG_NETWORK=1 to log network requests and responses instead of DEBUG && RECORD 2023-12-21 16:16:48 +01:00
Ralf Vogler
19e9bb9cfc eg: changed: move password fill and fix captcha locators, #260 2023-12-21 01:55:54 +01:00
Ralf Vogler
76597f4315 eg: include link to game in captcha notification, closes #259
TODO use purchaseURL from https://github.com/vogler/free-games-claimer/pull/130
2023-12-19 11:52:35 +01:00
Ralf Vogler
0832ae57f5 run eslint --fix . 2023-11-08 01:16:49 +01:00
Ralf Vogler
e4e4f2eafa fix eslint errors 2023-11-07 18:10:22 +01:00