Added
- The container runs with a read-only filesystem (#58) – with
read_only: trueand/tmpas tmpfs,docker-entrypoint.shno longer writes a user into/etcand keeps its home folder in/tmp, also withPUID. The README shows a hardened compose. - The Fanatical newsletter is taken back out – when a claim signs you up for Fanatical's newsletter,
_claim_fanatical_game()insrc/stores/gamerpower.pyunsubscribes you again afterwards; a newsletter you already had stays. SetFANATICAL_NEWSLETTER=trueto keep it, likeGOG_NEWSLETTER. - A way to support the project – the README has a Buy Me a Coffee button under "Support the project", and
.github/FUNDING.ymlputs a Sponsor button on the repository page. The bot stays free for everyone; support helps cover its costs and the time that goes into it.
Fixed
- Fanatical giveaways are claimed to the end (#71) –
_claim_fanatical_game()insrc/stores/gamerpower.pyno longer takes a valid session for a logged-out one and finishes the free checkout; the key of the completed order is activated on Steam. Link Steam on Fanatical once: a giveaway that needs it shows asfailed:steam-not-linked. - Epic sign-in no longer ends on "Sign in with Apple" (#72, PR #74 by @privatepenguinzero) –
_press_sign_in()insrc/stores/epic.pylost its text search for "Sign in", which could pick the Apple link. Epic's and Fab's sign-in page lookups (epic.py,epic_fab.py) now use exact CSS selectors. - AliExpress accounts on a country site work (#73, PR #74 by @privatepenguinzero) –
src/stores/aliexpress.pynotices when the coin page redirects to a country site such as it.aliexpress.com, remembers it in the browser profile and uses that country's mobile coin page next time. "Raccogli" now counts as the check-in button. No setting needed. - AliExpress knows you are signed in, in any language (#73) –
_is_logged_in()insrc/stores/aliexpress.pynow reads the check-in calendar the coin page loads for your account, so a page in Italian or any other language no longer sends the bot to the login page. The page's words stay as a fallback. - A hardened container starts again after a hard stop (#58) – with
PUIDandcap_drop: ALL,docker-entrypoint.shcould not delete a profile lock Chrome left behind and the container restarted forever. It now leaves that lock to the bot, which clears it itself.