もう少しシンプルに
このコミットが含まれているのは:
コミット
53e32916a3
74
main.go
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
|
||||||
|
|
読み込み中…
新しいイシューから参照