|
|
- package site
-
- import (
- "encoding/json"
- "errors"
- "io/ioutil"
- "net/http"
- "strings"
-
- "git.tetele.net/tgo/helper"
- )
-
- /**
- * 从总站获取数据库信息
- * master 总站域名,带协议
- * host 分站域名,带协议
- * 2020/06/05
- * gz
- */
-
- /**
- * 从总站获取分站数据库及ID信息
- * 2020/06/06
- * gz
- */
- func GetSiteFromMaster(master, host string) (map[string]string, error) {
-
- url := helper.StringJoin(master, "/api/gethostdb")
-
- var site map[string]string = make(map[string]string)
-
- resp, err := http.Post(url, "application/x-www-form-urlencoded", strings.NewReader("host="+host))
- if err != nil {
- return site, errors.New("获取站点数据失败," + err.Error())
- }
-
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
-
- if err != nil {
- return site, errors.New("获取站点数据失败," + err.Error())
- }
-
- type D struct {
- Database interface{} `json:"database"`
- SiteId interface{} `json:"site_id"`
- }
-
- type Reply struct {
- Code interface{} `json:"code"`
- Data D `json:"data"`
- Msg string `json:"msg"`
- }
-
- var data Reply
- err = json.Unmarshal(body, &data)
- if err != nil {
- return site, errors.New("站点数据格式错误," + err.Error())
- }
-
- if helper.ToStr(data.Code) != "1" {
- return site, errors.New(data.Msg)
- }
-
- if data.Data.Database != "" {
- site["database"] = helper.ToStr(data.Data.Database)
- }
- if data.Data.SiteId != "" {
- site["site_id"] = helper.ToStr(data.Data.SiteId)
- }
-
- return site, nil
- }
|