v1.0.0
This commit is contained in:
89
standalone/settings.go
Normal file
89
standalone/settings.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
||||
func SettingsSaveEndpoint(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Plec struct {
|
||||
UploadUrl string `json:"uploadUrl"`
|
||||
OriginUrl string `json:"originUrl"`
|
||||
PreviewBase string `json:"previewBase"`
|
||||
SkipExistsCheck bool `json:"skipExistsCheck"`
|
||||
} `json:"plec"`
|
||||
Applovin struct {
|
||||
Cookie string `json:"cookie"`
|
||||
DelayMs int `json:"delayMs"`
|
||||
RandomizeUserAgent *bool `json:"randomizeUserAgent"`
|
||||
} `json:"applovin"`
|
||||
SendToMobile struct {
|
||||
Port int `json:"port"`
|
||||
} `json:"sendToMobile"`
|
||||
DeviceSimulator struct {
|
||||
DevicesURL string `json:"devicesUrl"`
|
||||
LanguagesURL string `json:"languagesUrl"`
|
||||
} `json:"deviceSimulator"`
|
||||
ProjectInitManifestURL string `json:"projectInitManifestUrl"`
|
||||
}
|
||||
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
|
||||
writeJSON(w, map[string]any{"ok": false, "error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
cfg := LoadConfig()
|
||||
cfg.Plec.UploadUrl = strings.TrimSpace(req.Plec.UploadUrl)
|
||||
cfg.Plec.OriginUrl = strings.TrimSpace(req.Plec.OriginUrl)
|
||||
cfg.Plec.PreviewBase = strings.TrimSpace(req.Plec.PreviewBase)
|
||||
cfg.Plec.SkipExistsCheck = req.Plec.SkipExistsCheck
|
||||
cfg.Applovin.Cookie = strings.TrimSpace(req.Applovin.Cookie)
|
||||
cfg.Applovin.DelayMs = req.Applovin.DelayMs
|
||||
cfg.Applovin.RandomizeUserAgent = req.Applovin.RandomizeUserAgent
|
||||
cfg.SendToMobile.Port = req.SendToMobile.Port
|
||||
cfg.DeviceSimulator.DevicesURL = strings.TrimSpace(req.DeviceSimulator.DevicesURL)
|
||||
cfg.DeviceSimulator.LanguagesURL = strings.TrimSpace(req.DeviceSimulator.LanguagesURL)
|
||||
if req.ProjectInitManifestURL != "" {
|
||||
cfg.ProjectInitManifestURL = strings.TrimSpace(req.ProjectInitManifestURL)
|
||||
}
|
||||
|
||||
// Invalidate remote cache when URLs change
|
||||
simCache.mu.Lock()
|
||||
if simCache.devURL != cfg.DeviceSimulator.DevicesURL {
|
||||
simCache.devURL = ""
|
||||
simCache.devices = ""
|
||||
}
|
||||
if simCache.langURL != cfg.DeviceSimulator.LanguagesURL {
|
||||
simCache.langURL = ""
|
||||
simCache.languages = ""
|
||||
}
|
||||
simCache.mu.Unlock()
|
||||
|
||||
if err := SaveConfig(cfg); err != nil {
|
||||
writeJSON(w, map[string]any{"ok": false, "error": err.Error()})
|
||||
return
|
||||
}
|
||||
writeJSON(w, map[string]any{"ok": true})
|
||||
}
|
||||
|
||||
func htmlEsc(s string) string {
|
||||
s = strings.ReplaceAll(s, "&", "&")
|
||||
s = strings.ReplaceAll(s, "<", "<")
|
||||
s = strings.ReplaceAll(s, ">", ">")
|
||||
s = strings.ReplaceAll(s, `"`, """)
|
||||
return s
|
||||
}
|
||||
|
||||
func checkedAttr(v bool) string {
|
||||
if v {
|
||||
return "checked"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func intStr(n int) string {
|
||||
return fmt.Sprintf("%d", n)
|
||||
}
|
||||
Reference in New Issue
Block a user