summaryrefslogtreecommitdiff
path: root/app/cli.go
diff options
context:
space:
mode:
authorlost+skunk <[email protected]>2024-08-13 15:59:52 +0300
committerlost+skunk <[email protected]>2024-08-13 15:59:52 +0300
commit1537da9b16dfda1ecb2730b5d1de3b9005397618 (patch)
tree0cce5db0cb6393d369b7f8207d495645510276f2 /app/cli.go
parent4db018fb7f01669cb5e4c1da4b56ccfe3dbadd6f (diff)
downloadskunky-art-1537da9b16dfda1ecb2730b5d1de3b9005397618.tar.gz
skunky-art-1537da9b16dfda1ecb2730b5d1de3b9005397618.tar.bz2
skunky-art-1537da9b16dfda1ecb2730b5d1de3b9005397618.zip
темплейты в бинарнике и улучшенная система кеша
Diffstat (limited to 'app/cli.go')
-rw-r--r--app/cli.go63
1 files changed, 29 insertions, 34 deletions
diff --git a/app/cli.go b/app/cli.go
index 2247223..261e103 100644
--- a/app/cli.go
+++ b/app/cli.go
@@ -78,16 +78,16 @@ func addInstance() {
try(err)
defer instancesJson.Close()
- instances, err := os.OpenFile("INSTANCES.md", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+ instancesFile, err := os.OpenFile("INSTANCES.md", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
try(err)
- defer instances.Close()
+ defer instancesFile.Close()
for {
- if Templates["instances.json"] == "" {
+ if string(instances) == "" {
print("\rDownloading instance list...")
} else {
println("\r\033[2KDownloaded!")
- try(json.Unmarshal([]byte(Templates["instances.json"]), &settingsVar))
+ try(json.Unmarshal(instances, &settingsVar))
settingsVar.Instances = append(settingsVar.Instances, settings{
Title: prompt("Title", true),
@@ -113,51 +113,46 @@ func addInstance() {
settingsVar := &settingsVar.Instances[len(settingsVar.Instances)-1]
var mdstr bytes.Buffer
- mdstr.WriteString("\n|")
- if settingsVar.Urls.Clearnet != "" {
- mdstr.WriteString("[")
- mdstr.WriteString(settingsVar.Title)
- mdstr.WriteString("](")
- mdstr.WriteString(settingsVar.Urls.Clearnet)
- mdstr.WriteString(")")
- } else {
- mdstr.WriteString(settingsVar.Title)
+ mdbuilder := func(yes bool, link string, title string) {
+ switch {
+ case yes && (title != "" && link != ""):
+ mdstr.WriteString("[")
+ mdstr.WriteString(title)
+ mdstr.WriteString("](")
+ mdstr.WriteString(link)
+ mdstr.WriteString(")")
+ case yes && link != "":
+ mdstr.WriteString("[Yes](")
+ mdstr.WriteString(link)
+ mdstr.WriteString(")")
+ case yes:
+ mdstr.WriteString("Yes")
+ default:
+ mdstr.WriteString("No")
+ }
+ mdstr.WriteString("|")
}
- mdstr.WriteString("|")
+
+ mdstr.WriteString("\n|")
+ mdbuilder(settingsVar.Urls.Clearnet != "", settingsVar.Urls.Clearnet, settingsVar.Title)
urls := []string{settingsVar.Urls.Ygg, settingsVar.Urls.I2P, settingsVar.Urls.Tor}
for i, l := 0, len(urls); i < l; i++ {
url := urls[i]
- if url != "" {
- mdstr.WriteString("[Yes](")
- mdstr.WriteString(url)
- mdstr.WriteString(")|")
- } else {
- mdstr.WriteString("No|")
- }
+ mdbuilder(url != "", url, "")
}
settings := []bool{settingsVar.Settings.Nsfw, settingsVar.Settings.Proxy}
for i, l := 0, len(settings); i < l; i++ {
- if settings[i] {
- mdstr.WriteString("Yes|")
- } else {
- mdstr.WriteString("No|")
- }
+ mdbuilder(settings[i], "", "")
}
- if settingsVar.ModifiedSrc != "" {
- mdstr.WriteString("[Yes](")
- mdstr.WriteString(settingsVar.ModifiedSrc)
- mdstr.WriteString(")|")
- } else {
- mdstr.WriteString("No|")
- }
+ mdbuilder(settingsVar.ModifiedSrc != "", settingsVar.ModifiedSrc, "")
mdstr.WriteString(settingsVar.Country)
mdstr.WriteString("|")
- instances.Write(mdstr.Bytes())
+ instancesFile.Write(mdstr.Bytes())
break
}
time.Sleep(500 * time.Millisecond)