0neGal / viper

Launcher+Updater for TF|2 Northstar
https://0negal.github.io/viper
GNU General Public License v3.0
149 stars 21 forks source link

feat: Add URI handler for `ror2mm://` links #124

Open GeckoEidechse opened 2 years ago

GeckoEidechse commented 2 years ago

What feature would you like added? Thunderstore allows 1-click installing mods from the website using URIs starting with ror2mm:// The URI for this mod for example is:

ror2mm://v1/install/northstar.thunderstore.io/EladNLG/HUDRevamp/1.2.1/

Why should this feature be added? This would enable 1-click installs from Thunderstore for Viper users.

0neGal commented 2 years ago

Just to understand what exactly is being requested, you want Viper to handle ror2mm:// URIs?

That seems rather weird to add considering it's not r2modman, and we already have our own mod browser using Thunderstore of course, there's not much need for someone to be browsing the website in the first place.

Not to mention I've no clue how we would ever going about handling conflicts of the user has both Viper and r2modman installed.

If you're on the other hand asking for a button in the mod browser which links to the URI, I'm just as confused, as there'd be no benefit to clicking that over Viper's own "Install" button

I might also just be slightly dumb and didn't get what you requested :p

GeckoEidechse commented 2 years ago

It would be the first thing, i.e. click "Install with Mod Manager" button on Thunderstore and it pops open Viper.

Not to mention I've no clue how we would ever going about handling conflicts of the user has both Viper and r2modman installed.

To my knowledge, at least in Firefox, it will ask you which application to use.

Overall I just found browsing Thunderstore in browser easier than within Viper and then having to copy the name into the search bar in Viper and than hitting install just a bit annoying ^^"

0neGal commented 2 years ago

Overall I just found browsing Thunderstore in browser easier than within Viper and then having to copy the name into the search bar in Viper and than hitting install just a bit annoying ^^

I have considered adding some better functionality in the browsing regard, i.e provide a way to preview the package page, and a way to view more than 30 (i think it's capped at 30?) packages at a time.

Perhaps that's a better solution. Again I've no clue whether it'd really be a good idea to setup URI handlers that r2modman should be handling.

And so I think bridging the gap and taking whatever makes browsing directly on Thunderstore better and then adding that to Viper instead.

0neGal commented 2 years ago

A new PR (#125) has been opened that should more or less make the mod browser equivalent to the official Thunderstore, or at least have all the useful information most people would need, feel free to let me know if that removes the need for handling URI's

DxsSucuk commented 2 years ago

Also for this I have found something that might help for Windows

0neGal commented 2 years ago

Also for this I have found something that might help for Windows

Electron already has a Cross-Platform solution, the question is whether it's relevant/really a good idea to register handlers that are normally handled by a completely separate mod manager. Only one app can be registered at once, meaning, if someone uses r2modman and Viper they will interfere, and possibly cause unexpected behaviour.

And so I'm doubtful it's a good idea, which was why #125 was made, hoping it'd make up for it.

GeckoEidechse commented 2 years ago

Only one app can be registered at once, meaning, if someone uses r2modman and Viper they will interfere, and possibly cause unexpected behaviour.

Huh, my assumption was that you could set a default one or you'd be confronted with a choice of which app to pick.

Alternatively we could add our own URI hander e.g. viper:// (or maybe less generic like r2northstar-viper://) and then have a small browser addon that just rewrites ror2mm:// to viper URI. Although that all might just be slight overkill :P

0neGal commented 2 years ago

Alternatively we could add our own URI hander e.g. viper:// (or maybe less generic like r2northstar-viper://) and then have a small browser addon that just rewrites ror2mm:// to viper URI. Although that all might just be slight overkill :P

A little... :)

We could make it possible to drag the link into Viper, i.e select text with the link to a package, and then have that open the previewer for the mod, then we'd just also have to add the install buttons in the previewer...

But to be quite honest that's not very useful, hardly anybody would realize you could do it, and it might still just be easier to search for it. Overall, with the improvements to the mod browser, it's almost as easy as it can get.

Huh, my assumption was that you could set a default one or you'd be confronted with a choice of which app to pick.

On Windows you'll have applications registering handlers, then when the handler is used it'll ask you which one of the applications you want to use, and give you the option to select a default one. IIRC it has the checkbox for saving your choice auto-selected.

Again, I'm not sure how useful this would be... Without knowing for certain the users using Viper hardly realize what Thunderstore is, at least the less tech savvy of them, and don't realize where the mods are coming from, so they'd never get onto the package page and see the install with R2MM button.

And even then that'd be off putting considering it says R2MM and not Viper...

As I've stated before with Linux support, I really do not won't to mess with peoples configurations for other programs, i.e making custom Steam game entries, or in this case browser extensions that modify a website, as future changes can mess with that, say if Thunderstore updates their layout or similar, I'm already and still on the fence about the mod previewer, as currently it's a <webview> that just removes and customizes the normal package page, meaning if they drastically change something we'll have to update it.

However, if a reasonable and useful use case can be found for adding a URI handler I'll of course look into it.

DxsSucuk commented 2 years ago

Why not create a custom URI Handle and contacting Thunderstore to add that to Titanfall related stuff?

0neGal commented 2 years ago

Why not create a custom URI Handle and contacting Thunderstore to add that to Titanfall related stuff?

As they already have their handler this seems slightly dumb, at least from their perspective. If this were to become a thing it'd have to have a generic name, so that both VTOL, Viper and any other mod manager could use it.

But still, having two buttons that essentially do the same thing where the only difference is in the handler name and thereby the program that handles it, overall, it sounds dumb.

ebkr commented 2 years ago

I'd highly recommend not rewriting the protocol as it could cause unexpected behaviour if people switch between the two.

Generally it should be fine if you re-register the protocol each launch. r2modman currently does. You can assume that if people launch X, they'll want to use X and not Y.

It may cause the odd quirk for a user, but it shouldn't be too hard to guide the < 1% that end up in this scenario. Once people have picked a manager they don't tend to change without good cause.

If it does become a problem, I'm sure TS can accommodate it, however it's probably best kept as an "if it becomes a problem" as it's not necessarily worth putting time into if it's not actually needed.

Also fwiw, ror2mm:// was designed for a separate manager that wasn't r2mm 👀

0neGal commented 2 years ago

Also fwiw, ror2mm:// was designed for a separate manager that wasn't r2mm 👀

Which reminds me, could R2MM have a secondary identical handler? At least in functionality, but a different name.

We then would never register it, that way, if Viper is trying to handle a something that isn't Northstar it can just convert/open it in that other handler and it'll then open R2MM.