もう少しシンプルに

このコミットが含まれているのは:
守矢諏訪子 2023-02-28 15:25:09 +09:00
コミット 53e32916a3
1個のファイルの変更28行の追加46行の削除

74
main.go
ファイルの表示

@ -16,6 +16,7 @@ import (
var ( var (
linkpath string linkpath string
configpath string configpath string
payload map[string]interface{}
) )
func mkstring () string { func mkstring () string {
@ -54,50 +55,26 @@ func checkcharlim (url string) bool {
return true return true
} }
func geturl (key string) string { func geturl (url string, checkjson bool) string {
data, err := ioutil.ReadFile(linkpath) payload := getlinks()
if err != nil {
fmt.Println("links.jsonを開けられません: ", err)
}
var payload map[string]interface{}
json.Unmarshal(data, &payload)
for k := range payload { for k := range payload {
if key == k { if checkjson {
return payload[k].(string) if url == payload[k] {
return url
}
} else {
if url == k {
return payload[k].(string)
}
} }
} }
return "" return ""
} }
func checkjson (url string) bool {
data, err := ioutil.ReadFile(linkpath)
if err != nil {
fmt.Println("links.jsonを開けられません: ", err)
}
var payload map[string]interface{}
json.Unmarshal(data, &payload)
for k := range payload {
if url == payload[k] {
return true
}
}
return false
}
func insertjson (url string) string { func insertjson (url string) string {
data, err := ioutil.ReadFile(linkpath) payload := getlinks()
if err != nil {
fmt.Println("links.jsonを開けられません: ", err)
}
var payload map[string]interface{}
json.Unmarshal(data, &payload)
newstring := mkstring() newstring := mkstring()
payload[newstring] = url payload[newstring] = url
@ -116,6 +93,18 @@ type Page struct {
Lan string Lan string
} }
func getlinks () map[string]interface{} {
data, err := ioutil.ReadFile(linkpath)
if err != nil {
fmt.Println("links.jsonを開けられません: ", err)
}
var payload map[string]interface{}
json.Unmarshal(data, &payload)
return payload
}
func main () { func main () {
if runtime.GOOS == "freebsd" { if runtime.GOOS == "freebsd" {
linkpath = "/usr/local/etc/urloli/links.json" linkpath = "/usr/local/etc/urloli/links.json"
@ -125,14 +114,7 @@ func main () {
configpath = "/etc/urloli/config.json" configpath = "/etc/urloli/config.json"
} }
var domain string var domain string
payload := getlinks()
data, err := ioutil.ReadFile(configpath)
if err != nil {
fmt.Println("config.jsonを開けられません: ", err)
}
var payload map[string]interface{}
json.Unmarshal(data, &payload)
for k := range payload { for k := range payload {
domain = payload[k].(string) domain = payload[k].(string)
@ -184,8 +166,8 @@ func main () {
} }
if chklim && chkprx { if chklim && chkprx {
chkfn := checkjson(addurl) chkfn := geturl(addurl, true)
if chkfn { if chkfn != "" {
http.Redirect(w, r, addurl, http.StatusSeeOther) http.Redirect(w, r, addurl, http.StatusSeeOther)
return return
} else { } else {
@ -219,7 +201,7 @@ func main () {
if uri == "/" && qnewurl == "" { if uri == "/" && qnewurl == "" {
tmpl = template.Must(template.ParseFiles("view/index.html", "view/header.html", "view/footer.html")) tmpl = template.Must(template.ParseFiles("view/index.html", "view/header.html", "view/footer.html"))
} else if uri != "/" && qnewurl == "" { } else if uri != "/" && qnewurl == "" {
red := geturl(uri[1:]) red := geturl(uri[1:], false)
if red != "" { if red != "" {
http.Redirect(w, r, red, http.StatusSeeOther) http.Redirect(w, r, red, http.StatusSeeOther)
return return