Comments (4)
Solved with #103, will be in the next release
from cartridges.
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:
- Open the project folder in GNOME Builder.
- Click the Build icon in the center of the top bar of the GUI.
- Click the workflows icon at the top left of the GUI.
- Click the final step which says something like "deploy as flatpak". Builder will generate a flatpak.
- 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.
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.
@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:
@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)
- Add "Re-scan Library" option. HOT 1
- Some Flatpak games aren't imported HOT 3
- Support more than seven columns of games to better fill ultrawide (21:9) screens HOT 5
- Configurable Grid Dimensions HOT 2
- Better Handling of Long Titles HOT 3
- Preserve Image Aspect Ratio HOT 8
- Crashing on x11 kde plasma HOT 7
- Use of desktop entries' "TryExec" field HOT 5
- Crash upon changing cover image HOT 1
- Steam Entries wont launch HOT 3
- Fix flatpak permissions HOT 4
- Import/Export external drive games
- Option to (re-)query SteamGridDB post-setup
- Export into Sunshine HOT 1
- Covers of all games are not displayed HOT 6
- Add a choice of size for displayed game covers HOT 1
- Allow pinning games HOT 2
- Add sort title to games HOT 2
- Cartridges.metainfo.xml test fail HOT 2
- Filter Retroarch Games by Ssytem
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cartridges.