You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package mill
import ( "crypto/rand" "fmt" "io" "net/http" "time" )
func makeNonce() string { buf := make([]byte, 8) _, _ = io.ReadFull(rand.Reader, buf)
return fmt.Sprintf("%x", buf) }
func addDefaultHeaders(req *http.Request) { req.Header.Add("Content-Type", "application/x-zc-object") req.Header.Add("Connection", "Keep-Alive") req.Header.Add("X-Zc-Major-Domain", "seanywell") req.Header.Add("X-Zc-Msg-Name", "millService") req.Header.Add("X-Zc-Sub-Domain", "milltype") req.Header.Add("X-Zc-Seq-Id", "1") req.Header.Add("X-Zc-Version", "1") }
var gen2subDomains = []int{863, 5316, 5317, 5332, 5333, 6933}
func subDomainToGeneration(subDomain int) int { for _, gen2sd := range gen2subDomains { if subDomain == gen2sd { return 2 } }
return 3 }
const accountEndpoint = "https://eurouter.ablecloud.cn:9005/zc-account/v1/"
const serviceEndpoint = "https://eurouter.ablecloud.cn:9005/millService/v1/"
type millHome struct { HomeID int64 `json:"homeId"` HomeName string `json:"homeName"` }
type millDevice struct { DeviceID int `json:"deviceId"` DeviceName string `json:"deviceName"` PowerStatus int `json:"powerStatus"` HolidayTemp int `json:"holidayTemp"` CurrentTemp float64 `json:"currentTemp"` SubDomainID int `json:"subDomainId"` }
type authReqBody struct { Account string `json:"account"` Password string `json:"password"` }
type authResBody struct { Token string `json:"token"` UserID int `json:"userId"` NickName string `json:"nickName"` TokenExpire string `json:"tokenExpire"` }
type listHomeReqBody struct{}
type listHomeResBody struct { HomeList []millHome `json:"homeList"` }
type listDeviceReqBody struct { HomeID int64 `json:"homeId"` }
type listDeviceResBody struct { DeviceInfo []millDevice `json:"deviceInfo"` }
type changeInfoReqBody struct { HomeType int `json:"homeType"` DeviceID int `json:"deviceId"` Value int `json:"value"` TimeZoneNum string `json:"timeZoneNum"` Key string `json:"key"` }
type deviceControlReqBody struct { SubDomain string `json:"subDomain"` DeviceID int `json:"deviceId"` TestStatus int `json:"testStatus"` Operation int `json:"operation"` Status int `json:"status"` WindStatus int `json:"windStatus"` TempType int `json:"tempType"` PowerLevel int `json:"powerLevel"` }
type deviceControlGen3Body struct { Operation string `json:"operation"` Status int `json:"status"` SubDomain int `json:"subDomain"` DeviceId int `json:"deviceId"` HoldTemp int `json:"holdTemp,omitempty"` }
var location *time.Location
func init() { myLocation, err := time.LoadLocation("Europe/Oslo") if err != nil { panic(err.Error()) }
location = myLocation }
|