config: add http:// to all urls if needed, fix invite link generation

changed invites.ts to generate links using window.Pages entirely, rather
than chopping up window.location.href.
This commit is contained in:
Harvey Tindall
2025-05-14 22:46:46 +01:00
parent e38ac62ae4
commit 44e8035ff0
3 changed files with 21 additions and 23 deletions
+20 -7
View File
@@ -45,6 +45,13 @@ func (app *appContext) MustSetURLPath(section, key, val string) {
app.MustSetValue(section, key, val)
}
func FixFullURL(v string) string {
if !strings.HasPrefix(v, "http://") && !strings.HasPrefix(v, "https://") {
v = "http://" + v
}
return v
}
func FormatSubpath(path string) string {
if path == "/" {
return ""
@@ -52,6 +59,15 @@ func FormatSubpath(path string) string {
return strings.TrimSuffix(path, "/")
}
func (app *appContext) MustCorrectURL(section, key, value string) {
v := app.config.Section(section).Key(key).String()
if v == "" {
v = value
}
v = FixFullURL(v)
app.config.Section(section).Key(key).SetValue(v)
}
func (app *appContext) loadConfig() error {
var err error
app.config, err = ini.ShadowLoad(app.configPath)
@@ -75,8 +91,10 @@ func (app *appContext) loadConfig() error {
app.err.Printf(lm.BadURLBase, PAGES.Base)
}
app.info.Printf(lm.SubpathBlockMessage, PAGES.Base, PAGES.Admin, PAGES.MyAccount, PAGES.Form)
app.MustSetValue("jellyfin", "public_server", app.config.Section("jellyfin").Key("server").String())
app.MustSetValue("ui", "redirect_url", app.config.Section("jellyfin").Key("public_server").String())
app.MustCorrectURL("jellyfin", "server", "")
app.MustCorrectURL("jellyfin", "public_server", app.config.Section("jellyfin").Key("server").String())
app.MustCorrectURL("ui", "redirect_url", app.config.Section("jellyfin").Key("public_server").String())
for _, key := range app.config.Section("files").Keys() {
if name := key.Name(); name != "html_templates" && name != "lang_files" {
@@ -133,11 +151,6 @@ func (app *appContext) loadConfig() error {
sc := app.config.Section("discord").Key("start_command").MustString("start")
app.config.Section("discord").Key("start_command").SetValue(strings.TrimPrefix(strings.TrimPrefix(sc, "/"), "!"))
jfUrl := app.config.Section("jellyfin").Key("server").String()
if !(strings.HasPrefix(jfUrl, "http://") || strings.HasPrefix(jfUrl, "https://")) {
app.config.Section("jellyfin").Key("server").SetValue("http://" + jfUrl)
}
// Deletion template is good enough for these as well.
app.MustSetValue("disable_enable", "disabled_html", "jfa-go:"+"deleted.html")
app.MustSetValue("disable_enable", "disabled_text", "jfa-go:"+"deleted.txt")