iquercorb / OpenModMan

Open Mod Manager - Open source and generic Mod ("Modifications") manager.
GNU General Public License v3.0
88 stars 5 forks source link

Suggestion: Add support for Github mod download #40

Closed RealDrJester closed 9 months ago

RealDrJester commented 1 year ago

AS the title says. For instance, adding the github website like "https://github.com/Interkarma/daggerfall-unity/releases" and have the mod manager auto-download the mod or updates in the network tab.

This is useful even for MSFS mods on github, and DCS mods that are hosted on Github.

(would also like something that works with nexusmods/flightsim.to as well, but Github is important)

iquercorb commented 1 year ago

Can you elaborate how the manager is supposed to know what to download by inspecting a webpage like the one you supplied as example ?

RealDrJester commented 1 year ago

Probably something akin to "MSFS Community Downloader"

https://github.com/NicolasConstant/msfs-community-downloader

prandleman commented 1 year ago

@sedenion can you use the github repo api?

trailing '/' will 404, otherwise you get a json file:

https://api.github.com/repos/sedenion/OpenModMan

latest release: releases/latest

or all releases/tags/specific tag (can't remember but https://docs.github.com/rest): /releases /tags ~/tags/1.0.1~

and for reading config / xml files trying to GET / fetch an .xml at say, 'https://github.com/sedenion/OpenModMan/blob/master/manifest.xml' will return html code so you just need to access it raw https://raw.githubusercontent.com/sedenion/OpenModMan/master/manifest.xml

you can also read raw from gists

iquercorb commented 9 months ago

Sorry for the late reponse.

"MSFS Community Downloader" that you suggest is a Typescript application running through Electron.js... in other words, this is an Web-application that runs on a browser engine (a web browser) that mimic standard desktop application and hide its true nature. That's why it is so easy for it to parse HTML and do what you ask for using such platform.

On its side, Open Mod Manager is a (true) compiled desktop application written in C++, and at this language level, there is no HTML and Javascript parser ready to parse received HTML data on the fly (except a totally outdated API, very painfull to use and full of security issues based on Internet Explorer). In breif, to do what you ask for would requiere either to code HTML parser or to include suitable library that do it, this would mean transforming Open Mod Manager to a web browser (what Electron.JS is in fact) and that is not practicable for now, and I think will never happen.

If you want Open Mod Manager to able to download Repository definitions files and Mod files, you need to provide link to direct-download, that supplie raw data.