0 Star 0 Fork 0

mchtech/domain-dependency-tool
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
echarts.go 3.21 KB
一键复制 编辑 原始数据 按行查看 历史
mchtech 提交于 2018-02-04 12:55 +08:00 . embed js
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"strings"
)
type EData struct {
Name string `json:"name"`
Draggable bool `json:"draggable"`
Category string `json:"category"`
Value string `json:"value"`
SymbolSize float32 `json:"symbolSize"`
}
type ECategory struct {
Name string `json:"name"`
}
type ELink struct {
Source string `json:"source"`
Target string `json:"target"`
Value string `json:"value"`
LineStyle ELineStyle `json:"lineStyle"`
}
type ELineStyle struct {
Normal ELineStyleNormal `json:"normal"`
}
type ELineStyleNormal struct {
Curveness float32 `json:"curveness"`
}
func genjs(name string, mp map[string]*dnsrecord, fname string) {
var datas []EData
var links []ELink
var categories []ECategory
var categoriesname []string
catamap := make(map[string]int)
for _, v := range mp {
upname := "."
if v.name != "." {
// Upper Name
upname = getuplevelname(v.name)
if _, ok := catamap[upname]; !ok {
catamap[upname] = 0
categoriesname = append(categoriesname, upname)
categories = append(categories, ECategory{
Name: upname,
})
}
//CNAME
if v.cname != "" {
catamap[v.cname] = 0
categoriesname = append(categoriesname, v.cname)
categories = append(categories, ECategory{
Name: v.cname,
})
}
//CNAME Link
if v.cname != "" {
links = append(links, ELink{
Source: v.name,
Target: v.cname,
Value: "CNAME",
LineStyle: ELineStyle{
Normal: ELineStyleNormal{
Curveness: 0.2,
},
},
})
}
// //SOA Link
// if v.soa != "" {
// links = append(links, ELink{
// Source: v.name,
// Target: v.soa,
// Value: "SOA",
// LineStyle: ELineStyle{
// Normal: ELineStyleNormal{
// Curveness: 0.2,
// },
// },
// })
// }
}
//Data
dotcount := float32(strings.Count(v.name, "."))
cnss := float32(48.00)
cnss = cnss / dotcount
data := EData{
Name: v.name,
Draggable: true,
Category: upname,
Value: strings.Join(v.ip, "\n"),
SymbolSize: cnss,
}
datas = append(datas, data)
//NS Link
for _, ns := range v.ns {
links = append(links, ELink{
Source: v.name,
Target: ns,
Value: "NS",
LineStyle: ELineStyle{
Normal: ELineStyleNormal{
Curveness: 0.2,
},
},
})
}
}
for _, v := range mp {
ln := v.name
for {
if ln == "." {
break
}
//Upper Name Link
un := getuplevelname(ln)
links = append(links, ELink{
Source: ln,
Target: un,
Value: "Parent",
LineStyle: ELineStyle{
Normal: ELineStyleNormal{
Curveness: 0.2,
},
},
})
ln = un
}
}
// categories = make([]string, len(catamap))
// for i, v := range catamap {
// categories[v] = i
// }
cataarrjsonbin, _ := json.Marshal(categoriesname)
catajsonbin, _ := json.Marshal(categories)
datajsonbin, _ := json.Marshal(datas)
linkjsonbin, _ := json.Marshal(links)
cataarrjson := string(cataarrjsonbin)
catajson := string(catajsonbin)
datajson := string(datajsonbin)
linkjson := string(linkjsonbin)
jsonstr := fmt.Sprintf(tpl, cataarrjson, datajson, linkjson, catajson, name)
ioutil.WriteFile(fname, []byte(jsonstr), 0666)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/mchtech/dns-dependency-go.git
git@gitee.com:mchtech/dns-dependency-go.git
mchtech
dns-dependency-go
domain-dependency-tool
9be15ac2eea7

搜索帮助