Opened 6 months ago
Last modified 3 weeks ago
#23688 new enhancement
[PATCH] Open local url using the os instead of the browser
Reported by: | Emvee | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | 24.11 |
Component: | Plugin utilsplugin2 | Version: | |
Keywords: | local url 127.0.0.1 | Cc: |
Description
I have a local python script that listens on a port and accepts a URL like
http://127.0.0.1:8282/qgis_zoom_to?lat=51.5810865&lon=4.5293149
I did put that in the custom URL configuration of the Utilsplugins2 settings as:
http://127.0.0.1:8282/qgis_zoom_to?lat={#lat}&lon={#lon}
And that will open the browser after which the browser will call the local script.
While this is working it has the drawback that it leaves an empty tab open every time you involve this script and this extra browser step adds latency
What this patch does is to check for a local address and if so, open the url using the Java system functionality. This way I see the script is called without involving the browser.
With the current patch, josm will emit a warning if the local system is not handling the request:
2024-05-22 10:25:42.538 SEVERE: Can not open URL http://127.0.0.1:8282/qgis_zoom_to?lat=51.5810865&lon=4.5293149: java.net.ConnectException: Connection refused
Attachments (2)
Change History (8)
by , 6 months ago
Attachment: | local_url.patch added |
---|
comment:1 by , 6 months ago
Milestone: | → 24.06 |
---|
comment:2 by , 5 months ago
Milestone: | 24.06 |
---|
comment:3 by , 5 months ago
Agreed, using something like "directcall" makes more sense, let me have a look into that and update the patch.
by , 7 weeks ago
Attachment: | at_localhost.patch added |
---|
comment:4 by , 7 weeks ago
I did look for some other established marker but have not found one, Microsoft has https://learn.microsoft.com/en-us/windows/uwp/launch-resume/launch-default-app but this is starting other App, not http tp the local machine.
I did work some time with directcall: but I do not like the two colons in directcall:http:// and instead reverted to a @localhost after the link, so for example
http://127.0.0.1:8282/qgis_zoom_to?lat={#lat}&lon={#lon}@localhost
Wondering what others think of this.
Patch attached, at_localhost.patch
comment:5 by , 6 weeks ago
Milestone: | → 24.10 |
---|
Your check for a local URL is broken. local url's can also be localhost, [::1], 127.1.2.234 and so on. Rather than checking the URL you need to check the subnet, which is 127/8 or ::1/128.
Anyway there is no reason to handle local URLs different. The same topic applies to any URL. Maybe rather than what you did prepend "directcall:" (or maybe another already somehwere else established marker I don't know about) to the URL and when the URL starts with "dircectcall:" strip that and call it directly?