CMorooney / obsidian-game-search-plugin

Obsidian plugin that automatically creates notes by searching for video games
MIT License
34 stars 9 forks source link

Inaccurate Games and Hours Played #32

Open Handorin opened 1 month ago

Handorin commented 1 month ago

The amount of playtime imported max's out at "23", when I have many games in the 100s of hours. There's also some games with stated playtime that I know for a fact I have not played at all.

That game at "23" hours is stated to be Mass Effect Andromeda, which I don't own at all. Just to further the example, the plugin imported "Mass Effect 2 (2010) Edition", "Mass Effect 2 Firewalker", and Mass Effect Andromeda. What I actually own is Mass Effect, Mass Effect 2, and Mass Effect 2 (2010) Edition.

CMorooney commented 1 month ago

hi @Handorin thanks for opening an issue!

Steam sync is pretty primitive since the backbone of the plugin is the RAWG api. Specifically, when matching a Steam game to a RAWG game, the plugin just queries the RAWG API with the name of the Steam game and grabs the first result and hopes for the best.

I did just publish 0.2.6 that passes a flag to the RAWG search, search_exact and I'm hoping that improves the likelihood that the match grabs the correct game and not something with a similar name.

let me know if this improves things for you!


the playtime fields comes from the RAWG API and according to their documentation should represent the average playtime from Steam. There is currently no way to inject data from the Steam game data into the file templates for your vault (could be added, just isn't available in current version).

Handorin commented 1 month ago

I'll split off comments on playtime, probably should have done that originally. xD

I got interesting results on this sync.

Some of my library games were skipped because they were "wishlisted", but this is the referenced error catcher. if (!c) { new Ze.Notice("Unable to sync " + s + " game " + a), console.warn("[Game Search][Steam Sync] wishlist SKIPPING! " + a); return

One of those "wishlisted" games was Mass Effect, and I'm guessing the real reason it was skipped is that it couldn't be found on RAWG, probably because the Steam name is Mass Effect (2007) for some reason.

Another odd result was that before the update, the pulled game was correct (A Hat in Time), and then after the update, it pulled a different game (A Hat on Time).

Looking at the RAWG API, it looks like you can filter by store. So something that might help the match is filtering by Steam only for Steam Sync. (And sorry if I've missed this in the code, haven't been able to look at it too much). This might prevent another issue I had where pre-update, it correctly found Fall Guys (steam name) and matched it to RAWG's name of Fall Guys Ultimate Knockout. Instead, it matched it with 'fall guys', a knock off someone has on itchio. And another situation where I have 'Rolled Out!' on steam, but it pulled 'Rolled out! (itch)', only available on itchio.

Maybe for these syncs, an output file is made with the Steam Name, RAWG Name, and maybe RAWG URL? Just so it's easier for us to scan to see if we might need to correct any files.

CMorooney commented 1 month ago

These are good ideas/thoughts, much appreciated! I'll try and look at opening a results buffer after the sync completes as well as checking out that flag

CMorooney commented 1 month ago

@Handorin whoops didn't mean to close that -- released these changes with 0.2.7 just now with your suggestion :)

hoping to get to the output buffer another night but hopefully this works better for you

Handorin commented 1 month ago

I started the files from scratch, and it looks like it's still pulling itchio games. And now it's having issues and skipping games it didn't before, like Beat Saber and Portal 2 (in total maybe 20% of my library was skipped)

CMorooney commented 4 weeks ago

@Handorin sorry for the delay

0.2.8 explicitly attempts to exclude itch.io from the RAWG queries during steam sync using exclude_stores param.

CMorooney commented 2 weeks ago

@Handorin 0.2.12 adds a fuzzy compare dependency to try and improve steam sync match. let me know if this improves things for you

Handorin commented 2 weeks ago

Yea! This has greatly improved the games that get synced. I've only found a couple games that aren't correct, but I can't blame it for getting a game called DEADLOCK as the title, referenced as DeadLock in the review, but I own Deadlock. lol

Handorin commented 2 weeks ago

Not sure what to do about this situation exactly: I did a full steam sync, and it imported Among Us VR, but I don't own that. I deleted Among Us VR. I created a new note myself and selected Among Us. I ran a full Steam Sync again, and it still created a note for Among Us VR. It pulled in the same steam play time as Among Us.

Is it likely for someone to run a full sync after the first time? Probably not. Unless they leave the option on to do it on boot. Other situation is if someone doesn't regularly add new purchases, so they just do another full sync to capture some new stuff.