Citrinate / FreePackages

An ASF plugin for finding and redeeming free Steam games
Apache License 2.0
87 stars 2 forks source link

[Feature Request] MinReviewScore Delay #30

Closed PhasecoreX closed 3 months ago

PhasecoreX commented 3 months ago

Hello! I noticed that the game Content Warning came out today, along with a No Cost promotional package available for 24 hours. I assumed that FreePackages would pick this up, but it didn't. These are my settings:

"EnableFreePackages": true,
  "FreePackagesFilters": [
    {
      "Types": [
        "DLC"
      ]
    },
    {
      "Types": [
        "Game"
      ],
      "Languages": [
        "english"
      ],
      "MinReviewScore": 6,
      "IgnoreFreeWeekends": true,
      "NoCostOnly": true
    }
  ]

The only part of the config that might be ignoring the game would be the MinReviewScore, as at the time of processing, my guess is that there were zero reviews.

My feature request is for there to be some sort of cache that holds onto free packages that don't have the required review score but otherwise match on all the other settings, so that perhaps in a couple of hours it'll have the target review score and can be added. In this case, it's at about 91%, so well over the threshold for this config. However, since it was checked right when it was made available with no reviews, it won't be added (unless another package change happens between now and the 24 hours later when it becomes not free).

Also, I am assuming that this is the reason it wasn't added. If I missed something or configured something wrong please let me know. My guess is that if this was a highly-rated existing game that went on sale for 24 hours it would have been picked up just fine. But it's this edge case where a brand new game doesn't have enough reviews to get picked up.

woctezuma commented 3 months ago

For this specific scenario, I suggest to remove your filters (including MinReviewScore) as No Cost packages are rare anyway. For instance, after the first quarter of 2024, only 6 games and 1 application have been encountered:

  1. Train Simulator Classic Free To Keep (Game+DLC) !addlicense ASF s/981318
  2. Party Animals Friend's Pass Free To Keep (Game) !addlicense ASF s/1000589
  3. Ultimate Zombie Defense Free To Keep (Game) !addlicense ASF s/979417
  4. RPG Maker XP Free To Keep (Application) !addlicense ASF s/1011710
  5. Dead Island: Riptide Definitive Edition Free To Keep (Game) !addlicense ASF s/988979
  6. Space Crew: Legendary Edition Free To Keep (Game) !addlicense ASF s/1020633
  7. Content Warning Free To Keep (Game) !addlicense ASF s/1033864
PhasecoreX commented 3 months ago

Ah, I didn't realize that it was so few games/applications. I also kinda figured some delay thing would have been a decent architectural change/overkill and might not have been worth it anyway. I'll just remove the MinReviewScore then for this filter. Thanks!

Citrinate commented 2 months ago

True, a delay would have been quite the hassle to implement. While I agree that just not using MinReviewScore here is a good enough solution, I've decided to add a MinDaysOld filter which could help here while also being generally more useful:

MinDaysOld

uint type with default value of 0. Packages must contain an app which was released on Steam within the last MinDaysOld days or they will not be added to your account. You can leave this at 0 to not filter by release date.

You could then change the original config to only ignore the review score on NoCost packages if they have a game which was released in the last 24 hours.

"FreePackagesFilters": [
    {
      "Types": [
        "DLC"
      ]
    },
    {
      "Types": [
        "Game"
      ],
      "Languages": [
        "english"
      ],
      "MinReviewScore": 6,
      "IgnoreFreeWeekends": true,
      "NoCostOnly": true
    },
    {
      "Types": [
        "Game"
      ],
      "Languages": [
        "english"
      ],
      "MinDaysOld": 1,
      "IgnoreFreeWeekends": true,
      "NoCostOnly": true
    }
  ]

If you'd like to test this feature you can download the latest build here: FreePackages V1.5.0.0

PhasecoreX commented 1 month ago

Sorry I took a month to reply to this... but thank you for this new MinDaysOld option! I have updated my config to what you have shown above and loaded the latest build. It'll probably take a while to actually test this, due to no cost games being rare in the first place. I'll keep watch over free game sources and what ends up being claimed automatically. Thank you again!