From 7accf6f085e7390dfc1e59b29874b2d6a5c75300 Mon Sep 17 00:00:00 2001 From: NotAlexNoyle Date: Wed, 3 Jun 2026 14:55:08 -0400 Subject: [PATCH] Custom short link share urls --- app/assistants/main-assistant.js | 12 +++++++++--- app/models/shareservice-model.js | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/assistants/main-assistant.js b/app/assistants/main-assistant.js index 44ef68e..be32e5b 100755 --- a/app/assistants/main-assistant.js +++ b/app/assistants/main-assistant.js @@ -190,7 +190,8 @@ MainAssistant.prototype.activate = function(data) { useShortLink = Mojo.Controller.appInfo.shortURL; if (appModel.AppSettingsCurrent["UseCustomEndpoint"] && appModel.AppSettingsCurrent["ShortURL"] && appModel.AppSettingsCurrent["ShortURL"] != "") useShortLink = appModel.AppSettingsCurrent["ShortURL"]; - systemModel.ListHandlersForURL("https://share.wosa.link", + var shortLinkProbe = useShortLink.replace(/\/+$/, ""); + systemModel.ListHandlersForURL(shortLinkProbe, function(response) { var thisMenuModel = this.controller.getWidgetSetup(Mojo.Menu.appMenu).model; if (JSON.stringify(response).indexOf(Mojo.Controller.appInfo.id) != -1) { @@ -274,8 +275,13 @@ MainAssistant.prototype.handleCommand = function(event) { systemModel.removeHandlerForURL(Mojo.Controller.appInfo.id); thisMenuModel.items[2].chosen = false; } else { - //add URL handler - systemModel.AddHandlerForURL("^[^:]+://share.wosa.link", Mojo.Controller.appInfo.id); + //add URL handler — derive host from configured short URL + var handlerShortLink = Mojo.Controller.appInfo.shortURL; + if (appModel.AppSettingsCurrent["UseCustomEndpoint"] && appModel.AppSettingsCurrent["ShortURL"] && appModel.AppSettingsCurrent["ShortURL"] != "") + handlerShortLink = appModel.AppSettingsCurrent["ShortURL"]; + var handlerHost = handlerShortLink.replace(/^[a-z]+:\/\//i, "").replace(/\/.*$/, ""); + var escapedHost = handlerHost.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + systemModel.AddHandlerForURL("^[^:]+://" + escapedHost, Mojo.Controller.appInfo.id); thisMenuModel.items[2].chosen = true; } this.controller.modelChanged(thisMenuModel); diff --git a/app/models/shareservice-model.js b/app/models/shareservice-model.js index b31b14a..1614b91 100755 --- a/app/models/shareservice-model.js +++ b/app/models/shareservice-model.js @@ -42,7 +42,7 @@ ShareServiceModel.prototype.buildURL = function(username, actionType) { ShareServiceModel.prototype.MakeShareURL = function(username, guid, type) { var urlBase = this.shortUrlBase; - if (this.CustomShortURL == true && this.CustomShortURL != "") { + if (this.UseCustomEndpoint == true && this.CustomShortURL != "") { urlBase = this.CustomShortURL; } if (type.indexOf("image") != -1)