Giter Club home page Giter Club logo

Comments (7)

mtkennerly avatar mtkennerly commented on September 27, 2024 1

Thanks, that's good info :)

For what Ludusavi is doing, I think we can get away without knowing if it's a game ID or package ID, though. Let's say you have some games in Playnite/etc where the names don't match Ludusavi, but the games have GOG IDs that we can use for lookup instead. Even if they're a mix of game/package IDs for some reason, all we really need to know is whether that ID appears in a PCGamingWiki article, so we can map from the ID to the article title.

from ludusavi.

mtkennerly avatar mtkennerly commented on September 27, 2024

Hi! From the log, it looks like it's being mapped to the original Fallout. Could you please give me the log for the following command as well?

RUST_LOG=ludusavi=trace ludusavi backup --preview "Fallout: New Vegas"

from ludusavi.

sjp761 avatar sjp761 commented on September 27, 2024

ludusavi_rCURRENT.log

Prefix location is /mnt/games/Other/Prefixes/Fallout New Vegas Ultimate Edition

Here you go

from ludusavi.

mtkennerly avatar mtkennerly commented on September 27, 2024

Thanks. For now, you can work around this by configuring an alias in Ludusavi on the custom games screen:

image

There are a few things going wrong here:

  • First, Ludusavi tries to look up the game by its GOG ID, which is 1454587428. However, that's a secondary ID (DLC/editions/packages), and right now Ludusavi only matches the primary ID (which would be 1312824873).
  • Since that didn't match, Ludusavi tries to look up the exact title. Ludusavi expects Fallout: New Vegas, not Fallout: New Vegas Ultimate Edition, so again no match.
  • Lastly, Ludusavi tries to normalize the title. Part of that means removing edition suffixes. Ludusavi guesses incorrectly that New Vegas Ultimate Edition is the edition name, rather than just Ultimate Edition, and so Ludusavi reduces it to just Fallout, which is a match for the wrong game.

I'll look into matching on secondary GOG IDs and maybe making the edition normalization less aggressive.

from ludusavi.

sjp761 avatar sjp761 commented on September 27, 2024

from ludusavi.

mtkennerly avatar mtkennerly commented on September 27, 2024

I'm not sure, to be honest. I see that GOG DB lists 1454587428 as a "game" and 1312824873 as a "package", but I'm not sure exactly what that implies for GOG. On PCGamingWiki, they're listed as:

|gogcom id    = 1312824873
|gogcom id side = 1454587428

But I do think Ludusavi should check both IDs anyway.

from ludusavi.

mainrs avatar mainrs commented on September 27, 2024

I think the game ID is either the "parent ID" of all variations of a game on GOG, or it is the remnant of the old v1 API. Either way, API responses always return the availability of game IDs as "unavailable".

A package is a unit of content. This can be the base game, language packs, DLCs, expansion passes, ...
In the case of The Witcher 3: Wild Hunt, the GOTY edition (Complete Edition) is a package for the same game ID and not a separate game. Whereas the Fallout game mentioned here seems to be its own game.

Since the installable unit is package, I think the correct way would be to only check for package IDs. But since you never know what quirks APIs do have, checking package ID > game ID would be a sane option.

Relying on PCGamingwiki as the source of truth might be hard here. The gog id is the game ID, the gog id side is the package ID. But I don't think all entries on the wiki will differentiate that way. There is the GOG api endpoint that one can query:

api.gog.com/v2/games/

Edit: Or include a copy of the gogdb data: https://www.gogdb.org/data. I am not sure what the terms of service or the license of the data are.

from ludusavi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.