github P-Adamiec/Free-Games-Claimer-Remaster v1.15

3 hours ago

Added

  • Issue forms for bugs, ideas and anything else – .github/ISSUE_TEMPLATE/ asks you to update first, a bug or an idea also to search earlier issues, and a bug for its version and log. Blank issues are off, setup questions can go to Discussions, and the morning digest shows what an issue says instead of the form's headings.

Changed

  • Epic visits game pages less often, and the way a person does – _claim_game() in src/stores/epic.py clicks a game's tile on the free games list, where it has one, instead of typing its address, and reads the page of a game you have, or one blocked in your region, again only after three days: two visits a week instead of about fourteen.

Fixed

  • A Cloudflare check on an Epic game page is no longer taken for the game (#86, by @LOCKhart07) – _claim_game() and _confirm_in_library() recognise the "One more step" page and wait for it to pass. A game you do not have yet comes to you over VNC under its real name, and the page is not reloaded over and over.
  • Games are kept under your sign-in name – account_key() in src/core/claimer.py saves Epic, Fab, Steam and Ubisoft games under EG_EMAIL, STEAM_USERNAME or UBI_EMAIL, not a profile name the page may hide. Each game is saved once, and Epic, Fab and Ubisoft no longer take one you own for new; their next run rereads current giveaways.
  • DEBUG_SCREENSHOTS sends only failures – take_screenshot() in src/core/claimer.py no longer sends the screenshots taken after a claim on Steam, Prime, Fanatical, itch.io and IndieGala, or after Steam skips a paid game, so a giveaway that ended no longer brings a screenshot every run. They stay in data/screenshots/.
  • Fab never orders an asset that costs money – _complete_checkout() in src/stores/epic_fab.py reads the total in Epic's checkout frame first and orders only when it is zero, as Epic does for games. A price ends as skipped:not-free, and a total it cannot read orders nothing.
  • Fanatical pays only on a zero total it can see – _fanatical_checkout() in src/stores/gamerpower.py presses the pay button only when that same read of your cart shows a total of zero, never on an earlier one.
  • The morning issue labelling runs again – .github/workflows/issue-digest.yml installs bubblewrap before the agent starts, which the newest Claude Code needs to keep the workflow's secrets out of the agent's commands. Without it the labelling stopped before it began, while the digest still went out.

Security

  • Telegram bot token no longer in DEBUG logs (#86, by @LOCKhart07) – main.py now quiets urllib3, whose request lines carried the bot token from NOTIFY.
  • Your secrets and game codes are masked in the log – src/core/redact.py masks every log line, DEBUG_LIBS=true included: passwords, two-factor secrets and sign-in names from .env, any e-mail address, your name in a store, the tokens in NOTIFY and DISCORD_WEBHOOK, and game codes, which keep five characters. Notifications stay whole.

Don't miss a new Free-Games-Claimer-Remaster release

NewReleases is sending notifications on new releases.