nosyn00b / playnite-fanatical-plugin

Plugin that imports Fanatical Games in Playnite
MIT License
4 stars 1 forks source link

Failed to import linked account Fanatical games details #3

Closed SparrowBrain closed 1 year ago

SparrowBrain commented 1 year ago

After buying some games recently the extension started throwing an exception during import.

12-04 10:33:40.179|INFO |FanaticalLibrary#FanaticalAccountClient:Current Playnite.SDK, Version=6.9.0.0, Culture=neutral, PublicKeyToken=null does not support Javascript Event Messaging. Using old way unoptimized strategy
12-04 10:33:40.779|INFO |FanaticalLibrary#FanaticalAccountClient:Current authentication token is valid.
12-04 10:33:41.647|ERROR|FanaticalLibrary#FanaticalLibrary:Failed to import linked account Fanatical games details.
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: {. Path '[0].order.gift_order', line 1, position 973.
   at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
   at Newtonsoft.Json.JsonTextReader.ReadAsString()
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Playnite.Common.Serialization.FromJson[T](String json) in C:\projects\playnite\source\Playnite\Common\Serialization.cs:line 336
   at Playnite.Common.DataSerializer.FromJson[T](String json) in C:\projects\playnite\source\Playnite\Common\Serialization.cs:line 80
   at Playnite.SDK.Data.Serialization.FromJson[T](String json) in C:\projects\playnite\source\PlayniteSDK\Data\DataSerialization.cs:line 406
   at FanaticalLibrary.Services.FanaticalAccountClient.GetLibraryItems() in D:\Develop\GitProjects\playnite-fanatical-plugin\source\Services\FanaticalAccountClient.cs:line 475
   at FanaticalLibrary.FanaticalLibrary.GetLibraryItems() in D:\Develop\GitProjects\playnite-fanatical-plugin\source\FanaticalLibrary.cs:line 44
   at FanaticalLibrary.FanaticalLibrary.GetGames(LibraryGetGamesArgs args) in D:\Develop\GitProjects\playnite-fanatical-plugin\source\FanaticalLibrary.cs:line 61

Will try to get the actual JSON if I can at a later time.

Rondrian82 commented 1 year ago

I have the exact same problem., with the same Exception in the Log File.

nosyn00b commented 1 year ago

Hi, It seems some of the games you purchased have some unexpected value in the "gift_order" attribute that broke the JSON syntax expected from the Newtonsoft JSON library.

To have a better check we need the JSON as you suggest (and possibly some detail about the game that perhaps broke the syntax).

You can get the JSON a bit more easily using GOG Galaxy with the Fanatical library connector (that is also one of my repositories :-): there are more debugging options in that version, and if I remember correctly you can also extract the JSON (hoping the JSON it's extracted "before the parsing" if it's a parsing problem).

Rondrian82 commented 1 year ago

Hm... okay, I tried to get it with GOG Galaxy, but I can't complete the login, because the browser window never shows the login page... 2023-04-13_12h40_46

Rondrian82 commented 1 year ago

Do you know how I can get the JSON in Playnite. If I know, where I can get it, I could provide it... Which game(s) make the problem, I don't know... I have quite a lot Keys in my Fanatical account.

nosyn00b commented 1 year ago

Sadly I confirm that the GOG plugin's first login was broken by some of the last Fanatical site releases... let me check and possibly solve that problem first: I do not remember any simple OOTB way to have the JSON in the Playnite plugin. Hopefully, I'll come back to this thread when solved the other one!

SparrowBrain commented 1 year ago

Managed to query https://www.fanatical.com/api/user/keys from my browser.

Here's the response:

[
  {
    "_id": "62160539f382dd007deac229",
    "iid": "6433206fffb3af46d7a19026",
    "cover": "d280e988-f58f-4aae-ba1c-e07de36bf49d.jpeg",
    "name": "Rebel Galaxy Outlaw",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "stotal": 0,
      "vat": 0,
      "total": 0
    },
    "supplier_id": "60ed6fd494bf34007d34c9cb",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "640afba8bcf7584c3253e3ea",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "6433206fffb3af46d7a19025",
      "date": "2023-04-09T20:30:39.498Z",
      "status": "COMPLETE",
      "gift_order": {}
    },
    "purchased": "2023-04-09T20:30:39.498Z",
    "isGiftRecipient": false
  },
  {
    "_id": "5bbc6ae8ce00e67512eccbc7",
    "iid": "64331b8fe17f5935c7ae8547",
    "cover": "74cda46b-0db0-474d-bce6-ed605a0a1a93.jpeg",
    "name": "Ion Fury",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": true
    },
    "giveaway": false,
    "ubisoft_ska": false,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "stotal": 572,
      "vat": 120,
      "total": 692,
      "discountPercent": 0,
      "discountAmount": 0
    },
    "supplier_id": "55db244ad3b050fe108b46c5",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "5bbc6d9c49764d0077efec8f",
    "report": {
      "total": 612.5263549067338,
      "vat": 106.21844304741047
    },
    "bundles": [],
    "order": {
      "_id": "64331b8fe17f5935c7ae8546",
      "date": "2023-04-09T20:09:51.302Z",
      "status": "COMPLETE",
      "gift_order": {}
    },
    "purchased": "2023-04-09T20:09:51.302Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "64331b8fe17f5935c7ae854a",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "Survivalist: Invisible Strain",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "6408c01ab2eb83dae381c253",
    "report": {
      "total": 193.84865856152413,
      "vat": 33.63584029834665
    },
    "bundleName": "Mystery Game Bundle - 2 Games",
    "bid": "60367cddfae7830085626ccf",
    "order": {
      "_id": "64331b8fe17f5935c7ae8546",
      "date": "2023-04-09T20:09:51.302Z",
      "status": "COMPLETE",
      "gift_order": {}
    },
    "purchased": "2023-04-09T20:09:51.302Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "64331b8fe17f5935c7ae854b",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "Dark Deity",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "6408c01ab2eb83dae381c254",
    "report": {
      "total": 193.84865856152413,
      "vat": 33.63584029834665
    },
    "bundleName": "Mystery Game Bundle - 2 Games",
    "bid": "60367cddfae7830085626ccf",
    "order": {
      "_id": "64331b8fe17f5935c7ae8546",
      "date": "2023-04-09T20:09:51.302Z",
      "status": "COMPLETE",
      "gift_order": {}
    },
    "purchased": "2023-04-09T20:09:51.302Z",
    "isGiftRecipient": false
  },
  {
    "_id": "60ae5638ef605a0076c3931a",
    "iid": "64331b8fe17f5935c7ae854c",
    "cover": "37baffd1-bd7b-4e42-bca9-196bef811075.jpeg",
    "name": "Operation: Tango",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "stotal": 660,
      "vat": 138,
      "total": 798,
      "discountPercent": 0,
      "discountAmount": 0
    },
    "supplier_id": "55db244ad3b050fe108b45c6",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "62c30df637c2c2007de11abd",
    "report": {
      "total": 706.3526462652796,
      "vat": 122.15120950452204
    },
    "bundles": [],
    "order": {
      "_id": "64331b8fe17f5935c7ae8546",
      "date": "2023-04-09T20:09:51.302Z",
      "status": "COMPLETE",
      "gift_order": {}
    },
    "purchased": "2023-04-09T20:09:51.302Z",
    "isGiftRecipient": false
  },
  {
    "_id": "642574132d4623e936ee2664",
    "iid": "64331b8fe17f5935c7ae8550",
    "cover": "b5461119-17bf-4ce2-a4a3-5f12ef5eeb1e.jpeg",
    "name": "Easter Eggstravaganza - Choice of free game",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": false,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": true,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "stotal": 0,
      "vat": 0,
      "total": 0
    },
    "supplier_id": "5f577aac71be920085440ce8",
    "isFreeProduct": true,
    "preorder": false,
    "reveal_template": "easter egg",
    "order_smallprint": "All free games must be redeemed by 30/4/23 23:59 BST. All conversion rates are correct as of 28/2/23.",
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "64257431742adaa613d9ade9",
    "serialExpiry": "2023-05-14T22:59:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "64331b8fe17f5935c7ae8546",
      "date": "2023-04-09T20:09:51.302Z",
      "status": "COMPLETE",
      "gift_order": {}
    },
    "purchased": "2023-04-09T20:09:51.302Z",
    "isGiftRecipient": false
  },
  {
    "_id": "64104efeedeca0ba52f8b118",
    "iid": "64120b0e614af541b07d590c",
    "cover": "05ac006b-c615-4c74-8d0c-ccf2dc966f43.jpeg",
    "name": "Chenso Club",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "stotal": 0,
      "vat": 0,
      "total": 0,
      "discountPercent": 0,
      "discountAmount": 0
    },
    "supplier_id": "5eb2d237be1eca007eb9427d",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "639717c579578a00765398a6",
    "serialExpiry": "2023-03-31T22:59:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "64120b0e614af541b07d590b",
      "date": "2023-03-15T18:14:38.244Z",
      "status": "COMPLETE"
    },
    "purchased": "2023-03-15T18:14:38.244Z",
    "isGiftRecipient": false
  },
  {
    "_id": "63ea506364cf3506761a9d11",
    "iid": "63ebc7cb545b3e84596e18b0",
    "cover": "1b9d7b93-9126-46de-9ac7-275bad78c6cc.jpeg",
    "name": "Leisure Suit Larry - Retro Bundle",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "uplay": false,
      "rockstar": false,
      "esonline": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "stotal": 0,
      "vat": 0,
      "total": 0,
      "discountPercent": 0,
      "discountAmount": 0
    },
    "supplier_id": "63ea50a664cf3506761a9d16",
    "isFreeProduct": false,
    "preorder": false,
    "order_smallprint": "Game keys to be redeemed by 28th Feb 2023 00:00 GMT",
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "63ea53622b808966cb3fd70d",
    "serialExpiry": "2023-02-28T23:59:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "63ebc7cb545b3e84596e18af",
      "date": "2023-02-14T17:41:31.716Z",
      "status": "COMPLETE"
    },
    "purchased": "2023-02-14T17:41:31.716Z",
    "isGiftRecipient": false
  },
  {
    "_id": "5e8f099de5364e1c83facc6e",
    "iid": "63ae19764a892003478da215",
    "cover": "8c808f99-4c45-415e-aa68-71866b86a2f8.jpeg",
    "name": "Escape from Monkey Island™",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": "ab3b49af-6d10-4614-a3d7-f96a236aaa43",
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 119,
      "vat": 21,
      "stotal": 98
    },
    "supplier_id": "57835c236bd8ea0e000b8352",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "63a3919cc577cb006151dd70",
    "report": {
      "total": 105.24121974624161,
      "vat": 18.57197995521911
    },
    "bundles": [],
    "order": {
      "_id": "63ae19764a892003478da211",
      "date": "2022-12-29T22:49:26.019Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-12-29T22:49:26.019Z",
    "isGiftRecipient": false
  },
  {
    "_id": "60643e2a0c704f007d76a659",
    "iid": "63ae19764a892003478da214",
    "cover": "f0cc27db-0961-499a-beff-4bd7a67eeb7b.jpeg",
    "name": "HELLDIVERS™ Digital Deluxe Edition",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": "8d6b6021-4e1d-49bb-ab08-e4487d226ddf",
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 629,
      "vat": 109,
      "stotal": 520
    },
    "supplier_id": "6048e2ee3b689d00769d8640",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "639f9870aa39dd0061e54ef4",
    "report": {
      "total": 556.2750186587057,
      "vat": 96.39741976756585
    },
    "bundles": [],
    "order": {
      "_id": "63ae19764a892003478da211",
      "date": "2022-12-29T22:49:26.019Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-12-29T22:49:26.019Z",
    "isGiftRecipient": false
  },
  {
    "_id": "5798ce3f9e1eb88c6925b429",
    "iid": "63ae19764a892003478da213",
    "cover": "2e42b60d-7d54-4049-a193-d4df7d43da32.jpg",
    "name": "Monkey Island: Special Edition Bundle",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": false,
    "ubisoft_ska": false,
    "downloads": [],
    "support_link": "",
    "genbaId": "e377c5ea-20b2-4013-ac21-9a66bf87d015",
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 314,
      "vat": 54,
      "stotal": 260
    },
    "supplier_id": "57835c236bd8ea0e000b8352",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "63a67b9c6d0e6c0061ba2929",
    "report": {
      "total": 277.69531933041907,
      "vat": 47.75651988484913
    },
    "bundles": [],
    "order": {
      "_id": "63ae19764a892003478da211",
      "date": "2022-12-29T22:49:26.019Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-12-29T22:49:26.019Z",
    "isGiftRecipient": false
  },
  {
    "_id": "5e8f0aaae5364e1c83fb0bdd",
    "iid": "63ae19764a892003478da212",
    "cover": "0e1614f6-b1f2-4f69-a41d-0157a512a1c4.jpeg",
    "name": "The Curse of Monkey Island",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": true,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": "a304367a-f7da-4fc9-a6a8-d1f6190cb3a7",
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 119,
      "vat": 21,
      "stotal": 98
    },
    "supplier_id": "57835c236bd8ea0e000b8352",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "63a8488619536d00611fa645",
    "report": {
      "total": 105.24121974624161,
      "vat": 18.57197995521911
    },
    "bundles": [],
    "order": {
      "_id": "63ae19764a892003478da211",
      "date": "2022-12-29T22:49:26.019Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-12-29T22:49:26.019Z",
    "isGiftRecipient": false
  },
  {
    "_id": "637e08a741c355007d2649a6",
    "iid": "639a19aea112f4029bcf5589",
    "cover": "8a99bfdc-ccd1-46cf-ad4a-9c3ac2d6953c.jpeg",
    "name": "Behold the Kickmen",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": true,
      "mac": true,
      "linux": false
    },
    "giveaway": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "637e0090f222ae0076fca87b",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "638741ab44b57002106afe97",
    "serialExpiry": "2023-01-14T00:00:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "639a19aea112f4029bcf5588",
      "date": "2022-12-14T18:45:02.950Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-12-14T18:45:02.950Z",
    "isGiftRecipient": false
  },
  {
    "_id": "6376585a5aca6200762fbf6b",
    "iid": "638cc129a78bbb011b642b43",
    "cover": "0bfc34b5-d97b-462b-9226-20e818b18546.jpeg",
    "name": "voucher:FREE SPEND - $1",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "55db244ad3b050fe108b456b",
    "isFreeProduct": false,
    "preorder": false,
    "reveal_template": "wheel alt",
    "order_smallprint": "All spins must be redeemed by 31/12/22 23:59 GMT. All conversion rates are correct as of 16/11/22.",
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "637771c7820e1b007dcb67df",
    "serialExpiry": "2022-12-31T23:59:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "638cc129a78bbb011b642b42",
      "date": "2022-12-04T15:47:53.127Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-12-04T15:47:53.127Z",
    "isGiftRecipient": false
  },
  {
    "_id": "637e2d6d5a4b77007e7f5fe5",
    "iid": "637fc40669b1cc00f9626cdf",
    "cover": "2b989f5d-b6b6-4772-8db9-655fdba67dab.jpeg",
    "name": "Garfield Kart - Furious Racing",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false,
      "playstation": false,
      "roblox": false,
      "xbox": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "5ea6f257e4decc008588626e",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "637e3db05a4b77007e803a6a",
    "serialExpiry": "2022-12-08T08:00:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "637fc40669b1cc00f9626cde",
      "date": "2022-11-24T19:20:38.225Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-24T19:20:38.225Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61a7478e5fd70f007617da05",
    "iid": "637b74cb4c12aa0093cb0a91",
    "cover": "a710aa04-bf38-46e7-96e1-7c9a457f489c.jpeg",
    "name": "Twin Mirror",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "discountAmount": 28,
      "discountType": null,
      "discountPercent": 5,
      "total": 559,
      "vat": 97,
      "stotal": 462
    },
    "supplier_id": "55db244ad3b050fe108b45c6",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "61a78919b90a92007ddf04a1",
    "report": {
      "total": 484.4555292976166,
      "vat": 84.06473406416603
    },
    "bundles": [],
    "order": {
      "_id": "637b74cb4c12aa0093cb0a90",
      "date": "2022-11-21T12:53:31.647Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-21T12:53:31.647Z",
    "isGiftRecipient": false
  },
  {
    "_id": "5798c96c9e1eb88c6925b41f",
    "iid": "636ea8658795860147b02ca7",
    "cover": "aab10bd2-186d-4e83-8284-dda9218d1e9c.jpg",
    "name": "Split/Second",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": false,
    "ubisoft_ska": false,
    "downloads": [],
    "support_link": "",
    "genbaId": "b1b8caec-1f41-4004-b57d-e7bd6f4b791d",
    "zenvaId": "",
    "payment": {
      "discountAmount": 18,
      "discountType": null,
      "discountPercent": 5,
      "total": 369,
      "vat": 64,
      "stotal": 305
    },
    "supplier_id": "57835c236bd8ea0e000b8352",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "636bb79e6bb91900613ade77",
    "report": {
      "total": 322.77624640447794,
      "vat": 55.98287200511271
    },
    "bundles": [],
    "order": {
      "_id": "636ea8658795860147b02ca6",
      "date": "2022-11-11T19:54:13.015Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-11T19:54:13.015Z",
    "isGiftRecipient": false
  },
  {
    "_id": "6357edb221279f0076fa848f",
    "iid": "6365ef2f46ae0c032557001b",
    "cover": "35deb43f-ccfe-4b20-b640-45386fd3f148.jpeg",
    "name": "Wayward Souls",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "6360fcc635f3f10076e83b18",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "6365ef2f46ae0c032557001c",
      "date": "2022-11-05T05:05:51.283Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T05:05:51.283Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "6365edc282f63502671f70a5",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "Shiny The Firefly",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "635269f5160645007df35e27",
    "report": {
      "total": 100.88805970149255,
      "vat": 17.545749513303054
    },
    "bundleName": "Mystery Game Bundle - 1 Game",
    "bid": "631207492b244b007648dfa1",
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "6365edc282f63502671f70a3",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "Circle Empires",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "635269f5160645007df35e28",
    "report": {
      "total": 100.88805970149255,
      "vat": 17.545749513303054
    },
    "bundleName": "Mystery Game Bundle - 1 Game",
    "bid": "631207492b244b007648dfa1",
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "6365edc282f63502671f70a1",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "Fractured Minds",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "635269f5160645007df35e29",
    "report": {
      "total": 100.88805970149255,
      "vat": 17.545749513303054
    },
    "bundleName": "Mystery Game Bundle - 1 Game",
    "bid": "631207492b244b007648dfa1",
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "6365edc282f63502671f709f",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "The Town of Light",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "635269f5160645007df35e2a",
    "report": {
      "total": 100.88805970149255,
      "vat": 17.545749513303054
    },
    "bundleName": "Mystery Game Bundle - 1 Game",
    "bid": "631207492b244b007648dfa1",
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61f95d96f658f2007d5ea065",
    "iid": "6365edc282f63502671f709d",
    "cover": "3acb2e9b-3151-47ae-b913-357bf6f19242.jpeg",
    "name": "The Indie Mixtape",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "635269f5160645007df35e2b",
    "report": {
      "total": 100.88805970149255,
      "vat": 17.545749513303054
    },
    "bundleName": "Mystery Game Bundle - 1 Game",
    "bid": "631207492b244b007648dfa1",
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "58516788789c68307354f54c",
    "iid": "6365edc282f63502671f709b",
    "cover": "374a07bf-ac84-4acc-8db7-bbd3908629fc.jpg",
    "name": "Star Wars Collection",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": false,
    "ubisoft_ska": false,
    "downloads": [],
    "support_link": "",
    "genbaId": "233d9cfe-7988-4a6a-85ca-66333bddf81e",
    "zenvaId": "",
    "supplier_id": "57835c236bd8ea0e000b8352",
    "isFreeProduct": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "63659ac70917ee0061cf7c5b",
    "report": {
      "total": 1794.0528877352372,
      "vat": 311.4370538611292
    },
    "bundleName": "Star Wars Collection",
    "bid": "62b052ce3e7cb6007d26f140",
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "63580d41bdc7e00076e05fc6",
    "iid": "6365edc282f63502671f70a6",
    "cover": "f975fa9b-3838-4220-9f26-16caee11f3ea.jpeg",
    "name": "10th Birthday Bash - Free Gift",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": false,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": true,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": false,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "5f577aac71be920085440ce8",
    "isFreeProduct": true,
    "preorder": false,
    "order_smallprint": "All free gifts must be redeemed by 30/11/22 23:59 GMT.  Free spend prizes will expire on 30/11/22 23:59 GMT and cannot be used after this date. Free spend coupons must all be used in a single transaction and coupons outside of USD territories will be converted to your designated currency.  All conversion rates are correct as of 28/10/22.",
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "63580d723c392900762fcc51",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "6365edc282f63502671f70a7",
      "date": "2022-11-05T04:59:46.403Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-05T04:59:46.403Z",
    "isGiftRecipient": false
  },
  {
    "_id": "635a943b545877007d546668",
    "iid": "63640f6cf3b62f0088da1f38",
    "cover": "c2c226e7-7c27-4fe4-8300-efd7cd307ab3.jpeg",
    "name": "Internet Cafe Simulator",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "60cb72ac34167f00761cfcab",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "6357daadcf743a007e72c05d",
    "serialExpiry": "2022-12-02T00:00:00.000Z",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "63640f6cf3b62f0088da1f3b",
      "date": "2022-11-03T18:58:52.361Z",
      "status": "COMPLETE"
    },
    "purchased": "2022-11-03T18:58:52.361Z",
    "isGiftRecipient": false
  },
  {
    "_id": "607edf1cff4d87007d4a0b6e",
    "iid": "61a3f9f9994cae009d941fa5",
    "cover": "0efcc595-a0a9-4612-9b3f-84e11090775d.jpeg",
    "name": "Days Gone",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "downloads": [],
    "support_link": "",
    "genbaId": "45dfefef-d11a-4b92-ac56-56d69634d860",
    "zenvaId": "",
    "payment": {
      "discountAmount": 125,
      "discountType": "percent",
      "discountPercent": 5,
      "total": 2499,
      "vat": 434,
      "stotal": 2065
    },
    "supplier_id": "6048e2ee3b689d00769d8640",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "61a2930c49bad80060b02ce8",
    "report": {
      "total": 2118.5365868547783,
      "vat": 367.92512152660015
    },
    "bundles": [],
    "order": {
      "_id": "61a3f9f9994cae009d941fa7",
      "date": "2021-11-28T21:51:53.757Z",
      "status": "COMPLETE"
    },
    "purchased": "2021-11-28T21:51:53.757Z",
    "isGiftRecipient": false
  },
  {
    "_id": "61979d9a696161007d433133",
    "iid": "61a3f9f9994cae009d941fa6",
    "cover": "6a0cda6f-72a4-4e20-88c7-def71712ed22.jpeg",
    "name": "Parkan 2",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": false,
      "mac": false,
      "linux": false
    },
    "mystery": true,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "5b9f7b625389bd0058ab2a1e",
    "isFreeProduct": true,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "6197ba270ea83701e3c329cf",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "61a3f9f9994cae009d941fa7",
      "date": "2021-11-28T21:51:53.757Z",
      "status": "COMPLETE"
    },
    "purchased": "2021-11-28T21:51:53.757Z",
    "isGiftRecipient": false
  },
  {
    "_id": "619cfe074e0b7a0076236c90",
    "iid": "619e8f7e16c5670256349ee1",
    "cover": "02132f1c-bc83-4755-9d98-f41f5397ce21.jpeg",
    "name": "Warhammer: End Times - Vermintide",
    "type": "game",
    "display_type": "game",
    "drm": {
      "drm_free": false,
      "steam": true,
      "origin": false,
      "rockstar": false,
      "esonline": false,
      "uplay": false,
      "oculus": false,
      "bethesda": false,
      "epicgames": false,
      "switch": false,
      "threeds": false,
      "gog": false,
      "magix": false,
      "zenva": false,
      "utalk": false,
      "redeem": false,
      "voucher": false
    },
    "platforms": {
      "windows": true,
      "mac": false,
      "linux": false
    },
    "giveaway": true,
    "ubisoft_ska": false,
    "downloads": [],
    "support_link": "",
    "genbaId": null,
    "zenvaId": "",
    "payment": {
      "discountAmount": 0,
      "discountPercent": 0,
      "total": 0,
      "vat": 0,
      "stotal": 0
    },
    "supplier_id": "5f1eea6da2778d0085d6ae65",
    "isFreeProduct": false,
    "preorder": false,
    "status": "revealed",
    "key": "XXX-REDACTED-XXX",
    "serialId": "619d1fca71c48f00767f07c4",
    "report": {
      "total": 0,
      "vat": 0
    },
    "bundles": [],
    "order": {
      "_id": "619e8f7e16c5670256349ee2",
      "date": "2021-11-24T19:16:14.482Z",
      "status": "COMPLETE"
    },
    "purchased": "2021-11-24T19:16:14.482Z",
    "isGiftRecipient": false
  }
]

