Closed msolefonte closed 3 years ago
Please put this on hold. I've to explain how it currently works and why. Why It would have to change. Debate on how we should proceed onwards for the implementation of this feature into celes.
Wall of text coming at a later date
In my mind, Celes launch config should include a variable blackilist: IBlacklistedGame[]
, where IBlacklistedGame
should be {appid: string; source: string; platform: string}
. That way, if, in the showcase, you could mark some games as blacklisted, updating the list passed to Celes. Then, during the scrapping, if appid
, source
and platform
coincide, the game is skipped. Also, source
could be optional.
Waiting for the wall of text.
Any update on this @xan105?
Ok the genesis is a feature request to remove a game from the 'showcase'. Since I'm parsing at each app startup I just did a quick blacklist to remove an appid to being processed.
This blacklist has been repurposed to filter out 'bullshit' appid like 0 or eg: 161545481812485 (This happens A LOT; Logs don't lie) and appid known to not have any achievements
Why because every network request is costly and it significantly boost startup time to filter out these 'rubbish'.
Due to the way api-server v1 works failure to fetch data blacklist an appid to be reviewed by a another script later on (try) to fix it.
The blacklist is server side and it's downloaded by AW each time in addition to the local blacklist.
I wasn't going to have a blacklist server side for api-server v2 as it was troublesome to handle and I don't think I'll have problem retrieving data anymore ( better understanding, steam network, multiple redundancies)
Also, achievement-watcher/achievement-watcher#52 (Unverified)
Before you join in I was thinking to refactor the blacklist to be client side only.
If api-server returns ach data -> ok (cache it) if returns error code like timeout, etc -> do nothing (try again later) if returns 404 (no achievement) -> check with another api that game is released if yes -> blacklist this game because it has no achievement. if not yet released do not blacklist it (yet) probably playing a version before retail is released 🙃
user would still have option to manually add an appid to the blacklist (currently it's appid only; Not a combination of appid/source)
Settings > blacklist would have a better ui where blacklisted appid would have been listed with name, appid, reason and a button to remove it as well as a button to reset all the blacklist
Everything is up for debate as it now relates to celes (and api-server v2).
Agree to have it only client side but not a thing to debate here in Celes. It should not affect how it works.
I think that it would be cool to have two kind of blacklists: one fixed (blacklist.json, mirror of a Github file updated by the showcase when available) and other dynamic based on each user. That should be updated both by the same Celes and showcase, according to user selections.
About UI, I would prefer right click over a game -> Blacklist / Blacklist
Have been giving a though to it. I have a question about this:
if returns 404 (no achievement) -> check with another api that game is released if yes -> blacklist this game because it has no achievement.
I would rather not blacklist the game but just showing it without achievements. Playtime should still be available and it is less confusing than making the user think that the game has not been properly loaded.
@xan105 Cloud ha stopped returning Blacklists. Now it's all internal server error. It's impossible to test it in the current status.
/steam/GetBogusList
Returns 410,gone since there is no blacklist anymore
/steam/ach/:appid
I found a typo last night but only fix it this morning.
Returns 404,not found when there is no achievement or the appid doesn't exist. Returns 400,bad request if appid is invalid
On hold till Cloud is redone and this is properly decided.
Games should be blacklisted by
appid
andplatform
, beingsource
optional.