vogler / free-games-claimer

Automatically claims free games on the Epic Games Store, Amazon Prime Gaming and GOG.
GNU Affero General Public License v3.0
2.29k stars 142 forks source link

Redeem keys on external stores (GOG, Microsoft, Legacy Games) #5

Open vogler opened 2 years ago

vogler commented 2 years ago

TODO for prime-gaming: redeem shown game keys on external stores:

From README:

Claiming the Amazon Games works out-of-the-box, however, for games on external stores you need to either link your account or redeem a key.

  • Stores that require account linking: Epic Games, Battle.net, Origin.
  • Stores that require redeeming a key: GOG.com, Microsoft Games, Legacy Games.
EQUALIT-CG commented 1 year ago

I have that it takes a screen shot of the Redeem keys

I know this maybe a little bit more work but would be nice to name the Redeem keys as well as placing them in folder for the right month and what not reason have 100 or more Redeem keys would take time to go though each photo etc etc

I can tell you I never Redeem Epic games free games because i couldn't be stuffed logging in and clicking a button etc etc

some what same goes for Redeem keys on external stores etc etc

vogler commented 1 year ago

The screenshots are just a fallback. The keys are also stored in data/prime-gaming.json (just search for "code").

Example:

    "Doors: Paradox": {
      "title": "Doors: Paradox",
      "time": "2022-12-29 14:27:59.367",
      "store": "internal"
    },
    "Dishonored 2": {
      "title": "Dishonored 2",
      "time": "2022-12-29 14:28:01.425",
      "store": "gog.com",
      "code": "NNEK0987AB20DFBF8F",
      "url": "https://gaming.amazon.com/loot/dishonored2?ingress=amzn&ref_=SM_D2F_P1_CRWN"
    },
    "Quake": {
      "title": "Quake",
      "time": "2022-12-29 14:28:12.829",
      "store": "epic games store",
      "url": "https://gaming.amazon.com/loot/quake?ingress=amzn&ref_=SM_Q01F_P1_CRWN"
    },
EQUALIT-CG commented 1 year ago

from what i can tell this has be resolved case close

I can't close this support ticket

vogler commented 1 year ago

No, the issue was about claiming keys on external stores.

Underestimated commented 1 year ago

In the meantime, would it be possible to make the script call an external notification service (like Pushover or a webhook) to notify the end user that there's something to claim? Some of the external keys are time limited, and if they're not claimed within the month they expire. By generating a notification if there's something new claimed that requires manual intervention, it would help with people like myself who are running the tool headless on a headless device. It could also be used to notify the user if they need to update their passwords, or enter a captcha via VNC to keep the service running

vogler commented 1 year ago

Yes, I wanted to add https://github.com/caronc/apprise, but haven't gotten around to it.

vogler commented 1 year ago

Notifications merged with #49.

Screenshot 2023-01-25 at 20 01 04

Underestimated commented 1 year ago

Thanks! That’s awesome, it’s gonna make it easier on me too, much appreciated.

vogler commented 1 year ago

I added a WIP option PG_REDEEM, but I can't test it further without unused keys to redeem. The log will include a line Response: .... Please post yours if it is not already listed in the initial post above.

Izanagi52 commented 1 year ago

Hello, here is my contribution:

Trying to redeem XXXXXXXXXXX on gog.com (need to be logged in)! Response: {"code":"XXXXXXXXXXX","codeSeries":"ZUCM","expirationDate":1684598400,"codeType":"seriesCode","productsToSelect":1,"message":null,"discountAmount":null,"gifter":null,"products":[{"productId":"1353674058","title":"The Beast Inside - Amazon Prime","cover":"https:\/\/images.gog-statics.com\/bfbbbd941e6ef18836ec1844c58d9317020a2495ff49c3ccb3398765f752e46e.jpg","image":"https:\/\/images.gog-statics.com\/9d7844741c2e98d156d9c0b8b2b7b90e21a9c743fd962b4c00ea53b023dc221b_{formatter}.png","developers":["Illusion Ray Studio"],"storeUrl":"https:\/\/www.gog.com\/en\/game\/the_beast_inside_amazon_prime","requiredProducts":[],"includedProducts":["1341028548"],"productType":"other","supportedOperatingSystems":["windows"],"extraInfo":[]}],"redeemPageUrl":"https:\/\/www.gog.com\/redeem\/XXXXXXXXXXX"} TypeError: Cannot read properties of undefined (reading 'includes') at file:///fgc/prime-gaming.js:176:24

vogler commented 1 year ago

@Izanagi52 Thanks, undefined reason fixed. Was the game claimed afterwards?

Izanagi52 commented 1 year ago

No it wasn't. I have claimed it manually

kennymc-c commented 1 year ago

Just tried it with but got no response code at all after waiting several minutes. It just stops and doesn't continue with GOG. The key wasn't claimed on Legacy Games and had to be manually redeemed afterwards.

2023-04-27 19:32:24.451 started checking prime-gaming
Signed in as kennymc.c
Number of already claimed games (total): 14
Number of free unclaimed games (Prime Gaming): 0
Number of free unclaimed games (external stores): 1
Current free game: Looking for Aliens
External store: legacy games
Code to redeem game: xxx
URL to redeem game: https://promo.legacygames.com/looking-for-aliens-prime-deal
Trying to redeem xxx on legacy games (need to be logged in)!
Redeem on legacy games not yet tested!
Redeemed successfully? Please report problems in https://github.com/vogler/free-games-claimer/issues/5
Izanagi52 commented 1 year ago

Same logs as above, and the script doesn't continue after that too (even after almost 30 minutes). But for me, the key was successfully redeemed.

I closed the legacy game tabs via VNC, and the script resumed, and successfully finished without error.

Izanagi52 commented 1 year ago

For Legacy Games, the game is redeemed, but the script stop and doesn't continue automatically (so notification are not send, and it doesn't continue to GOG) And after a while, it crash with this log : unexpected EOF

vogler commented 1 year ago

@Izanagi52 The timeout was due to a debugging pause, should be fixed with a90f90afc098b3043ee1ef90e57164b748d3b6dc (fixup: 22f673282b12d3f047c3c25e4d8650e299d9ae74).

Izanagi52 commented 1 year ago

@vogler Yes, I can confirm it works perfectly now!

Paffnsn commented 11 months ago

What do I need to set instead of a "0" as a default entry to redeem for example games on the epic store?

vogler commented 11 months ago

@Paffnsn There's just 0 and 1 which will try to redeem games for all external stores. For epic-games you just need to have your account linked on prime-gaming.

kennymc-c commented 11 months ago

I noticed that when an external (Epic) account is not linked (anymore) the script doesn't recognizing this and treats every try to claim an external game as a successful claim although the game has not been claimed.

lostb1t commented 10 months ago

I noticed that when an external (Epic) account is not linked (anymore) the script doesn't recognizing this and treats every try to claim an external game as a successful claim although the game has not been claimed.

bit if the same for gog. When a redeem is unsuccesfull (gog captcha for example) then it will never retry.

vogler commented 10 months ago

When a redeem is unsuccesfull (gog captcha for example) then it will never retry.

That is true, prime-gaming.js just checks for unclaimed games, and after getting the key, it's claimed on prime-gaming. However, the notification should say that it failed and include the key and link to redeem it.

Could maybe add some option to retry keys in data/prime-gaming.json that have been claimed from prime-gaming but not successfully redeemed on the external store.