gift_order is just an empty object in my case.

nosyn00b commented 1 year ago

Ok, it seems I have to play a bit with the deserializer, will use this JSON (that seems to be perfectly valid) as an example...

Update: is not a deserialization problem, but a data model one... will see how to solve this!

nosyn00b commented 1 year ago

Released a new, hopefully fixed, version, let me know if it's ok!

Rondrian82 commented 1 year ago

Released a new, hopefully fixed, version, let me know if it's ok!

It's working now! No Errors and Keys are imported. Thank you :-)

Rondrian82 commented 1 year ago

One thing: Is it possible to automatically delete the Fanatical entries in Playnite after I redeemed the keys? I only want to have Fanatical game entries in my library, if I don't have the key redeemed. At the moment, after the key was imported, it remains in my library - if I don't want that, I have to delete it manually. It would be great, if that would be possible (maybe optinal).

SparrowBrain commented 1 year ago

No more errors on my side either. Great job!

nosyn00b commented 1 year ago

@Rondrian82, the Plugin Library lacks support for this. I asked Josef Nemek himself, owner of the Playnite project, if can be added, getting a formal no-go ... see https://github.com/JosefNemec/Playnite/issues/2677.

You can try adding a comment to that thread if you want to support the request.

I will close this thread asap, being the issue solved.

Rondrian82 commented 1 year ago

@nosyn00b okay, thank you :-)