Giter Club home page Giter Club logo

Comments (4)

GeoffreyCoulaud avatar GeoffreyCoulaud commented on June 11, 2024 1

Solved with #103, will be in the next release

from cartridges.

Arcitec avatar Arcitec commented on June 11, 2024

The actual import doesn't seem too hard, since it has a legendary list-installed command, so there's most likely a JSON database on-disk in Legendary's folder which contains a list of all installed games and paths.

https://github.com/derrod/legendary#usage

The issue is the covers. We do not have the ability to fetch covers online, because it requires API keys for steamgriddb, proxying to prevent API key abuse, etc. It requires infrastructure and server costs that this simple launcher doesn't have. But you can of course manually go to steamgriddb, fetch cover files for your games, and then edit the games in Cartridges and place your downloaded logo files in it that way.

Would be greatly appreciated if you or someone else who wants this feature could research more into how Legendary stores the list of games, if it's a JSON file, where it is, whether the JSON contains any info about cover art at all (that would help a lot, if not then we can't add covers for the Legendary games).

Even better would be a pull request. You can base the legendary module on existing import modules. :)

This project is easily compiled via GNOME Builder:

  1. Open the project folder in GNOME Builder.
  2. Click the Build icon in the center of the top bar of the GUI.
  3. Click the workflows icon at the top left of the GUI.
  4. Click the final step which says something like "deploy as flatpak". Builder will generate a flatpak.
  5. You can easily test the Flatpak via sudo flatpak uninstall -y hu.kramo.Cartridges; sudo flatpak install -y hu.kramo.Cartridges.flatpak; flatpak run hu.kramo.Cartridges. This lets you test that the new module is working while in a Flatpak sandbox.

PS: Don't use /bin/legendary, just use legendary with nothing else, to support the user's own PATH variable.

from cartridges.

alvsz avatar alvsz commented on June 11, 2024

actually i was looking into this yesterday and i found ~/.config/legendary/installed.json it has an object and each key is a game id, and then ~/.config/legendary/metadata/{game_id}.json has more information about the game, but i think the only relevant keys here are .app_title, .metadata.developer and .metadata.keyImages that has an array images, and select the one with .type DieselGameBoxTall, it has a link to the epic cdn so i api keys shouldnt be an issue i think, and launch with legendary launch {game_id}

i know some python and gtk but i actually hate coding thats why i wanted someone else to do it sorry but i can try writing something and if it works ill do a pull request

from cartridges.

Arcitec avatar Arcitec commented on June 11, 2024

@alvsz Thanks a lot for helping with that research, it helps a lot! <3 We're currently gonna go ahead with a "import module" system, where anyone can very easily add support for import sources, described here:

#33 (comment)

@kra-mo has begun work on it, and when that's done, perhaps you'd even like to contribute a Legendary import module. It will be very easy to write one, when the module system is complete. Especially since you noticed that the data is already in JSON files. :)

Update: The import backend has been implemented by kra-mo now, which is a shared library of functions for saving games and covers to Cartridges' library. It's very easy to create new importers by looking at an existing one.

from cartridges.

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.