@@ -45,32 +45,67 @@ func DataokeFriendsCircleList(params map[string]string) []map[string]string { | |||
return goods | |||
} | |||
//func DataokeFriendsCircleList(params map[string]string) []map[string]string { | |||
// var goods = make([]map[string]string, 0) | |||
// resp, err := SendReq("https://openapi.dataoke.com/api/goods/friends-circle-list", params) | |||
// if err != nil { | |||
// return goods | |||
// } | |||
// data := gjson.Get(string(resp), "data").String() | |||
// if data == "" { | |||
// return goods | |||
// } | |||
// var oldGoods []md.HaodankuSelectedItem | |||
// json.Unmarshal([]byte(data), &oldGoods) | |||
// for _, v := range oldGoods { | |||
//var tmp = map[string]string{ | |||
// "gid": v.Itemid, | |||
// "title": v.Title, | |||
// "img": img, | |||
// "sales": "", | |||
// "price": v.Itemendprice, | |||
// "cost_price": v.Itemprice, | |||
// "coupon": v.Couponmoney, | |||
// "commission_rate": v.Tkrates, | |||
// "commission": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.Itemendprice) * (zhios_third_party_utils.StrToFloat64(v.Tkrates) / 100)), | |||
// "pvd": "taobao", | |||
// "share_content": content, | |||
//} | |||
//goods = append(goods, tmp) | |||
//} | |||
//} | |||
func DataokeTaobaoRankList(params map[string]string) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
resp, err := SendReq("https://openapi.dataoke.com/api/goods/get-ranking-list", params) | |||
if err != nil { | |||
return goods | |||
} | |||
data := gjson.Get(string(resp), "data").String() | |||
if data == "" { | |||
return goods | |||
} | |||
var oldGoods []md.DataokeTaobaoRankList | |||
json.Unmarshal([]byte(data), &oldGoods) | |||
for _, v := range oldGoods { | |||
pvd := md.PVD_TB | |||
var tmp = map[string]string{ | |||
"gid": v.Goodsid, | |||
"title": v.Dtitle, | |||
"img": v.Mainpic, | |||
"sales": zhios_third_party_utils.IntToStr(v.Monthsales), | |||
"day_sales": zhios_third_party_utils.IntToStr(v.Dailysales), | |||
"price": zhios_third_party_utils.AnyToString(v.Originalprice), | |||
"cost_price": zhios_third_party_utils.AnyToString(v.Actualprice), | |||
"coupon": zhios_third_party_utils.AnyToString(v.Couponprice), | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.Commissionrate), | |||
"commission": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.AnyToFloat64(v.Actualprice) * (zhios_third_party_utils.AnyToFloat64(v.Commissionrate) / 100)), | |||
"pvd": pvd, | |||
"share_content": v.Desc, | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} | |||
func DataokeTikTokRankList(params map[string]string) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
resp, err := SendReq("https://openapi.dataoke.com/api/tiktok/tiktok-sx-goods-rank", params) | |||
if err != nil { | |||
return goods | |||
} | |||
data := gjson.Get(string(resp), "data").String() | |||
if data == "" { | |||
return goods | |||
} | |||
var oldGoods []md.DataokeTikTokRankList | |||
json.Unmarshal([]byte(data), &oldGoods) | |||
for _, v := range oldGoods { | |||
pvd := md.PVD_TIKTOK | |||
var tmp = map[string]string{ | |||
"gid": v.ID, | |||
"title": v.Title, | |||
"img": v.ItemImg, | |||
"sales": zhios_third_party_utils.Int64ToStr(v.Sales), | |||
"day_sales": "", | |||
"price": zhios_third_party_utils.AnyToString(v.Price - v.Coupon), | |||
"cost_price": zhios_third_party_utils.AnyToString(v.Price), | |||
"coupon": zhios_third_party_utils.AnyToString(v.Coupon), | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.CosRatio), | |||
"commission": zhios_third_party_utils.Float64ToStr((v.Price - v.Coupon) * (zhios_third_party_utils.AnyToFloat64(v.CosRatio) / 100)), | |||
"pvd": pvd, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} |
@@ -0,0 +1,18 @@ | |||
package db | |||
import "xorm.io/xorm" | |||
func QueryNativeString(Db *xorm.Engine, sql string, args ...interface{}) ([]map[string]string, error) { | |||
results, err := Db.SQL(sql, args...).QueryString() | |||
return results, err | |||
} | |||
func QueryNativeStringSess(sess *xorm.Session, sql string, args ...interface{}) ([]map[string]string, error) { | |||
results, err := sess.SQL(sql, args...).QueryString() | |||
return results, err | |||
} | |||
// InsertCommWithSession common insert | |||
func InsertCommWithSession(session *xorm.Session, model interface{}) (int64, error) { | |||
row, err := session.InsertOne(model) | |||
return row, err | |||
} |
@@ -0,0 +1,24 @@ | |||
package db | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db/model" | |||
"xorm.io/xorm" | |||
) | |||
func SysCfgGetWithDb(eg *xorm.Engine, masterId string, HKey string) string { | |||
cfg, err := SysCfgGetOne(eg, HKey) | |||
if err != nil || cfg == nil { | |||
return "" | |||
} | |||
return cfg.Val | |||
} | |||
// 获取一条记录 | |||
func SysCfgGetOne(Db *xorm.Engine, key string) (*model.SysCfg, error) { | |||
var cfgList model.SysCfg | |||
if has, err := Db.Where("`key`=?", key).Get(&cfgList); err != nil || has == false { | |||
return nil, err | |||
} | |||
return &cfgList, nil | |||
} |
@@ -0,0 +1,125 @@ | |||
package db | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db/model" | |||
"errors" | |||
"xorm.io/xorm" | |||
) | |||
// SysUnionByTaobaoByUseByAuth is 正在使用Taobao且已授权的设置 | |||
func SysUnionByTaobaoByUseByAuth(Db *xorm.Engine, masterId string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = 'taobao' AND is_use = 1 AND auth_status = 1").Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
func SysUnionByMeituanByUseByAuth(Db *xorm.Engine, masterId string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = 'meituan' AND is_use = 1 ").Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
func SysUnionByTikTokByUseByAuth(Db *xorm.Engine, masterId string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = 'tikTok' AND is_use = 1 ").Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
func SysUnionByElmByUseByAuth(Db *xorm.Engine, masterId string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = 'elm' AND is_use = 1 ").Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
func SysUnionByTikTokByUseByAuthId(Db *xorm.Engine, id string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = 'tikTok' AND id=? ", id).Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
func SysUnionByTikTokByUseByAuthNoCache(Db *xorm.Engine, masterId string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = 'tikTok' AND is_use = 1 ").Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
// SysUnionByPVDByUse is 正在使用的设置 | |||
func SysUnionByPVDByUse(Db *xorm.Engine, masterId, pvd string) (*model.SysUnionSet, error) { | |||
var ( | |||
m model.SysUnionSet | |||
) | |||
has, err := Db.Where("provider = ? AND is_use = 1", pvd).Get(&m) | |||
if err != nil { | |||
return nil, err | |||
} | |||
if !has { | |||
return nil, errors.New("找不到联盟设置") | |||
} | |||
return &m, nil | |||
} | |||
// 更新记录 | |||
func SysUnionUpdate(Db *xorm.Engine, data *model.SysUnionSet) { | |||
row, err := Db.ID(data.Id).AllCols().Update(data) | |||
if err != nil || row == 0 { | |||
} | |||
} | |||
func SysUnionById(eg *xorm.Engine, id string) *model.SysUnionSet { | |||
var data model.SysUnionSet | |||
get, err := eg.Where("id=?", id).Get(&data) | |||
if get == false || err != nil { | |||
return nil | |||
} | |||
return &data | |||
} |
@@ -0,0 +1,7 @@ | |||
package model | |||
type SysCfg struct { | |||
Key string `json:"key" xorm:"not null pk comment('键') VARCHAR(127)"` | |||
Val string `json:"val" xorm:"comment('值') TEXT"` | |||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||
} |
@@ -0,0 +1,27 @@ | |||
package model | |||
import ( | |||
"time" | |||
) | |||
type SysUnionSet struct { | |||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||
Provider string `json:"provider" xorm:"not null default '' comment('联盟类型;taobao:淘宝;jd:京东;pdd:多多(拼多多);vip:唯品会;suning:苏宁;kaola:考拉;duomai:多麦') VARCHAR(32)"` | |||
Name string `json:"name" xorm:"not null default '' comment('备注名') VARCHAR(32)"` | |||
ChannelList string `json:"channel_list" xorm:"not null default '["share","weixin","android","ios"]' comment('渠道开关;share:分享;weixin:微信;android:安卓;ios:ios') VARCHAR(64)"` | |||
AuthType int `json:"auth_type" xorm:"not null default 1 comment('授权模式;1:跟随官方;2:自有联盟账号') TINYINT(1)"` | |||
LiveAuthType int `json:"live_auth_type" xorm:"not null default 1 comment('授权模式;1:跟随官方;2:自有联盟账号') TINYINT(1)"` | |||
PromoteShare string `json:"promote_share" xorm:"not null default '' comment('分享推广位') VARCHAR(128)"` | |||
SelfShare string `json:"self_share" xorm:"not null default '' comment('自购推广位') VARCHAR(128)"` | |||
KeyData string `json:"key_data" xorm:"comment('联盟key的值') TEXT"` | |||
IsUse int `json:"is_use" xorm:"default 0 comment('是否启用;0否;1是') TINYINT(3)"` | |||
AuthStatus int `json:"auth_status" xorm:"default 0 comment('授权状态;0:未授权;1:已授权') TINYINT(1)"` | |||
AuthTime time.Time `json:"auth_time" xorm:"comment('授权时间') TIMESTAMP"` | |||
SyncTime time.Time `json:"sync_time" xorm:"comment('订单同步时间') TIMESTAMP"` | |||
ExpireTime time.Time `json:"expire_time" xorm:"TIMESTAMP"` | |||
CreateAt time.Time `json:"create_at" xorm:"not null default CURRENT_TIMESTAMP TIMESTAMP"` | |||
UpdateAt time.Time `json:"update_at" xorm:"not null default CURRENT_TIMESTAMP TIMESTAMP"` | |||
IsDelete int `json:"is_delete" xorm:"not null default 0 TINYINT(1)"` | |||
AppletIsAuth int `json:"applet_is_auth" xorm:"not null default 0 TINYINT(1)"` | |||
AppletPid string `json:"applet_pid" xorm:"not null comment('') TEXT"` | |||
} |
@@ -9,6 +9,7 @@ require ( | |||
github.com/golang/protobuf v1.5.3 // indirect | |||
github.com/gomodule/redigo v1.8.9 | |||
github.com/google/go-cmp v0.5.9 // indirect | |||
github.com/jinzhu/copier v0.3.5 | |||
github.com/kr/pretty v0.3.1 // indirect | |||
github.com/nilorg/sdk v0.0.0-20221104025912-4b6ccb7004d8 | |||
github.com/onsi/ginkgo v1.16.5 // indirect | |||
@@ -18,4 +19,5 @@ require ( | |||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 | |||
google.golang.org/protobuf v1.28.0 // indirect | |||
gopkg.in/yaml.v3 v3.0.1 // indirect | |||
xorm.io/xorm v1.3.2 | |||
) |
@@ -1,21 +1,107 @@ | |||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= | |||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= | |||
gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s= | |||
gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU= | |||
gitee.com/travelliu/dm v1.8.11192/go.mod h1:DHTzyhCrM843x9VdKVbZ+GKXGRbKM2sJ4LxihRxShkE= | |||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | |||
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= | |||
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= | |||
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= | |||
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= | |||
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= | |||
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= | |||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | |||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | |||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | |||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | |||
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= | |||
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= | |||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= | |||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= | |||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= | |||
github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= | |||
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= | |||
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= | |||
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= | |||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= | |||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= | |||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= | |||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= | |||
github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= | |||
github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= | |||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= | |||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= | |||
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= | |||
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= | |||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= | |||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= | |||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= | |||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= | |||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= | |||
github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= | |||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | |||
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= | |||
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= | |||
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= | |||
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | |||
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | |||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | |||
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | |||
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | |||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | |||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= | |||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | |||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | |||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | |||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | |||
github.com/denisenkom/go-mssqldb v0.10.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= | |||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= | |||
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= | |||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= | |||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= | |||
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= | |||
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= | |||
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= | |||
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= | |||
github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= | |||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | |||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | |||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= | |||
github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= | |||
github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= | |||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | |||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= | |||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | |||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | |||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | |||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | |||
github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= | |||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | |||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= | |||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= | |||
github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg= | |||
github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= | |||
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= | |||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= | |||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= | |||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | |||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= | |||
github.com/goccy/go-json v0.8.1 h1:4/Wjm0JIJaTDm8K1KcGrLHJoa8EsJ13YWeX+6Kfq6uI= | |||
github.com/goccy/go-json v0.8.1/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= | |||
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= | |||
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= | |||
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= | |||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= | |||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= | |||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= | |||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= | |||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | |||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= | |||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= | |||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= | |||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | |||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | |||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | |||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= | |||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= | |||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= | |||
@@ -26,47 +112,283 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS | |||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= | |||
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= | |||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= | |||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | |||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | |||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= | |||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | |||
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws= | |||
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE= | |||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | |||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | |||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | |||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | |||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | |||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | |||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | |||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | |||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= | |||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | |||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | |||
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= | |||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | |||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | |||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= | |||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | |||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= | |||
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= | |||
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | |||
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | |||
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= | |||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= | |||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= | |||
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= | |||
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= | |||
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= | |||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= | |||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= | |||
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= | |||
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= | |||
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= | |||
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= | |||
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= | |||
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= | |||
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | |||
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | |||
github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= | |||
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= | |||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | |||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= | |||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= | |||
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= | |||
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= | |||
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= | |||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= | |||
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= | |||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= | |||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= | |||
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= | |||
github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= | |||
github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= | |||
github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= | |||
github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= | |||
github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= | |||
github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= | |||
github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= | |||
github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= | |||
github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= | |||
github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= | |||
github.com/jackc/pgconn v1.8.1/go.mod h1:JV6m6b6jhjdmzchES0drzCcYcAHS1OPD5xu3OZ/lE2g= | |||
github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= | |||
github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= | |||
github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= | |||
github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= | |||
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= | |||
github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= | |||
github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= | |||
github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= | |||
github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= | |||
github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= | |||
github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= | |||
github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= | |||
github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= | |||
github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= | |||
github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= | |||
github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= | |||
github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= | |||
github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= | |||
github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= | |||
github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= | |||
github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= | |||
github.com/jackc/pgtype v1.7.0/go.mod h1:ZnHF+rMePVqDKaOfJVI4Q8IVvAQMryDlDkZnKOI75BE= | |||
github.com/jackc/pgtype v1.8.0/go.mod h1:PqDKcEBtllAtk/2p6z6SHdXW5UB+MhE75tUol2OKexE= | |||
github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= | |||
github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= | |||
github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= | |||
github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= | |||
github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= | |||
github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= | |||
github.com/jackc/pgx/v4 v4.11.0/go.mod h1:i62xJgdrtVDsnL3U8ekyrQXEwGNTRoG7/8r+CIdYfcc= | |||
github.com/jackc/pgx/v4 v4.12.0/go.mod h1:fE547h6VulLPA3kySjfnSG/e2D861g/50JlVUa/ub60= | |||
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= | |||
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= | |||
github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= | |||
github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= | |||
github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= | |||
github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= | |||
github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= | |||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= | |||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= | |||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= | |||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= | |||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= | |||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= | |||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= | |||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= | |||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= | |||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= | |||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= | |||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= | |||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | |||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | |||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | |||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | |||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= | |||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= | |||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= | |||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | |||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= | |||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | |||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | |||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | |||
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | |||
github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | |||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | |||
github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= | |||
github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | |||
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= | |||
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= | |||
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= | |||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= | |||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= | |||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= | |||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= | |||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= | |||
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= | |||
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | |||
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | |||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= | |||
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= | |||
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= | |||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | |||
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= | |||
github.com/mattn/go-sqlite3 v1.14.9 h1:10HX2Td0ocZpYEjhilsuo6WWtUqttj2Kb0KtD86/KYA= | |||
github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= | |||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= | |||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | |||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= | |||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | |||
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= | |||
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= | |||
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= | |||
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | |||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | |||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | |||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= | |||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | |||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | |||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= | |||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= | |||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= | |||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | |||
github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= | |||
github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= | |||
github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= | |||
github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= | |||
github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= | |||
github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= | |||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= | |||
github.com/nilorg/sdk v0.0.0-20221104025912-4b6ccb7004d8 h1:9hvJ/9GQssABrUYNOW1Q6X9/7uY6+Srj9YYYQZVC0AE= | |||
github.com/nilorg/sdk v0.0.0-20221104025912-4b6ccb7004d8/go.mod h1:X1swpPdqguAZaBDoEPyEWHSsJii0YQ1o+3piMv6W3JU= | |||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= | |||
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= | |||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= | |||
github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= | |||
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= | |||
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= | |||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | |||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | |||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | |||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= | |||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= | |||
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= | |||
github.com/onsi/ginkgo/v2 v2.1.3 h1:e/3Cwtogj0HA+25nMP1jCMDIf8RtRYbGwGGuBIFztkc= | |||
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= | |||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= | |||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= | |||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= | |||
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= | |||
github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= | |||
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= | |||
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= | |||
github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= | |||
github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= | |||
github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= | |||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= | |||
github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= | |||
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= | |||
github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= | |||
github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= | |||
github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= | |||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= | |||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= | |||
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= | |||
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= | |||
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= | |||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= | |||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | |||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | |||
github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= | |||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | |||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | |||
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= | |||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= | |||
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= | |||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= | |||
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= | |||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= | |||
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= | |||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | |||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | |||
github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | |||
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= | |||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= | |||
github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= | |||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | |||
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | |||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | |||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= | |||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= | |||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= | |||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= | |||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= | |||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | |||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= | |||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= | |||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= | |||
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= | |||
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= | |||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | |||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= | |||
github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= | |||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= | |||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= | |||
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= | |||
github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= | |||
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= | |||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | |||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= | |||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= | |||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | |||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= | |||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= | |||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= | |||
github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= | |||
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= | |||
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= | |||
github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= | |||
github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= | |||
github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= | |||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | |||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | |||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= | |||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | |||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | |||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | |||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | |||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= | |||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | |||
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= | |||
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= | |||
github.com/syyongx/php2go v0.9.7 h1:boZtLbm2xYbW49mX9M7Vq2zkVhBhv3fCqs2T16d2bGA= | |||
github.com/syyongx/php2go v0.9.7/go.mod h1:meN2eIhhUoxOd2nMxbpe8g6cFPXI5O9/UAAuz7oDdzw= | |||
github.com/tidwall/gjson v1.14.1 h1:iymTbGkQBhveq21bEvAQ81I0LEBork8BFe1CUZXdyuo= | |||
@@ -75,57 +397,180 @@ github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= | |||
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= | |||
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= | |||
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= | |||
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= | |||
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= | |||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= | |||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | |||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | |||
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= | |||
github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= | |||
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= | |||
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= | |||
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | |||
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= | |||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | |||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | |||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | |||
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | |||
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= | |||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= | |||
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= | |||
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= | |||
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= | |||
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | |||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | |||
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= | |||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | |||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | |||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | |||
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | |||
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= | |||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | |||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | |||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | |||
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | |||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | |||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | |||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | |||
golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | |||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= | |||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | |||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI= | |||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | |||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | |||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | |||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= | |||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | |||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | |||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | |||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= | |||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= | |||
golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= | |||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | |||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | |||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | |||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | |||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= | |||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | |||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | |||
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | |||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | |||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | |||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | |||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= | |||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc= | |||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | |||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | |||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | |||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | |||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | |||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||
golang.org/x/sys v0.0.0-20210902050250-f475640dd07b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= | |||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= | |||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | |||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | |||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= | |||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | |||
golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= | |||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= | |||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | |||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= | |||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | |||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | |||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | |||
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= | |||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | |||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | |||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | |||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | |||
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | |||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | |||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | |||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= | |||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | |||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | |||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | |||
golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | |||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | |||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= | |||
golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | |||
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | |||
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | |||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | |||
golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= | |||
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | |||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e h1:4nW4NLDYnU28ojHaHO8OVxFHk/aQ33U01a9cjED+pzE= | |||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | |||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | |||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | |||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | |||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | |||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | |||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= | |||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | |||
google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= | |||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | |||
google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | |||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= | |||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | |||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | |||
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | |||
google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= | |||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | |||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= | |||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | |||
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= | |||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= | |||
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= | |||
google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | |||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | |||
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | |||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= | |||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | |||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= | |||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | |||
@@ -136,11 +581,21 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 | |||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | |||
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= | |||
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | |||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | |||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= | |||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | |||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | |||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | |||
gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= | |||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= | |||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= | |||
gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= | |||
gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= | |||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= | |||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= | |||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= | |||
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= | |||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= | |||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
@@ -149,3 +604,126 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | |||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | |||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | |||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | |||
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | |||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | |||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | |||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= | |||
lukechampine.com/uint128 v1.1.1 h1:pnxCASz787iMf+02ssImqk6OLt+Z5QHMoZyUXR4z6JU= | |||
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= | |||
modernc.org/cc/v3 v3.33.6/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.33.9/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.33.11/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.34.0/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.0/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.4/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.5/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.7/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.8/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.10/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.15/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.16/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.17/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/cc/v3 v3.35.18 h1:rMZhRcWrba0y3nVmdiQ7kxAgOOSq2m2f2VzjHLgEs6U= | |||
modernc.org/cc/v3 v3.35.18/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= | |||
modernc.org/ccgo/v3 v3.9.5/go.mod h1:umuo2EP2oDSBnD3ckjaVUXMrmeAw8C8OSICVa0iFf60= | |||
modernc.org/ccgo/v3 v3.10.0/go.mod h1:c0yBmkRFi7uW4J7fwx/JiijwOjeAeR2NoSaRVFPmjMw= | |||
modernc.org/ccgo/v3 v3.11.0/go.mod h1:dGNposbDp9TOZ/1KBxghxtUp/bzErD0/0QW4hhSaBMI= | |||
modernc.org/ccgo/v3 v3.11.1/go.mod h1:lWHxfsn13L3f7hgGsGlU28D9eUOf6y3ZYHKoPaKU0ag= | |||
modernc.org/ccgo/v3 v3.11.3/go.mod h1:0oHunRBMBiXOKdaglfMlRPBALQqsfrCKXgw9okQ3GEw= | |||
modernc.org/ccgo/v3 v3.12.4/go.mod h1:Bk+m6m2tsooJchP/Yk5ji56cClmN6R1cqc9o/YtbgBQ= | |||
modernc.org/ccgo/v3 v3.12.6/go.mod h1:0Ji3ruvpFPpz+yu+1m0wk68pdr/LENABhTrDkMDWH6c= | |||
modernc.org/ccgo/v3 v3.12.8/go.mod h1:Hq9keM4ZfjCDuDXxaHptpv9N24JhgBZmUG5q60iLgUo= | |||
modernc.org/ccgo/v3 v3.12.11/go.mod h1:0jVcmyDwDKDGWbcrzQ+xwJjbhZruHtouiBEvDfoIsdg= | |||
modernc.org/ccgo/v3 v3.12.14/go.mod h1:GhTu1k0YCpJSuWwtRAEHAol5W7g1/RRfS4/9hc9vF5I= | |||
modernc.org/ccgo/v3 v3.12.18/go.mod h1:jvg/xVdWWmZACSgOiAhpWpwHWylbJaSzayCqNOJKIhs= | |||
modernc.org/ccgo/v3 v3.12.20/go.mod h1:aKEdssiu7gVgSy/jjMastnv/q6wWGRbszbheXgWRHc8= | |||
modernc.org/ccgo/v3 v3.12.21/go.mod h1:ydgg2tEprnyMn159ZO/N4pLBqpL7NOkJ88GT5zNU2dE= | |||
modernc.org/ccgo/v3 v3.12.22/go.mod h1:nyDVFMmMWhMsgQw+5JH6B6o4MnZ+UQNw1pp52XYFPRk= | |||
modernc.org/ccgo/v3 v3.12.25/go.mod h1:UaLyWI26TwyIT4+ZFNjkyTbsPsY3plAEB6E7L/vZV3w= | |||
modernc.org/ccgo/v3 v3.12.29/go.mod h1:FXVjG7YLf9FetsS2OOYcwNhcdOLGt8S9bQ48+OP75cE= | |||
modernc.org/ccgo/v3 v3.12.36/go.mod h1:uP3/Fiezp/Ga8onfvMLpREq+KUjUmYMxXPO8tETHtA8= | |||
modernc.org/ccgo/v3 v3.12.38/go.mod h1:93O0G7baRST1vNj4wnZ49b1kLxt0xCW5Hsa2qRaZPqc= | |||
modernc.org/ccgo/v3 v3.12.43/go.mod h1:k+DqGXd3o7W+inNujK15S5ZYuPoWYLpF5PYougCmthU= | |||
modernc.org/ccgo/v3 v3.12.46/go.mod h1:UZe6EvMSqOxaJ4sznY7b23/k13R8XNlyWsO5bAmSgOE= | |||
modernc.org/ccgo/v3 v3.12.47/go.mod h1:m8d6p0zNps187fhBwzY/ii6gxfjob1VxWb919Nk1HUk= | |||
modernc.org/ccgo/v3 v3.12.50/go.mod h1:bu9YIwtg+HXQxBhsRDE+cJjQRuINuT9PUK4orOco/JI= | |||
modernc.org/ccgo/v3 v3.12.51/go.mod h1:gaIIlx4YpmGO2bLye04/yeblmvWEmE4BBBls4aJXFiE= | |||
modernc.org/ccgo/v3 v3.12.53/go.mod h1:8xWGGTFkdFEWBEsUmi+DBjwu/WLy3SSOrqEmKUjMeEg= | |||
modernc.org/ccgo/v3 v3.12.54/go.mod h1:yANKFTm9llTFVX1FqNKHE0aMcQb1fuPJx6p8AcUx+74= | |||
modernc.org/ccgo/v3 v3.12.55/go.mod h1:rsXiIyJi9psOwiBkplOaHye5L4MOOaCjHg1Fxkj7IeU= | |||
modernc.org/ccgo/v3 v3.12.56/go.mod h1:ljeFks3faDseCkr60JMpeDb2GSO3TKAmrzm7q9YOcMU= | |||
modernc.org/ccgo/v3 v3.12.57/go.mod h1:hNSF4DNVgBl8wYHpMvPqQWDQx8luqxDnNGCMM4NFNMc= | |||
modernc.org/ccgo/v3 v3.12.60/go.mod h1:k/Nn0zdO1xHVWjPYVshDeWKqbRWIfif5dtsIOCUVMqM= | |||
modernc.org/ccgo/v3 v3.12.65/go.mod h1:D6hQtKxPNZiY6wDBtehSGKFKmyXn53F8nGTpH+POmS4= | |||
modernc.org/ccgo/v3 v3.12.66/go.mod h1:jUuxlCFZTUZLMV08s7B1ekHX5+LIAurKTTaugUr/EhQ= | |||
modernc.org/ccgo/v3 v3.12.67/go.mod h1:Bll3KwKvGROizP2Xj17GEGOTrlvB1XcVaBrC90ORO84= | |||
modernc.org/ccgo/v3 v3.12.73/go.mod h1:hngkB+nUUqzOf3iqsM48Gf1FZhY599qzVg1iX+BT3cQ= | |||
modernc.org/ccgo/v3 v3.12.81/go.mod h1:p2A1duHoBBg1mFtYvnhAnQyI6vL0uw5PGYLSIgF6rYY= | |||
modernc.org/ccgo/v3 v3.12.82 h1:wudcnJyjLj1aQQCXF3IM9Gz2X6UNjw+afIghzdtn0v8= | |||
modernc.org/ccgo/v3 v3.12.82/go.mod h1:ApbflUfa5BKadjHynCficldU1ghjen84tuM5jRynB7w= | |||
modernc.org/ccorpus v1.11.1 h1:K0qPfpVG1MJh5BYazccnmhywH4zHuOgJXgbjzyp6dWA= | |||
modernc.org/ccorpus v1.11.1/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= | |||
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= | |||
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= | |||
modernc.org/libc v1.9.8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w= | |||
modernc.org/libc v1.9.11/go.mod h1:NyF3tsA5ArIjJ83XB0JlqhjTabTCHm9aX4XMPHyQn0Q= | |||
modernc.org/libc v1.11.0/go.mod h1:2lOfPmj7cz+g1MrPNmX65QCzVxgNq2C5o0jdLY2gAYg= | |||
modernc.org/libc v1.11.2/go.mod h1:ioIyrl3ETkugDO3SGZ+6EOKvlP3zSOycUETe4XM4n8M= | |||
modernc.org/libc v1.11.5/go.mod h1:k3HDCP95A6U111Q5TmG3nAyUcp3kR5YFZTeDS9v8vSU= | |||
modernc.org/libc v1.11.6/go.mod h1:ddqmzR6p5i4jIGK1d/EiSw97LBcE3dK24QEwCFvgNgE= | |||
modernc.org/libc v1.11.11/go.mod h1:lXEp9QOOk4qAYOtL3BmMve99S5Owz7Qyowzvg6LiZso= | |||
modernc.org/libc v1.11.13/go.mod h1:ZYawJWlXIzXy2Pzghaf7YfM8OKacP3eZQI81PDLFdY8= | |||
modernc.org/libc v1.11.16/go.mod h1:+DJquzYi+DMRUtWI1YNxrlQO6TcA5+dRRiq8HWBWRC8= | |||
modernc.org/libc v1.11.19/go.mod h1:e0dgEame6mkydy19KKaVPBeEnyJB4LGNb0bBH1EtQ3I= | |||
modernc.org/libc v1.11.24/go.mod h1:FOSzE0UwookyT1TtCJrRkvsOrX2k38HoInhw+cSCUGk= | |||
modernc.org/libc v1.11.26/go.mod h1:SFjnYi9OSd2W7f4ct622o/PAYqk7KHv6GS8NZULIjKY= | |||
modernc.org/libc v1.11.27/go.mod h1:zmWm6kcFXt/jpzeCgfvUNswM0qke8qVwxqZrnddlDiE= | |||
modernc.org/libc v1.11.28/go.mod h1:Ii4V0fTFcbq3qrv3CNn+OGHAvzqMBvC7dBNyC4vHZlg= | |||
modernc.org/libc v1.11.31/go.mod h1:FpBncUkEAtopRNJj8aRo29qUiyx5AvAlAxzlx9GNaVM= | |||
modernc.org/libc v1.11.34/go.mod h1:+Tzc4hnb1iaX/SKAutJmfzES6awxfU1BPvrrJO0pYLg= | |||
modernc.org/libc v1.11.37/go.mod h1:dCQebOwoO1046yTrfUE5nX1f3YpGZQKNcITUYWlrAWo= | |||
modernc.org/libc v1.11.39/go.mod h1:mV8lJMo2S5A31uD0k1cMu7vrJbSA3J3waQJxpV4iqx8= | |||
modernc.org/libc v1.11.42/go.mod h1:yzrLDU+sSjLE+D4bIhS7q1L5UwXDOw99PLSX0BlZvSQ= | |||
modernc.org/libc v1.11.44/go.mod h1:KFq33jsma7F5WXiYelU8quMJasCCTnHK0mkri4yPHgA= | |||
modernc.org/libc v1.11.45/go.mod h1:Y192orvfVQQYFzCNsn+Xt0Hxt4DiO4USpLNXBlXg/tM= | |||
modernc.org/libc v1.11.47/go.mod h1:tPkE4PzCTW27E6AIKIR5IwHAQKCAtudEIeAV1/SiyBg= | |||
modernc.org/libc v1.11.49/go.mod h1:9JrJuK5WTtoTWIFQ7QjX2Mb/bagYdZdscI3xrvHbXjE= | |||
modernc.org/libc v1.11.51/go.mod h1:R9I8u9TS+meaWLdbfQhq2kFknTW0O3aw3kEMqDDxMaM= | |||
modernc.org/libc v1.11.53/go.mod h1:5ip5vWYPAoMulkQ5XlSJTy12Sz5U6blOQiYasilVPsU= | |||
modernc.org/libc v1.11.54/go.mod h1:S/FVnskbzVUrjfBqlGFIPA5m7UwB3n9fojHhCNfSsnw= | |||
modernc.org/libc v1.11.55/go.mod h1:j2A5YBRm6HjNkoSs/fzZrSxCuwWqcMYTDPLNx0URn3M= | |||
modernc.org/libc v1.11.56/go.mod h1:pakHkg5JdMLt2OgRadpPOTnyRXm/uzu+Yyg/LSLdi18= | |||
modernc.org/libc v1.11.58/go.mod h1:ns94Rxv0OWyoQrDqMFfWwka2BcaF6/61CqJRK9LP7S8= | |||
modernc.org/libc v1.11.70/go.mod h1:DUOmMYe+IvKi9n6Mycyx3DbjfzSKrdr/0Vgt3j7P5gw= | |||
modernc.org/libc v1.11.71/go.mod h1:DUOmMYe+IvKi9n6Mycyx3DbjfzSKrdr/0Vgt3j7P5gw= | |||
modernc.org/libc v1.11.75/go.mod h1:dGRVugT6edz361wmD9gk6ax1AbDSe0x5vji0dGJiPT0= | |||
modernc.org/libc v1.11.82/go.mod h1:NF+Ek1BOl2jeC7lw3a7Jj5PWyHPwWD4aq3wVKxqV1fI= | |||
modernc.org/libc v1.11.86/go.mod h1:ePuYgoQLmvxdNT06RpGnaDKJmDNEkV7ZPKI2jnsvZoE= | |||
modernc.org/libc v1.11.87 h1:PzIzOqtlzMDDcCzJ5cUP6h/Ku6Fa9iyflP2ccTY64aE= | |||
modernc.org/libc v1.11.87/go.mod h1:Qvd5iXTeLhI5PS0XSyqMY99282y+3euapQFxM7jYnpY= | |||
modernc.org/mathutil v1.1.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= | |||
modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= | |||
modernc.org/mathutil v1.4.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= | |||
modernc.org/mathutil v1.4.1 h1:ij3fYGe8zBF4Vu+g0oT7mB06r8sqGWKuJu1yXeR4by8= | |||
modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= | |||
modernc.org/memory v1.0.4/go.mod h1:nV2OApxradM3/OVbs2/0OsP6nPfakXpi50C7dcoHXlc= | |||
modernc.org/memory v1.0.5 h1:XRch8trV7GgvTec2i7jc33YlUI0RKVDBvZ5eZ5m8y14= | |||
modernc.org/memory v1.0.5/go.mod h1:B7OYswTRnfGg+4tDH1t1OeUNnsy2viGTdME4tzd+IjM= | |||
modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A= | |||
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= | |||
modernc.org/sqlite v1.14.2 h1:ohsW2+e+Qe2To1W6GNezzKGwjXwSax6R+CrhRxVaFbE= | |||
modernc.org/sqlite v1.14.2/go.mod h1:yqfn85u8wVOE6ub5UT8VI9JjhrwBUUCNyTACN0h6Sx8= | |||
modernc.org/strutil v1.1.1 h1:xv+J1BXY3Opl2ALrBwyfEikFAj8pmqcpnfmuwUwcozs= | |||
modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= | |||
modernc.org/tcl v1.8.13 h1:V0sTNBw0Re86PvXZxuCub3oO9WrSTqALgrwNZNvLFGw= | |||
modernc.org/tcl v1.8.13/go.mod h1:V+q/Ef0IJaNUSECieLU4o+8IScapxnMyFV6i/7uQlAY= | |||
modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= | |||
modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= | |||
modernc.org/z v1.2.19 h1:BGyRFWhDVn5LFS5OcX4Yd/MlpRTOc7hOPTdcIpCiUao= | |||
modernc.org/z v1.2.19/go.mod h1:+ZpP0pc4zz97eukOzW3xagV/lS82IpPN9NGG5pNF9vY= | |||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= | |||
sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= | |||
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978 h1:bvLlAPW1ZMTWA32LuZMBEGHAUOcATZjzHcotf3SWweM= | |||
xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= | |||
xorm.io/xorm v1.3.2 h1:uTRRKF2jYzbZ5nsofXVUx6ncMaek+SHjWYtCXyZo1oM= | |||
xorm.io/xorm v1.3.2/go.mod h1:9NbjqdnjX6eyjRRhh01GHm64r6N9shTb/8Ak3YRt8Nw= |
@@ -75,3 +75,65 @@ func HaodankuSelectedItem(params map[string]string) []map[string]string { | |||
} | |||
return goods | |||
} | |||
func HaodankuTikTok(params map[string]string) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
reqNew, err := SendReqNew("https://v3.api.haodanku.com/dy_rankitem_list", params) | |||
if err != nil { | |||
return goods | |||
} | |||
data := gjson.Get(string(reqNew), "data").String() | |||
if data == "" { | |||
return goods | |||
} | |||
var oldGoods []md.HaodankuTikTok | |||
json.Unmarshal([]byte(data), &oldGoods) | |||
for _, v := range oldGoods { | |||
var tmp = map[string]string{ | |||
"gid": v.ProductID, | |||
"title": v.Itemshorttitle, | |||
"img": v.Itempic, | |||
"sales": "", | |||
"price": v.Itemendprice, | |||
"cost_price": v.Itemprice, | |||
"coupon": "", | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.Dyrates), | |||
"commission": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.Itemendprice) * (zhios_third_party_utils.AnyToFloat64(v.Dyrates) / 100)), | |||
"pvd": md.PVD_TIKTOK, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} | |||
func HaodankuTaobaoRankList(params map[string]string) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
reqNew, err := SendReqNew("http://v2.api.haodanku.com/sales_list", params) | |||
if err != nil { | |||
return goods | |||
} | |||
data := gjson.Get(string(reqNew), "data").String() | |||
if data == "" { | |||
return goods | |||
} | |||
var oldGoods []md.HDKGoodsTaobaoRankList | |||
json.Unmarshal([]byte(data), &oldGoods) | |||
for _, v := range oldGoods { | |||
var tmp = map[string]string{ | |||
"gid": v.Itemid, | |||
"title": v.Itemtitle, | |||
"img": v.Itempic, | |||
"sales": "", | |||
"price": v.Itemendprice, | |||
"cost_price": v.Itemprice, | |||
"coupon": v.Couponmoney, | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.Tkrates), | |||
"commission": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.Itemendprice) * (zhios_third_party_utils.AnyToFloat64(v.Tkrates) / 100)), | |||
"pvd": "taobao", | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} |
@@ -41,3 +41,59 @@ type DataokeFriendCircleList struct { | |||
ShangchaoPic string `json:"shangchaoPic"` | |||
Tbcid int `json:"tbcid"` | |||
} | |||
type DataokeTaobaoRankList struct { | |||
ID int `json:"id"` | |||
Goodsid string `json:"goodsId"` | |||
Ranking int `json:"ranking"` | |||
Dtitle string `json:"dtitle"` | |||
Actualprice interface{} `json:"actualPrice"` | |||
Commissionrate interface{} `json:"commissionRate"` | |||
Couponprice interface{} `json:"couponPrice"` | |||
Couponreceivenum interface{} `json:"couponReceiveNum"` | |||
Coupontotalnum interface{} `json:"couponTotalNum"` | |||
Monthsales int `json:"monthSales"` | |||
Twohourssales int `json:"twoHoursSales"` | |||
Dailysales int `json:"dailySales"` | |||
Hotpush int `json:"hotPush"` | |||
Mainpic string `json:"mainPic"` | |||
Title string `json:"title"` | |||
Desc string `json:"desc"` | |||
Originalprice interface{} `json:"originalPrice"` | |||
Couponlink string `json:"couponLink"` | |||
Couponstarttime string `json:"couponStartTime"` | |||
Couponendtime string `json:"couponEndTime"` | |||
Commissiontype int `json:"commissionType"` | |||
Createtime string `json:"createTime"` | |||
Activitytype int `json:"activityType"` | |||
Imgs string `json:"imgs"` | |||
Guidename string `json:"guideName"` | |||
Shoptype int `json:"shopType"` | |||
Couponconditions string `json:"couponConditions"` | |||
Newrankinggoods int `json:"newRankingGoods"` | |||
Sellerid string `json:"sellerId"` | |||
Quanmlink int `json:"quanMLink"` | |||
Hzquanover int `json:"hzQuanOver"` | |||
Yunfeixian int `json:"yunfeixian"` | |||
Estimateamount int `json:"estimateAmount"` | |||
Freeshipremotedistrict int `json:"freeshipRemoteDistrict"` | |||
ShopName string `json:"shopName"` | |||
} | |||
type DataokeTikTokRankList struct { | |||
CosFee float64 `json:"cosFee"` | |||
CosRatio float64 `json:"cosRatio"` | |||
Coupon float64 `json:"coupon"` | |||
CouponPrice float64 `json:"couponPrice"` | |||
ID string `json:"id"` | |||
Imgs []string `json:"imgs"` | |||
Price float64 `json:"price"` | |||
ProductID string `json:"productId"` | |||
Sales int64 `json:"sales"` | |||
ShopName string `json:"shopName"` | |||
Title string `json:"title"` | |||
ItemImg string `json:"item_img"` | |||
DetailURL string `json:"detailUrl"` | |||
ShopId string `json:"shopId"` | |||
Cover string `json:"cover"` | |||
} |
@@ -50,3 +50,91 @@ type HaodankuSelectedItem struct { | |||
Itemtitle string `json:"itemtitle"` | |||
AdviseTime string `json:"advise_time"` | |||
} | |||
type HaodankuTikTok struct { | |||
ItemScore string `json:"item_score"` | |||
Itemendprice string `json:"itemendprice"` | |||
Itempic string `json:"itempic"` | |||
Itemprice string `json:"itemprice"` | |||
Itemshorttitle string `json:"itemshorttitle"` | |||
Itemtitle string `json:"itemtitle"` | |||
LogisticsScore string `json:"logistics_score"` | |||
ProductCategoryID string `json:"product_category_id"` | |||
ProductID string `json:"product_id"` | |||
Sales string `json:"sales"` | |||
ShopID string `json:"shop_id"` | |||
ShopItemsale string `json:"shop_itemsale"` | |||
ShopName string `json:"shop_name"` | |||
ShopScore string `json:"shop_score"` | |||
Tkmoney string `json:"tkmoney"` | |||
Dyrates interface{} `json:"tkrates"` | |||
} | |||
type HDKGoodsTaobaoRankList struct { | |||
ProductID string `json:"product_id"` | |||
Itemid string `json:"itemid"` | |||
Xid string `json:"xid"` | |||
SellerID string `json:"seller_id"` | |||
Itemtitle string `json:"itemtitle"` | |||
Itemshorttitle string `json:"itemshorttitle"` | |||
Itemdesc string `json:"itemdesc"` | |||
Itemprice string `json:"itemprice"` | |||
Itemsale string `json:"itemsale"` | |||
Itemsale2 string `json:"itemsale2"` | |||
Todaysale string `json:"todaysale"` | |||
Itempic string `json:"itempic"` | |||
ItempicCopy string `json:"itempic_copy"` | |||
Fqcat string `json:"fqcat"` | |||
Itemendprice string `json:"itemendprice"` | |||
Shoptype string `json:"shoptype"` | |||
Tktype string `json:"tktype"` | |||
Tkrates interface{} `json:"tkrates"` | |||
Cuntao string `json:"cuntao"` | |||
Tkmoney string `json:"tkmoney"` | |||
Couponurl string `json:"couponurl"` | |||
Couponmoney string `json:"couponmoney"` | |||
Couponsurplus string `json:"couponsurplus"` | |||
Couponreceive string `json:"couponreceive"` | |||
Couponreceive2 string `json:"couponreceive2"` | |||
Todaycouponreceive string `json:"todaycouponreceive"` | |||
Couponnum string `json:"couponnum"` | |||
Couponexplain string `json:"couponexplain"` | |||
Couponstarttime string `json:"couponstarttime"` | |||
Couponendtime string `json:"couponendtime"` | |||
StartTime string `json:"start_time"` | |||
EndTime string `json:"end_time"` | |||
Starttime string `json:"starttime"` | |||
Isquality interface{} `json:"isquality"` | |||
ReportStatus string `json:"report_status"` | |||
IsBrand string `json:"is_brand"` | |||
IsLive string `json:"is_live"` | |||
GuideArticle string `json:"guide_article"` | |||
Videoid string `json:"videoid"` | |||
ActivityType string `json:"activity_type"` | |||
GeneralIndex string `json:"general_index"` | |||
Planlink interface{} `json:"planlink"` | |||
SellerName string `json:"seller_name"` | |||
Userid string `json:"userid"` | |||
Sellernick string `json:"sellernick"` | |||
Shopname string `json:"shopname"` | |||
OnlineUsers string `json:"online_users"` | |||
OriginalImg string `json:"original_img"` | |||
OriginalArticle string `json:"original_article"` | |||
Discount string `json:"discount"` | |||
IsExplosion string `json:"is_explosion"` | |||
Me interface{} `json:"me"` | |||
Activityid string `json:"activityid"` | |||
CouponCondition string `json:"coupon_condition"` | |||
TaobaoImage string `json:"taobao_image"` | |||
Shopid string `json:"shopid"` | |||
SonCategory string `json:"son_category"` | |||
DownType string `json:"down_type"` | |||
Deposit string `json:"deposit"` | |||
DepositDeduct string `json:"deposit_deduct"` | |||
IsShipping string `json:"is_shipping"` | |||
PresaleStartTime int `json:"presale_start_time"` | |||
PresaleEndTime int `json:"presale_end_time"` | |||
PresaleTailStartTime int `json:"presale_tail_start_time"` | |||
PresaleTailEndTime int `json:"presale_tail_end_time"` | |||
PresaleDiscountFeeText string `json:"presale_discount_fee_text"` | |||
} |
@@ -0,0 +1,40 @@ | |||
package md | |||
const ( | |||
/*********** DEVICE ***********/ | |||
PLATFORM_WX_APPLET = "wx_applet" // 小程序 | |||
PLATFORM_TOUTIAO_APPLET = "toutiao_applet" | |||
PLATFORM_TIKTOK_APPLET = "tiktok_applet" | |||
PLATFORM_BAIDU_APPLET = "baidu_applet" | |||
PLATFORM_ALIPAY_APPLET = "alipay_applet" | |||
PLATFORM_WAP = "wap" //h5 | |||
PLATFORM_ANDROID = "android" | |||
PLATFORM_IOS = "ios" | |||
PLATFORM_PC = "pc" | |||
PLATFORM_JSAPI = "jsapi" // 公众号 | |||
) | |||
const WX_PAY_BROWSER = "wx_pay_browser" // 用于判断显示支付方式 | |||
var PlatformList = map[string]struct{}{ | |||
PLATFORM_WX_APPLET: {}, | |||
PLATFORM_TOUTIAO_APPLET: {}, | |||
PLATFORM_TIKTOK_APPLET: {}, | |||
PLATFORM_BAIDU_APPLET: {}, | |||
PLATFORM_ALIPAY_APPLET: {}, | |||
PLATFORM_WAP: {}, | |||
PLATFORM_ANDROID: {}, | |||
PLATFORM_IOS: {}, | |||
PLATFORM_PC: {}, | |||
} | |||
var PlatformMap = map[string]string{ | |||
"android": "2", | |||
"ios": "2", | |||
"wap": "4", // 和小程序公用模板 | |||
"wx_applet": "4", //微信小程序 | |||
"tiktok_applet": "4", | |||
"baidu_applet": "4", | |||
"alipay_applet": "4", | |||
"toutiao_applet": "4", | |||
} |
@@ -0,0 +1,71 @@ | |||
package md | |||
type TBFeatureStruct struct { | |||
CategoryID int `json:"category_id"` | |||
CategoryName string `json:"category_name"` | |||
ClickURL string `json:"click_url"` | |||
CommissionRate string `json:"commission_rate"` | |||
CouponAmount int `json:"coupon_amount"` | |||
CouponClickURL string `json:"coupon_click_url"` | |||
CouponEndTime string `json:"coupon_end_time"` | |||
CouponRemainCount int `json:"coupon_remain_count"` | |||
CouponShareURL string `json:"coupon_share_url"` | |||
CouponStartFee string `json:"coupon_start_fee"` | |||
CouponStartTime string `json:"coupon_start_time"` | |||
CouponTotalCount int `json:"coupon_total_count"` | |||
ItemDescription string `json:"item_description"` | |||
ItemID interface{} `json:"item_id"` | |||
JhsPriceUspList string `json:"jhs_price_usp_list"` | |||
LevelOneCategoryID int `json:"level_one_category_id"` | |||
LevelOneCategoryName string `json:"level_one_category_name"` | |||
Nick string `json:"nick"` | |||
PictURL string `json:"pict_url"` | |||
ReservePrice string `json:"reserve_price"` | |||
SellerID int64 `json:"seller_id"` | |||
ShopTitle string `json:"shop_title"` | |||
ShortTitle string `json:"short_title"` | |||
SmallImages struct { | |||
String []string `json:"string"` | |||
} `json:"small_images"` | |||
SubTitle string `json:"sub_title"` | |||
Title string `json:"title"` | |||
UserType int `json:"user_type"` | |||
Volume int `json:"volume"` | |||
WhiteImage string `json:"white_image"` | |||
ZkFinalPrice string `json:"zk_final_price"` | |||
} | |||
type TBSearchFeatureStruct struct { | |||
CategoryID int `json:"category_id"` | |||
CategoryName string `json:"category_name"` | |||
ClickURL string `json:"click_url"` | |||
CommissionRate string `json:"commission_rate"` | |||
CouponAmount string `json:"coupon_amount"` | |||
CouponClickURL string `json:"coupon_click_url"` | |||
CouponEndTime string `json:"coupon_end_time"` | |||
CouponRemainCount int `json:"coupon_remain_count"` | |||
CouponShareURL string `json:"coupon_share_url"` | |||
CouponStartFee string `json:"coupon_start_fee"` | |||
CouponStartTime string `json:"coupon_start_time"` | |||
CouponTotalCount int `json:"coupon_total_count"` | |||
ItemDescription string `json:"item_description"` | |||
ItemID interface{} `json:"item_id"` | |||
JhsPriceUspList string `json:"jhs_price_usp_list"` | |||
LevelOneCategoryID int `json:"level_one_category_id"` | |||
LevelOneCategoryName string `json:"level_one_category_name"` | |||
Nick string `json:"nick"` | |||
PictURL string `json:"pict_url"` | |||
ReservePrice string `json:"reserve_price"` | |||
SellerID int64 `json:"seller_id"` | |||
ShopTitle string `json:"shop_title"` | |||
ShortTitle string `json:"short_title"` | |||
SmallImages struct { | |||
String []string `json:"string"` | |||
} `json:"small_images"` | |||
SubTitle string `json:"sub_title"` | |||
Title string `json:"title"` | |||
UserType int `json:"user_type"` | |||
Volume int `json:"volume"` | |||
WhiteImage string `json:"white_image"` | |||
ZkFinalPrice string `json:"zk_final_price"` | |||
} |
@@ -0,0 +1,29 @@ | |||
package md | |||
type TikTokBase struct { | |||
AuthType string `json:"auth_type"` | |||
LiveAuthType string `json:"live_auth_type"` | |||
ApiGoodsAppKey string `json:"api_goods_app_key"` | |||
ApiGoodsAppSecret string `json:"api_goods_app_secret"` | |||
ApiTeamAppKey string `json:"api_team_app_key"` | |||
ApiTeamAppSecret string `json:"api_team_app_secret"` | |||
ApiLiveAppKey string `json:"api_live_app_key"` | |||
ApiLiveAppSecret string `json:"api_live_app_secret"` | |||
GoodsAccessToken string `json:"goods_access_token"` | |||
LiveAccessToken string `json:"live_access_token"` | |||
TeamAccessToken string `json:"team_access_token"` | |||
GoodsPid string `json:"goods_pid"` | |||
LivePid string `json:"live_pid"` | |||
SysApiGoodsAppKey string `json:"sys_api_goods_app_key"` | |||
SysApiGoodsAppSecret string `json:"sys_api_goods_app_secret"` | |||
SysApiTeamAppKey string `json:"sys_api_team_app_key"` | |||
SysApiTeamAppSecret string `json:"sys_api_team_app_secret"` | |||
SysApiLiveAppKey string `json:"sys_api_live_app_key"` | |||
SysApiLiveAppSecret string `json:"sys_api_live_app_secret"` | |||
SysGoodsAccessToken string `json:"sys_goods_access_token"` | |||
SysLiveAccessToken string `json:"sys_live_access_token"` | |||
SysGoodsPid string `json:"sys_goods_pid"` | |||
SysLivePid string `json:"sys_live_pid"` | |||
AuthSubjectType string `json:"auth_subject_type"` | |||
LiveAuthSubjectType string `json:"live_auth_subject_type"` | |||
} |
@@ -0,0 +1,80 @@ | |||
package md | |||
type JDZhimengItem struct { | |||
Cid1 int `json:"cid1"` | |||
Cid1Name string `json:"cid1_name"` | |||
Cid2 int `json:"cid2"` | |||
Cid2Name string `json:"cid2_name"` | |||
Cid3 int `json:"cid3"` | |||
Cid3Name string `json:"cid3_name"` | |||
CommissionRate float64 `json:"commission_rate"` | |||
CouponURL string `json:"coupon_url"` | |||
CouponPrice int `json:"coupon_price"` | |||
EndTime int `json:"end_time"` | |||
Gid string `json:"gid"` | |||
GoodsImg string `json:"goods_img"` | |||
GoodsTitle string `json:"goods_title"` | |||
ImgList []string `json:"img_list"` | |||
InOrderCount int `json:"inOrderCount"` | |||
IsFreeFreightRisk int `json:"isFreeFreightRisk"` | |||
IsFreeShipping int `json:"isFreeShipping"` | |||
IsJdSale int `json:"isJdSale"` | |||
LowerPrice float64 `json:"lower_price"` | |||
LowerPriceType int `json:"lower_price_type"` | |||
LowestCouponPrice interface{} `json:"lowestCouponPrice"` | |||
PcGoodsPrice float64 `json:"pc_goods_price"` | |||
ShopID int `json:"shopId"` | |||
ShopName string `json:"shop_name"` | |||
StartTime int `json:"start_time"` | |||
StoreID string `json:"store_id"` | |||
VideoList interface{} `json:"video_list"` | |||
WlGoodsPrice float64 `json:"wl_goods_price"` | |||
} | |||
type PDDZhimengItem struct { | |||
AvgDesc interface{} `json:"avg_desc"` | |||
AvgLgst interface{} `json:"avg_lgst"` | |||
AvgServ interface{} `json:"avg_serv"` | |||
CateName string `json:"cate_name"` | |||
Cid int `json:"cid"` | |||
Cid1 int `json:"cid1"` | |||
Cid2 int `json:"cid2"` | |||
Cid3 int `json:"cid3"` | |||
Commission float64 `json:"commission"` | |||
ConponRemain int `json:"conpon_remain"` | |||
CouponEndTime int `json:"coupon_end_time"` | |||
CouponPrice int `json:"coupon_price"` | |||
CouponStartTime int `json:"coupon_start_time"` | |||
CouponTotal int `json:"coupon_total"` | |||
DescPct interface{} `json:"desc_pct"` | |||
EvalCount interface{} `json:"eval_count"` | |||
Gid string `json:"gid"` | |||
GoodsDesc string `json:"goods_desc"` | |||
GoodsImg string `json:"goods_img"` | |||
GoodsSign string `json:"goods_sign"` | |||
GoodsMinImg string `json:"goods_min_img"` | |||
GoodsSales interface{} `json:"goods_sales"` | |||
GoodsTitle string `json:"goods_title"` | |||
LgstPct interface{} `json:"lgst_pct"` | |||
MallID int `json:"mall_id"` | |||
MinGroupPrice float64 `json:"min_group_price"` | |||
MinNormalPrice float64 `json:"min_normal_price"` | |||
Score interface{} `json:"score"` | |||
ServPct interface{} `json:"serv_pct"` | |||
ShopName string `json:"shop_name"` | |||
} | |||
type VIPZhimengItem struct { | |||
Commission string `json:"commission"` | |||
CommissionRate string `json:"commission_rate"` | |||
Discount string `json:"discount"` | |||
Gid string `json:"gid"` | |||
GoodsCostPrice string `json:"goods_cost_price"` | |||
GoodsDesc string `json:"goods_desc"` | |||
GoodsImg string `json:"goods_img"` | |||
GoodsPrice string `json:"goods_price"` | |||
GoodsTitle string `json:"goods_title"` | |||
SourceType string `json:"sourceType"` | |||
YhqPrice string `json:"yhq_price"` | |||
CouponPrice string `json:"coupon_price"` | |||
} |
@@ -0,0 +1,214 @@ | |||
package taobao | |||
import ( | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"fmt" | |||
"net/url" | |||
"sort" | |||
"strings" | |||
"time" | |||
) | |||
/* | |||
sc 代表服务商, 工具商 | |||
dg 代表推广者, 站长 | |||
工具商: 为站长服务, 当站长有些权限不足登陆时候, 例如:授权登陆等,可以使用工具商的服务, 工具商每次调用淘宝必须传入站长的session,以便于区分不同站长 | |||
站 长: 在一般情况下可以使用自己的自己的key, 包括物料搜索等 | |||
邀请码: 用于区分不同的渠道, 淘宝不同渠道有不同的邀请链接, 例如:渠道管理, 会员运营管理 这两种 | |||
推广位: 用于区分不同的位置, 不同推广位区分如IOS,android,web,applet不同 | |||
*/ | |||
const ( | |||
// 淘宝基础host | |||
TB_HOST_HTTP = "http://gw.api.taobao.com/router/rest?" | |||
TB_HOST_HTTPS = "https://eco.taobao.com/router/rest?" | |||
// TODO 物料id查找 https://market.m.taobao.com/app/qn/toutiao-new/index-pc.html#/detail/10628875?_k=gpov9a | |||
// 淘宝业务, op for operation 操作, tbk for taobaoke, | |||
TBK_SC_MTL_OPT = "taobao.tbk.sc.material.optional" // 淘宝客-服务商-物料搜索 | |||
TBK_DG_MTL_OPT = "taobao.tbk.dg.material.optional" // 淘宝客-推广者-物料搜索 | |||
TB_SVC_AK = "33970476" | |||
TB_SVC_SK = "2d46abef05a0d05d7ddcd3af2d540d2b" | |||
TB_SVC_TIME = "2022-08-09 10:58:00" | |||
) | |||
type TB struct { | |||
// 站长web key, 用于查询订单,搜索等 | |||
SID string | |||
UserSID string //用户的session | |||
Web_AK string | |||
Web_SK string | |||
User_Web_AK string | |||
User_Web_SK string | |||
// 服务商 service key, 如智盟, SVC = service 授权服务 | |||
Svc_AK string | |||
Svc_SK string | |||
Svc_SID string | |||
// 渠道 - 分享(会员外) | |||
ShareInviteCode string // 邀请码,用户获取relationId,用于分享 | |||
SharePromoIdIOS string // 分享推广位, IOS , APP Key时可用 | |||
SharePromoIdAndroid string // 分享推广位, ANDROID , APP Key时可用 | |||
SharePromoIdWeb string // 分享推广位, web , Web Key时可用 | |||
// 渠道 - 自购(会员) | |||
SelfInviteCode string // 邀请码,用户获取specialId,用于自购 | |||
SelfPromoIdIOS string // 自购推广位, IOS , APP Key时可用 | |||
SelfPromoIdAndroid string // 自购推广位, ANDROID , APP Key时可用 | |||
SelfPromoIdWeb string // 自购推广位, web , Web Key时可用 | |||
// 新人免单等推广位 | |||
SelfPromoIdFree string // 免单推广位 | |||
SelfPromoIdTljFree string // 免单淘礼金推广位 | |||
SelfPromoIdTljRelationFree string // 免单淘礼金渠道推广位 | |||
ActivitySelfPromoIdWeb string //活动的自购推广位 | |||
ActivitySharePromoIdWeb string //活动的分享推广位 | |||
WechatActivitySelfPromoIdWeb string //小程序活动的自购推广位 | |||
WechatActivitySharePromoIdWeb string //小程序活动的分享推广位 | |||
WebRelationSelfKey string //渠道网站自购 | |||
AndroidRelationSelfKey string //渠道安卓自购 | |||
IosRelationSelfKey string //渠道ios自购 | |||
wechatSelfKey string //小程序自购 | |||
AuthType int //返回授权类型用来判断 | |||
AuthBuyType string //判断用哪种授权模式 纯渠道 或 会员+渠道 主要是转链不同 | |||
ChannelUrl string //渠道邀请码 | |||
ShareChannelUrl string //渠道邀请码 | |||
AppletIsAuth string | |||
AppletPid string | |||
} | |||
// 旧 | |||
// TB_AUTH_AK = "26302019" // 授权ak | |||
// TB_AUTH_SK = "ba877cfcdc64d3fbc1105d61d66dd1d7" // 授权sk | |||
// TB_AUTH_SID = "6202812d3c107786820ace47c9200f0cf7093e213f8ed45199979191" // 可以通过智盟获得 | |||
// TB_AUTH_INVITER_CODE = "CAGGTZ" | |||
// TB_AK = "23430885" //业务ak | |||
// TB_SK = "8c90c716181852cabaabc8dc1bf59a23" //业务sk | |||
// TB_SID = "6201603b382ZZd3bc3f1737478521e8ae243a3245cbe6bd199979191" // 业务sid | |||
// TB_PID = "mm_13406079_15484476_59718997" // 业务PID | |||
// TB_ACC_ID = "13406079" | |||
// TB_SITE_ID = "15484476" | |||
// TB_ADZONE_ID = "59718997" | |||
func New(tb *TB) *TB { | |||
if tb != nil { | |||
return tb | |||
} | |||
return &TB{ | |||
Web_AK: "23430885", // third_taobao_web_ak | |||
Web_SK: "8c90c716181852cabaabc8dc1bf59a23", // third_taobao_web_sk | |||
SID: "6200d02d5aceeec70abb05983156d4b8b4bf78cd6d8df69199979191", // third_taobao_sid | |||
Svc_AK: "26302019", // third_taobao_svc_ak | |||
Svc_SK: "ba877cfcdc64d3fbc1105d61d66dd1d7", // third_taobao_svc_sk | |||
Svc_SID: "6200f110dca5586962fhjf512d05f0cb731d43045fdd460199979191", // third_taobao_svc_sid | |||
ShareInviteCode: "CAGGTZ", //third_taobao_share_invite_code | |||
SharePromoIdIOS: "mm_13406079_36674309_97353600076", // third_taobao_share_pid_ios | |||
SharePromoIdAndroid: "mm_13406079_36776943_97352850438", //third_taobao_share_pid_android | |||
SharePromoIdWeb: "mm_13406079_15484476_97352900127", //third_taobao_share_pid_web | |||
SelfInviteCode: "JV4R57", | |||
SelfPromoIdIOS: "mm_13406079_36674309_110739250114", //third_taobao_self_invite_code | |||
SelfPromoIdAndroid: "mm_13406079_36776943_110740650068", // third_taobao_self_pid_ios | |||
SelfPromoIdWeb: "mm_13406079_15484476_110741150064", //third_taobao_self_pid_android | |||
SelfPromoIdFree: "mm_13406079_36776943_49998050236", //third_taobao_free_pid | |||
} | |||
// return &TB{ | |||
// Web_AK: "32271226", // third_taobao_web_ak | |||
// Web_SK: "ad3e1f3ffc70578dac6d4f4b97e4caad", // third_taobao_web_sk | |||
// SID: "6200517d93f0e8396063188b6ZZb0c31d45b3c2311c4310670639499", //third_taobao_sid | |||
// Svc_AK: "26302019", // third_taobao_svc_ak | |||
// Svc_SK: "ba877cfcdc64d3fbc1105d61d66dd1d7", // third_taobao_svc_sk | |||
// Svc_SID: "6202812d3c107786820ace47c9200f0cf7093e213f8ed45199979191", // third_taobao_svc_sid | |||
// ShareInviteCode: "FtWw5E", //third_taobao_share_invite_code | |||
// // SharePromoIdIOS: "mm_13406079_36674309_97353600076", // third_taobao_share_pid_ios | |||
// // SharePromoIdAndroid: "mm_13406079_36776943_97352850438", //third_taobao_share_pid_android | |||
// SharePromoIdWeb: "mm_25640383_2182750388_111085150224", //third_taobao_share_pid_web | |||
// SelfInviteCode: "9N8LJE", | |||
// // SelfPromoIdIOS: "mm_13406079_36674309_110739250114", //third_taobao_self_invite_code | |||
// // SelfPromoIdAndroid: "mm_13406079_36776943_110740650068", // third_taobao_self_pid_ios | |||
// SelfPromoIdWeb: "mm_25640383_2182750388_111086100270", //third_taobao_self_pid_android | |||
// } | |||
} | |||
/// | |||
// {"SID":"6200d02d5aceeec70abb05983156d4b8b4bf78cd6d8df69199979191", | |||
// "Web_AK":"23430885", | |||
// "Web_SK":"8c90c716181852cabaabc8dc1bf59a23", | |||
// "Svc_AK":"26302019", | |||
// "Svc_SK":"ba877cfcdc64d3fbc1105d61d66dd1d7", | |||
// "Svc_SID":"6202812d3c107786820ace47c9200f0cf7093e213f8ed45199979191", | |||
// "ShareInviteCode":"CAGGTZ", | |||
// "SharePromoIdIOS":"mm_13406079_36674309_97353600076", | |||
// "SharePromoIdAndroid":"mm_13406079_36776943_97352850438", | |||
// "SharePromoIdWeb":"mm_13406079_15484476_97352900127", | |||
// "SelfInviteCode":"JV4R57", | |||
// "SelfPromoIdIOS":"mm_13406079_36674309_110739250114", | |||
// "SelfPromoIdAndroid":"mm_13406079_36776943_110740650068", | |||
// "SelfPromoIdWeb":"mm_13406079_15484476_110741150064"} | |||
/// | |||
// 拆分推广位, 分别返回 账户ID,网站ID,推广位ID | |||
func SplitPid(pid string) (AccID, SiteId, AdZoneId string) { | |||
s := strings.Split(pid, "_") | |||
if len(s) != 4 { | |||
return "", "", "" | |||
} | |||
return s[1], s[2], s[3] | |||
} | |||
func AccId(pid string) string { | |||
accId, _, _ := SplitPid(pid) | |||
return accId | |||
} | |||
func SiteId(pid string) string { | |||
_, siteId, _ := SplitPid(pid) | |||
return siteId | |||
} | |||
func AdZoneId(pid string) string { | |||
_, _, adZoneId := SplitPid(pid) | |||
return adZoneId | |||
} | |||
// 发送淘宝请求 | |||
func send(args map[string]string, method, ak, sk string) ([]byte, error) { | |||
args["v"] = "2.0" | |||
args["method"] = method | |||
args["format"] = "json" | |||
args["app_key"] = ak | |||
args["sign_method"] = "md5" | |||
args["timestamp"] = time.Now().Format("2006-01-02 15:04:05") | |||
args["sign"] = sign(args, sk) | |||
urls := TB_HOST_HTTPS | |||
fmt.Println(args, "args") | |||
fmt.Println(urls) | |||
for k, v := range args { | |||
urls += k + "=" + url.QueryEscape(v) + "&" | |||
} | |||
urls = urls[:len(urls)-1] | |||
return zhios_third_party_utils.CurlGet(urls, nil) | |||
} | |||
func sign(m map[string]string, sk string) string { | |||
// key sort | |||
keys := make([]string, 0, len(m)) | |||
for k := range m { | |||
keys = append(keys, k) | |||
} | |||
sort.Strings(keys) | |||
str := "" | |||
for _, k := range keys { | |||
str += k + m[k] | |||
} | |||
// merge string | |||
str = sk + str + sk | |||
return strings.ToUpper(zhios_third_party_utils.Md5(str)) | |||
} |
@@ -0,0 +1,136 @@ | |||
package taobao | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db" | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"errors" | |||
"github.com/tidwall/gjson" | |||
"xorm.io/xorm" | |||
) | |||
func NewTaobaoSDK(eg *xorm.Engine, dbName, Platform string, AccTaobaoShareId int) (*TB, error) { | |||
// 从联盟设置中获取淘宝配置 | |||
taobaoCfg, err := db.SysUnionByTaobaoByUseByAuth(eg, dbName) | |||
if err != nil { | |||
return nil, err | |||
} | |||
var cfg *TB | |||
freeCfg := db.SysCfgGetWithDb(eg, dbName, "newcomers_free_cfg") | |||
/*if freeCfg == "" { | |||
return nil, errors.New("no free cfg found") | |||
}*/ | |||
Svc_AK := "26302019" | |||
Svc_SK := "ba877cfcdc64d3fbc1105d61d66dd1d7" | |||
if taobaoCfg.AuthTime.Unix() >= zhios_third_party_utils.TimeStdParseUnix(TB_SVC_TIME) { | |||
Svc_AK = TB_SVC_AK | |||
Svc_SK = TB_SVC_SK | |||
} | |||
// 跟随官方 | |||
if taobaoCfg.AuthType == 1 { | |||
cfg = &TB{ | |||
Web_AK: Svc_AK, | |||
Web_SK: Svc_SK, | |||
UserSID: gjson.Get(taobaoCfg.KeyData, "accessToken").String(), | |||
SID: "6200f110dca5586962fhjf512d05f0cb731d43045fdd460199979191", | |||
Svc_AK: Svc_AK, | |||
Svc_SK: Svc_SK, | |||
Svc_SID: "6200f110dca5586962fhjf512d05f0cb731d43045fdd460199979191", | |||
User_Web_AK: gjson.Get(taobaoCfg.KeyData, "apiAppKey").String(), | |||
User_Web_SK: gjson.Get(taobaoCfg.KeyData, "apiAppSecret").String(), | |||
ShareInviteCode: gjson.Get(taobaoCfg.KeyData, "channelUrl").String(), | |||
SharePromoIdIOS: gjson.Get(taobaoCfg.KeyData, "ios.shareKey").String(), | |||
SharePromoIdAndroid: gjson.Get(taobaoCfg.KeyData, "android.shareKey").String(), | |||
SharePromoIdWeb: gjson.Get(taobaoCfg.KeyData, "webShareKey").String(), | |||
SelfInviteCode: gjson.Get(taobaoCfg.KeyData, "memberUrl").String(), | |||
SelfPromoIdIOS: gjson.Get(taobaoCfg.KeyData, "ios.selfKey").String(), | |||
SelfPromoIdAndroid: gjson.Get(taobaoCfg.KeyData, "android.selfKey").String(), | |||
SelfPromoIdWeb: gjson.Get(taobaoCfg.KeyData, "webSelfKey").String(), | |||
SelfPromoIdFree: gjson.Get(freeCfg, "taobao_pid").String(), | |||
ActivitySelfPromoIdWeb: gjson.Get(taobaoCfg.KeyData, "activitySelfKey").String(), | |||
ActivitySharePromoIdWeb: gjson.Get(taobaoCfg.KeyData, "activityShareKey").String(), | |||
WechatActivitySelfPromoIdWeb: gjson.Get(taobaoCfg.KeyData, "wechatActivitySelfKey").String(), | |||
WechatActivitySharePromoIdWeb: gjson.Get(taobaoCfg.KeyData, "wechatActivityShareKey").String(), | |||
ChannelUrl: gjson.Get(taobaoCfg.KeyData, "channelUrl").String(), | |||
ShareChannelUrl: gjson.Get(taobaoCfg.KeyData, "channelUrl").String(), | |||
AuthType: 1, | |||
AppletIsAuth: zhios_third_party_utils.IntToStr(taobaoCfg.AppletIsAuth), | |||
} | |||
var authBuyType = gjson.Get(taobaoCfg.KeyData, "authBuyType").String() | |||
cfg.AuthBuyType = authBuyType | |||
if authBuyType == "1" && Platform != md.PLATFORM_WX_APPLET { | |||
//如果是1 就是纯渠道模式 要更换渠道推广位 | |||
cfg.SelfPromoIdWeb = gjson.Get(taobaoCfg.KeyData, "webRelationSelfKey").String() | |||
cfg.SelfPromoIdAndroid = gjson.Get(taobaoCfg.KeyData, "androidRelationSelfKey").String() | |||
cfg.SelfPromoIdIOS = gjson.Get(taobaoCfg.KeyData, "iosRelationSelfKey").String() | |||
} | |||
if Platform == md.PLATFORM_WX_APPLET { | |||
if authBuyType == "1" && AccTaobaoShareId > 0 { | |||
//如果是1 就是纯渠道模式 要更换渠道推广位 | |||
cfg.SelfPromoIdWeb = gjson.Get(taobaoCfg.KeyData, "webRelationSelfKey").String() | |||
cfg.SelfPromoIdAndroid = gjson.Get(taobaoCfg.KeyData, "androidRelationSelfKey").String() | |||
cfg.SelfPromoIdIOS = gjson.Get(taobaoCfg.KeyData, "iosRelationSelfKey").String() | |||
} else if gjson.Get(taobaoCfg.KeyData, "wechatSelfKey").String() != "" { | |||
cfg.SelfPromoIdWeb = gjson.Get(taobaoCfg.KeyData, "wechatSelfKey").String() | |||
} | |||
} | |||
} else { | |||
if gjson.Get(taobaoCfg.KeyData, "apiAppKey").String() == "" || | |||
gjson.Get(taobaoCfg.KeyData, "apiAppSecret").String() == "" || | |||
gjson.Get(taobaoCfg.KeyData, "accessToken").String() == "" { | |||
return nil, errors.New("联盟配置错误") | |||
} | |||
// 自由联盟账号 | |||
cfg = &TB{ | |||
Web_AK: gjson.Get(taobaoCfg.KeyData, "apiAppKey").String(), | |||
Web_SK: gjson.Get(taobaoCfg.KeyData, "apiAppSecret").String(), | |||
SID: gjson.Get(taobaoCfg.KeyData, "accessToken").String(), | |||
UserSID: gjson.Get(taobaoCfg.KeyData, "accessToken").String(), | |||
Svc_AK: Svc_AK, | |||
Svc_SK: Svc_SK, | |||
Svc_SID: "6200f110dca5586962fhjf512d05f0cb731d43045fdd460199979191", | |||
User_Web_AK: gjson.Get(taobaoCfg.KeyData, "apiAppKey").String(), | |||
User_Web_SK: gjson.Get(taobaoCfg.KeyData, "apiAppSecret").String(), | |||
ShareInviteCode: gjson.Get(taobaoCfg.KeyData, "channelUrl").String(), | |||
SharePromoIdIOS: gjson.Get(taobaoCfg.KeyData, "ios.shareKey").String(), | |||
SharePromoIdAndroid: gjson.Get(taobaoCfg.KeyData, "android.shareKey").String(), | |||
SharePromoIdWeb: gjson.Get(taobaoCfg.KeyData, "webShareKey").String(), | |||
SelfInviteCode: gjson.Get(taobaoCfg.KeyData, "memberUrl").String(), | |||
SelfPromoIdIOS: gjson.Get(taobaoCfg.KeyData, "ios.selfKey").String(), | |||
SelfPromoIdAndroid: gjson.Get(taobaoCfg.KeyData, "android.selfKey").String(), | |||
SelfPromoIdWeb: gjson.Get(taobaoCfg.KeyData, "webSelfKey").String(), | |||
SelfPromoIdFree: gjson.Get(freeCfg, "taobao_pid").String(), | |||
ActivitySelfPromoIdWeb: gjson.Get(taobaoCfg.KeyData, "activitySelfKey").String(), | |||
ActivitySharePromoIdWeb: gjson.Get(taobaoCfg.KeyData, "activityShareKey").String(), | |||
WechatActivitySelfPromoIdWeb: gjson.Get(taobaoCfg.KeyData, "wechatActivitySelfKey").String(), | |||
WechatActivitySharePromoIdWeb: gjson.Get(taobaoCfg.KeyData, "wechatActivityShareKey").String(), | |||
ChannelUrl: gjson.Get(taobaoCfg.KeyData, "channelUrl").String(), | |||
ShareChannelUrl: gjson.Get(taobaoCfg.KeyData, "channelUrl").String(), | |||
AuthType: 0, | |||
AppletIsAuth: zhios_third_party_utils.IntToStr(taobaoCfg.AppletIsAuth), | |||
} | |||
var authBuyType = gjson.Get(taobaoCfg.KeyData, "authBuyType").String() | |||
cfg.AuthBuyType = authBuyType | |||
if authBuyType == "1" && Platform != md.PLATFORM_WX_APPLET { | |||
//如果是1 就是纯渠道模式 要更换渠道推广位 | |||
cfg.SelfPromoIdWeb = gjson.Get(taobaoCfg.KeyData, "webRelationSelfKey").String() | |||
cfg.SelfPromoIdAndroid = gjson.Get(taobaoCfg.KeyData, "androidRelationSelfKey").String() | |||
cfg.SelfPromoIdIOS = gjson.Get(taobaoCfg.KeyData, "iosRelationSelfKey").String() | |||
} | |||
if Platform == md.PLATFORM_WX_APPLET { | |||
if authBuyType == "1" && AccTaobaoShareId > 0 { | |||
//如果是1 就是纯渠道模式 要更换渠道推广位 | |||
cfg.SelfPromoIdWeb = gjson.Get(taobaoCfg.KeyData, "webRelationSelfKey").String() | |||
cfg.SelfPromoIdAndroid = gjson.Get(taobaoCfg.KeyData, "androidRelationSelfKey").String() | |||
cfg.SelfPromoIdIOS = gjson.Get(taobaoCfg.KeyData, "iosRelationSelfKey").String() | |||
} else if gjson.Get(taobaoCfg.KeyData, "wechatSelfKey").String() != "" { | |||
cfg.SelfPromoIdWeb = gjson.Get(taobaoCfg.KeyData, "wechatSelfKey").String() | |||
} | |||
} | |||
} | |||
return cfg, nil | |||
} |
@@ -0,0 +1,249 @@ | |||
package taobao | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"encoding/json" | |||
"fmt" | |||
"github.com/jinzhu/copier" | |||
) | |||
// 淘宝物料 | |||
type Material struct { | |||
CategoryID int `json:"category_id"` | |||
CategoryName string `json:"category_name"` | |||
CommissionRate string `json:"commission_rate"` | |||
CommissionType string `json:"commission_type"` | |||
CouponID string `json:"coupon_id"` | |||
CouponInfo string `json:"coupon_info"` | |||
CouponRemainCount int `json:"coupon_remain_count"` | |||
CouponTotalCount int `json:"coupon_total_count"` | |||
IncludeDxjh string `json:"include_dxjh"` | |||
IncludeMkt string `json:"include_mkt"` | |||
InfoDxjh string `json:"info_dxjh"` | |||
ItemDescription string `json:"item_description"` | |||
ItemID interface{} `json:"item_id"` | |||
ItemURL string `json:"item_url"` | |||
LevelOneCategoryID int `json:"level_one_category_id"` | |||
LevelOneCategoryName string `json:"level_one_category_name"` | |||
Nick string `json:"nick"` | |||
PictURL string `json:"pict_url"` | |||
Provcity string `json:"provcity"` | |||
RealPostFee string `json:"real_post_fee"` | |||
ReservePrice string `json:"reserve_price"` | |||
SellerID int `json:"seller_id"` | |||
ShopDsr int `json:"shop_dsr"` | |||
ShopTitle string `json:"shop_title"` | |||
ShortTitle string `json:"short_title"` | |||
ActivityId string `json:"activity_id"` | |||
SmallImages struct { | |||
String []string `json:"string"` | |||
} `json:"small_images"` | |||
Title string `json:"title"` | |||
TkTotalCommi string `json:"tk_total_commi"` | |||
TkTotalSales string `json:"tk_total_sales"` | |||
URL string `json:"url"` | |||
UserType int `json:"user_type"` | |||
Volume int `json:"volume"` | |||
WhiteImage string `json:"white_image"` | |||
XID string `json:"x_id"` | |||
ZkFinalPrice string `json:"zk_final_price"` | |||
CouponAmount string `json:"coupon_amount,omitempty"` | |||
OldCouponAmount string `json:"old_coupon_amount"` | |||
CouponEndTime string `json:"coupon_end_time,omitempty"` | |||
CouponShareURL string `json:"coupon_share_url,omitempty"` | |||
CouponStartFee string `json:"coupon_start_fee,omitempty"` | |||
CouponStartTime string `json:"coupon_start_time,omitempty"` | |||
InputNumIid interface{} `json:"input_num_iid"` | |||
} | |||
type wrapperStruct struct { | |||
TbkDgMaterialOptionalResponse struct { | |||
ResultList struct { | |||
MapData []Material `json:"map_data"` | |||
} `json:"result_list"` | |||
} `json:"tbk_dg_material_optional_response"` | |||
} | |||
type tbDetailStruct struct { | |||
TbkItemInfoGetResponse struct { | |||
Results struct { | |||
NBbkItem []Material `json:"n_tbk_item"` | |||
} `json:"results"` | |||
} `json:"tbk_item_info_get_response"` | |||
} | |||
type scMaterialOptionalStruct struct { | |||
TbkScMaterialOptionalResponse struct { | |||
ResultList struct { | |||
MapData []Material `json:"map_data"` | |||
} `json:"result_list"` | |||
} `json:"tbk_sc_material_optional_response"` | |||
} | |||
type featuredWrapperStruct struct { | |||
TbkDgMaterialOptionalResponse struct { | |||
ResultList struct { | |||
MapData []md.TBSearchFeatureStruct `json:"map_data"` | |||
} `json:"result_list"` | |||
} `json:"tbk_dg_material_optional_response"` | |||
} | |||
type featuredScMaterialOptionalStruct struct { | |||
TbkScMaterialOptionalResponse struct { | |||
ResultList struct { | |||
MapData []md.TBSearchFeatureStruct `json:"map_data"` | |||
} `json:"result_list"` | |||
} `json:"tbk_sc_material_optional_response"` | |||
} | |||
var sortList = map[string]struct{}{ | |||
"total_sales_asc": {}, //销量从低到高 | |||
"total_sales_des": {}, //销量从高到低 | |||
"price_asc": {}, //价格从低到高 | |||
"price_des": {}, //价格从高到低 | |||
"tk_rate_des": {}, //佣金比率从高到低 | |||
"tk_rate_asc": {}, //佣金比率从低到高 | |||
"tk_total_sales_asc": {}, //累计推广量从低到高 | |||
"tk_total_sales_des": {}, //累计推广量成高到低 | |||
"tk_total_commi_asc": {}, //总支出佣金从低到高 | |||
"tk_total_commi_des": {}, //总支出佣金高到低 | |||
} | |||
func (t *TB) GetList(tbArgs map[string]string, bizSceneId string) ([]byte, error) { | |||
args := map[string]string{ | |||
"q": tbArgs["keyword"], | |||
"adzone_id": AdZoneId(t.SelfPromoIdWeb), | |||
"page_size": zhios_third_party_utils.IntToStr(zhios_third_party_utils.StrToInt(tbArgs["pageSize"])), | |||
"page_no": zhios_third_party_utils.IntToStr(zhios_third_party_utils.StrToInt(tbArgs["pageIndex"])), | |||
"platform": "2", // 链接形式-1:PC,2:无线,默认为1 | |||
"sort": tbArgs["sort"], // 排序_des(降序),排序_asc(升序),销量(total_sales)淘客佣金比率(tk_rate)累计推广量(tk_total_sales),总支出佣金(tk_total_commi),价格(price) | |||
//"site_id" : "", | |||
} | |||
if bizSceneId != "" { | |||
args["biz_scene_id"] = "2" | |||
} | |||
method := TBK_DG_MTL_OPT | |||
//判断是否跟随官方 需要换接口 | |||
if t.AuthType == 1 { | |||
method = TBK_SC_MTL_OPT | |||
Sid := t.UserSID | |||
args["session"] = Sid | |||
_, args["site_id"], args["adzone_id"] = SplitPid(t.SelfPromoIdWeb) | |||
} | |||
// TODO: args[sort] 修复为 args["sort"] | |||
if _, ok := args["sort"]; !ok { | |||
// TODO 按销量高到低排序 而不是 推广量高到低排序 | |||
// args["sort"] = "tk_total_sales_des" | |||
// TODO 现修改为:按销量高到低排序 | |||
args["sort"] = "total_sales_des" | |||
} | |||
if args["sort"] == "" { | |||
args["sort"] = "total_sales_des" | |||
} | |||
if zhios_third_party_utils.StrToFloat64(tbArgs["startPrice"]) > 0 { | |||
// TODO 数据库中存储的类型为decimal(11,2)(decimal表现形式类似浮点型,但底层结构不一样),无法正常将数据库中的decimal字符串转换int | |||
// args["start_price"] = utils.IntToStr(utils.StrToInt(startPrice)) | |||
// TODO 修复为: | |||
args["start_price"] = fmt.Sprintf("%.0f", zhios_third_party_utils.StrToFloat64(tbArgs["startPrice"])) //utils.IntToStr(utils.StrToInt(startPrice)) | |||
} | |||
if zhios_third_party_utils.StrToFloat64(tbArgs["startCommissionRate"]) > 0 { | |||
args["start_tk_rate"] = tbArgs["startCommissionRate"] | |||
} | |||
if zhios_third_party_utils.StrToFloat64(tbArgs["endCommissionRate"]) > 0 { | |||
args["end_tk_rate"] = tbArgs["endCommissionRate"] | |||
} | |||
if zhios_third_party_utils.StrToFloat64(tbArgs["endPrice"]) > 0 { | |||
args["end_price"] = zhios_third_party_utils.IntToStr(zhios_third_party_utils.StrToInt(tbArgs["endPrice"])) | |||
} | |||
if tbArgs["isTmall"] == "true" { | |||
args["is_tmall"] = "true" | |||
} | |||
if tbArgs["isCoupon"] == "true" { | |||
args["has_coupon"] = tbArgs["isCoupon"] | |||
} | |||
resp, err := send(args, method, t.Web_AK, t.Web_SK) | |||
if err != nil { | |||
return []byte(""), err | |||
} | |||
return resp, nil | |||
} | |||
func (t *TB) SearchList(args map[string]string) (*[]Material, error) { | |||
resp, err := t.GetList(args, "2") | |||
//如果是跟随官方 结构不一样 | |||
if t.AuthType == 1 { | |||
var tmp scMaterialOptionalStruct | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
if len(tmp.TbkScMaterialOptionalResponse.ResultList.MapData) == 0 { | |||
return nil, err | |||
} | |||
data := tmp.TbkScMaterialOptionalResponse.ResultList.MapData | |||
for k, v := range data { | |||
itemID, ok := v.ItemID.(float64) | |||
if ok { | |||
data[k].ItemID = int64(itemID) | |||
} | |||
} | |||
return &data, nil | |||
} else { | |||
var tmp wrapperStruct | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
if len(tmp.TbkDgMaterialOptionalResponse.ResultList.MapData) == 0 { | |||
return nil, err | |||
} | |||
data := tmp.TbkDgMaterialOptionalResponse.ResultList.MapData | |||
for k, v := range data { | |||
itemID, ok := v.ItemID.(float64) | |||
if ok { | |||
data[k].ItemID = int64(itemID) | |||
} | |||
} | |||
return &data, nil | |||
} | |||
} | |||
func (t *TB) FeaturedList(args map[string]string) (*[]md.TBFeatureStruct, error) { | |||
resp, err := t.GetList(args, "") | |||
//如果是跟随官方 结构不一样 | |||
if t.AuthType == 1 { | |||
var tmp featuredScMaterialOptionalStruct | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
if len(tmp.TbkScMaterialOptionalResponse.ResultList.MapData) == 0 { | |||
return nil, err | |||
} | |||
var data = tmp.TbkScMaterialOptionalResponse.ResultList.MapData | |||
var res []md.TBFeatureStruct | |||
for _, v := range data { | |||
var tmp md.TBFeatureStruct | |||
copier.Copy(&tmp, v) | |||
tmp.ItemID = zhios_third_party_utils.AnyToString(v.ItemID) | |||
tmp.CouponAmount = zhios_third_party_utils.StrToInt(v.CouponAmount) | |||
res = append(res, tmp) | |||
} | |||
return &res, nil | |||
} else { | |||
var tmp featuredWrapperStruct | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
if len(tmp.TbkDgMaterialOptionalResponse.ResultList.MapData) == 0 { | |||
return nil, err | |||
} | |||
var data = tmp.TbkDgMaterialOptionalResponse.ResultList.MapData | |||
var res []md.TBFeatureStruct | |||
for _, v := range data { | |||
var tmp md.TBFeatureStruct | |||
copier.Copy(&tmp, v) | |||
tmp.ItemID = zhios_third_party_utils.AnyToString(v.ItemID) | |||
tmp.CouponAmount = zhios_third_party_utils.StrToInt(v.CouponAmount) | |||
res = append(res, tmp) | |||
} | |||
return &res, nil | |||
} | |||
} |
@@ -0,0 +1,61 @@ | |||
package taobao | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"xorm.io/xorm" | |||
) | |||
//TaoBaoArgs is args | |||
type TaoBaoArgs struct { | |||
Keyword string | |||
PageIndex string | |||
PageSize string | |||
Sort string | |||
StartPrice string | |||
EndPrice string | |||
IsTmall string | |||
IsCoupon string | |||
StartCommissionRate string | |||
EndCommissionRate string | |||
} | |||
func TaoBaoFeaturedList(eg *xorm.Engine, dbName, Platform string, AccTaobaoShareId int, postData map[string]string) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
sdk, err := NewTaobaoSDK(eg, dbName, Platform, AccTaobaoShareId) | |||
if err != nil { | |||
return goods | |||
} | |||
list, err := sdk.TaoBaoFeaturedList(postData) | |||
if list != nil { | |||
for _, v := range *list { | |||
var tmp = map[string]string{ | |||
"gid": zhios_third_party_utils.AnyToString(v.ItemID), | |||
"title": v.Title, | |||
"img": v.PictURL, | |||
"sales": zhios_third_party_utils.IntToStr(v.Volume), | |||
"price": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.ZkFinalPrice) - float64(v.CouponAmount)), | |||
"cost_price": v.ZkFinalPrice, | |||
"coupon": zhios_third_party_utils.IntToStr(v.CouponAmount), | |||
"commission_rate": zhios_third_party_utils.AnyToString(zhios_third_party_utils.StrToFloat64(v.CommissionRate) / 100), | |||
"commission": zhios_third_party_utils.Float64ToStr((zhios_third_party_utils.StrToFloat64(v.ZkFinalPrice) - float64(v.CouponAmount)) * (zhios_third_party_utils.StrToFloat64(v.CommissionRate) / 100 / 100)), | |||
"pvd": md.PVD_TB, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
} | |||
return goods | |||
} | |||
// TaoBaoSearchList is return taobao search list | |||
func (t *TB) TaoBaoFeaturedList(args map[string]string) (*[]md.TBFeatureStruct, error) { | |||
list, err := t.FeaturedList( | |||
args, | |||
) | |||
if err != nil { | |||
return nil, err | |||
} | |||
return list, nil | |||
} |
@@ -0,0 +1,122 @@ | |||
package tik_tok | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db" | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db/model" | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"errors" | |||
"github.com/tidwall/gjson" | |||
"xorm.io/xorm" | |||
) | |||
func Base(eg *xorm.Engine, dbName, unionId string) (*md.TikTokBase, error) { | |||
var cfg *model.SysUnionSet | |||
var err error | |||
if zhios_third_party_utils.StrToInt(unionId) == 0 { | |||
cfg, err = db.SysUnionByTikTokByUseByAuth(eg, dbName) | |||
} else { | |||
cfg = db.SysUnionById(eg, unionId) | |||
} | |||
if cfg == nil { | |||
return &md.TikTokBase{}, errors.New("没配置") | |||
} | |||
if err != nil { | |||
return &md.TikTokBase{}, err | |||
} | |||
var tmp = &md.TikTokBase{ | |||
AuthSubjectType: gjson.Get(cfg.KeyData, "authSubjectType").String(), | |||
LiveAuthSubjectType: gjson.Get(cfg.KeyData, "liveAuthSubjectType").String(), | |||
AuthType: zhios_third_party_utils.IntToStr(cfg.AuthType), | |||
LiveAuthType: zhios_third_party_utils.IntToStr(cfg.LiveAuthType), | |||
ApiGoodsAppKey: gjson.Get(cfg.KeyData, "apiGoodsAppKey").String(), | |||
ApiGoodsAppSecret: gjson.Get(cfg.KeyData, "apiGoodsAppSecret").String(), | |||
GoodsAccessToken: gjson.Get(cfg.KeyData, "goodsAccessToken").String(), | |||
GoodsPid: gjson.Get(cfg.KeyData, "goodsPid").String(), | |||
ApiLiveAppKey: gjson.Get(cfg.KeyData, "apiLiveAppKey").String(), | |||
ApiLiveAppSecret: gjson.Get(cfg.KeyData, "apiLiveAppSecret").String(), | |||
LiveAccessToken: gjson.Get(cfg.KeyData, "liveAccessToken").String(), | |||
LivePid: gjson.Get(cfg.KeyData, "livePid").String(), | |||
TeamAccessToken: gjson.Get(cfg.KeyData, "teamAccessToken").String(), | |||
ApiTeamAppKey: "7136155008692651560", | |||
ApiTeamAppSecret: "b132549f-f62c-491e-86f1-89af3658896a", | |||
SysApiGoodsAppKey: "7076371480799348261", | |||
SysApiGoodsAppSecret: "9e58409e-5729-441e-a9f3-c077ec939fbb", | |||
SysApiLiveAppKey: "7075886119509853704", | |||
SysApiLiveAppSecret: "77b4a105-ecc3-4389-a6a9-07b26e9d38b2", | |||
SysGoodsAccessToken: gjson.Get(cfg.KeyData, "sysGoodsAccessToken").String(), | |||
SysLiveAccessToken: gjson.Get(cfg.KeyData, "sysLiveAccessToken").String(), | |||
SysGoodsPid: gjson.Get(cfg.KeyData, "sysGoodsPid").String(), | |||
SysLivePid: gjson.Get(cfg.KeyData, "sysLivePid").String(), | |||
} | |||
if tmp.AuthType == "3" { | |||
tmp.ApiGoodsAppKey = tmp.SysApiGoodsAppKey | |||
tmp.ApiGoodsAppSecret = tmp.SysApiGoodsAppSecret | |||
tmp.GoodsAccessToken = tmp.SysGoodsAccessToken | |||
tmp.GoodsPid = tmp.SysGoodsPid | |||
} | |||
if tmp.LiveAuthType == "3" { | |||
tmp.ApiLiveAppKey = tmp.SysApiLiveAppKey | |||
tmp.ApiLiveAppSecret = tmp.SysApiLiveAppSecret | |||
tmp.LiveAccessToken = tmp.SysLiveAccessToken | |||
tmp.LivePid = tmp.SysLivePid | |||
} | |||
if tmp.AuthSubjectType == "DouKe" { | |||
tmp.ApiLiveAppKey = tmp.ApiGoodsAppKey | |||
tmp.ApiLiveAppSecret = tmp.ApiGoodsAppSecret | |||
tmp.LiveAccessToken = tmp.GoodsAccessToken | |||
tmp.LivePid = tmp.GoodsPid | |||
} | |||
return tmp, nil | |||
} | |||
func Base1(eg *xorm.Engine, id string) (*md.TikTokBase, error) { | |||
cfg, err := db.SysUnionByTikTokByUseByAuthId(eg, id) | |||
if err != nil || cfg == nil { | |||
return &md.TikTokBase{}, err | |||
} | |||
var tmp = &md.TikTokBase{ | |||
AuthSubjectType: gjson.Get(cfg.KeyData, "authSubjectType").String(), | |||
LiveAuthSubjectType: gjson.Get(cfg.KeyData, "liveAuthSubjectType").String(), | |||
AuthType: zhios_third_party_utils.IntToStr(cfg.AuthType), | |||
LiveAuthType: zhios_third_party_utils.IntToStr(cfg.LiveAuthType), | |||
ApiGoodsAppKey: gjson.Get(cfg.KeyData, "apiGoodsAppKey").String(), | |||
ApiGoodsAppSecret: gjson.Get(cfg.KeyData, "apiGoodsAppSecret").String(), | |||
GoodsAccessToken: gjson.Get(cfg.KeyData, "goodsAccessToken").String(), | |||
GoodsPid: gjson.Get(cfg.KeyData, "goodsPid").String(), | |||
ApiLiveAppKey: gjson.Get(cfg.KeyData, "apiLiveAppKey").String(), | |||
ApiLiveAppSecret: gjson.Get(cfg.KeyData, "apiLiveAppSecret").String(), | |||
LiveAccessToken: gjson.Get(cfg.KeyData, "liveAccessToken").String(), | |||
LivePid: gjson.Get(cfg.KeyData, "livePid").String(), | |||
TeamAccessToken: gjson.Get(cfg.KeyData, "teamAccessToken").String(), | |||
ApiTeamAppKey: "7136155008692651560", | |||
ApiTeamAppSecret: "b132549f-f62c-491e-86f1-89af3658896a", | |||
SysApiGoodsAppKey: "7076371480799348261", | |||
SysApiGoodsAppSecret: "9e58409e-5729-441e-a9f3-c077ec939fbb", | |||
SysApiLiveAppKey: "7075886119509853704", | |||
SysApiLiveAppSecret: "77b4a105-ecc3-4389-a6a9-07b26e9d38b2", | |||
SysGoodsAccessToken: gjson.Get(cfg.KeyData, "sysGoodsAccessToken").String(), | |||
SysLiveAccessToken: gjson.Get(cfg.KeyData, "sysLiveAccessToken").String(), | |||
SysGoodsPid: gjson.Get(cfg.KeyData, "sysGoodsPid").String(), | |||
SysLivePid: gjson.Get(cfg.KeyData, "sysLivePid").String(), | |||
} | |||
if tmp.AuthType == "3" { | |||
tmp.ApiGoodsAppKey = tmp.SysApiGoodsAppKey | |||
tmp.ApiGoodsAppSecret = tmp.SysApiGoodsAppSecret | |||
tmp.GoodsAccessToken = tmp.SysGoodsAccessToken | |||
tmp.GoodsPid = tmp.SysGoodsPid | |||
} | |||
if tmp.LiveAuthType == "3" { | |||
tmp.ApiLiveAppKey = tmp.SysApiLiveAppKey | |||
tmp.ApiLiveAppSecret = tmp.SysApiLiveAppSecret | |||
tmp.LiveAccessToken = tmp.SysLiveAccessToken | |||
tmp.LivePid = tmp.SysLivePid | |||
} | |||
if tmp.AuthSubjectType == "DouKe" { | |||
tmp.ApiLiveAppKey = tmp.ApiGoodsAppKey | |||
tmp.ApiLiveAppSecret = tmp.ApiGoodsAppSecret | |||
tmp.LiveAccessToken = tmp.GoodsAccessToken | |||
tmp.LivePid = tmp.GoodsPid | |||
} | |||
return tmp, nil | |||
} |
@@ -0,0 +1,81 @@ | |||
package tik_tok | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/zhimeng" | |||
"fmt" | |||
"github.com/jinzhu/copier" | |||
"xorm.io/xorm" | |||
) | |||
func TikTokSearchGoods(eg *xorm.Engine, dbName string, params map[string]interface{}) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
tikTokBase, _ := Base(eg, dbName, "") | |||
var list *[]zhimeng.TikTokData | |||
var err error | |||
if zhios_third_party_utils.InArr(tikTokBase.AuthType, []string{"2", "3"}) { | |||
list, err = OwnTikTokGoods(tikTokBase, params) | |||
} else { | |||
list, err = zhimeng.TikTokGoods(params) | |||
} | |||
fmt.Println(err) | |||
if list != nil { | |||
for _, v := range *list { | |||
var tmp = map[string]string{ | |||
"gid": v.GoodsID, | |||
"title": v.GoodsTitle, | |||
"img": v.GoodsImg, | |||
"sales": v.GoodsSales, | |||
"price": v.Price, | |||
"cost_price": v.CostPrice, | |||
"coupon": v.YhqPrice, | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.Commission), | |||
"commission": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.Price) * (zhios_third_party_utils.AnyToFloat64(v.Commission) / 100)), | |||
"pvd": md.PVD_TIKTOK, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
} | |||
return goods | |||
} | |||
func OwnTikTokGoods(tikTokBase *md.TikTokBase, tikTokArgs map[string]interface{}) (*[]zhimeng.TikTokData, error) { | |||
args := map[string]string{ | |||
"appkey": tikTokBase.ApiGoodsAppKey, | |||
"appSecret": tikTokBase.ApiGoodsAppSecret, | |||
"title": zhios_third_party_utils.AnyToString(tikTokArgs["keyword"]), | |||
"first_cids": zhios_third_party_utils.AnyToString(tikTokArgs["category_id"]), | |||
"price_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_price"]), | |||
"price_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_price"]), | |||
"sell_num_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_sales"]), | |||
"sell_num_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_sales"]), | |||
"sort": zhios_third_party_utils.AnyToString(tikTokArgs["sort"]), | |||
"cos_ratio_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_commission"]), | |||
"cos_ratio_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_commission"]), | |||
"page": zhios_third_party_utils.AnyToString(tikTokArgs["p"]), | |||
"page_size": zhios_third_party_utils.AnyToString(tikTokArgs["size"]), | |||
"acctoken": tikTokBase.SysGoodsAccessToken, | |||
} | |||
for k, v := range args { | |||
if v == "<nil>" { | |||
args[k] = "" | |||
} | |||
} | |||
if args["sort"] == "" { | |||
args["sort"] = "default" | |||
} | |||
if zhios_third_party_utils.StrToInt(args["first_cids"]) == 0 { | |||
args["first_cids"] = "" | |||
} | |||
var data = make([]zhimeng.TikTokData, 0) | |||
list := GoodsList(args) | |||
if list == nil { | |||
return &data, nil | |||
} | |||
err := copier.Copy(&data, list) | |||
if err != nil { | |||
return &data, nil | |||
} | |||
return &data, nil | |||
} |
@@ -0,0 +1,65 @@ | |||
package zhimeng | |||
import ( | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"fmt" | |||
"sort" | |||
"strconv" | |||
"time" | |||
) | |||
var StatusSuc int = 1 | |||
type ZM struct { | |||
AK string | |||
SK string | |||
SMS_AK string | |||
SMS_SK string | |||
} | |||
// 智盟接口, 可以调取京东, 拼多多等 | |||
const ZM_HOST = "http://www.izhim.com/" | |||
var ( | |||
ZM_BASE_URL = ZM_HOST + "?mod=api&act=%s&ctrl=%s" | |||
APP_KEY = "300000001" | |||
SECRET_KEY = "95c347002b2750dbd4b6a03bd4196c18" | |||
SMS_APP_KEY = "300000175" | |||
SMS_SECRET_KEY = "6cf1dcd1820a576ff2cbecbe00d31df2" | |||
) | |||
func Send(act, op string, args map[string]interface{}) ([]byte, error) { | |||
router := fmt.Sprintf(ZM_BASE_URL, act, op) | |||
// args["appkey"] = APP_KEY | |||
args["time"] = strconv.Itoa(int(time.Now().Unix())) | |||
args["sign"] = sign(args, args["secret_key"].(string)) | |||
// b, _ := json.Marshal(args) | |||
// fmt.Println(string(b)) | |||
return zhios_third_party_utils.CurlPost(router, args, nil) | |||
} | |||
// SMSend is 发送短信用的key 和签名 | |||
func SMSend(act, op, key, secret string, args map[string]interface{}) ([]byte, error) { | |||
router := fmt.Sprintf(ZM_BASE_URL, act, op) | |||
args["appkey"] = key | |||
args["time"] = strconv.Itoa(int(time.Now().Unix())) | |||
args["sign"] = sign(args, secret) | |||
fmt.Println("====短信==", router, args) | |||
return zhios_third_party_utils.CurlPost(router, args, nil) | |||
} | |||
func sign(m map[string]interface{}, SK string) string { | |||
// key sort | |||
keys := make([]string, 0, len(m)) | |||
for k := range m { | |||
keys = append(keys, k) | |||
} | |||
sort.Strings(keys) | |||
str := "" | |||
for _, k := range keys { | |||
str += k + zhios_third_party_utils.AnyToString(m[k]) | |||
} | |||
// merge string | |||
str = SK + str + SK + "方诺科技" | |||
return zhios_third_party_utils.Md5(str) | |||
} |
@@ -0,0 +1,38 @@ | |||
package zhimeng | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"encoding/json" | |||
) | |||
func JdGoods(param map[string]interface{}) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
resp, err := Send("jd", "new_getgoods", param) | |||
if err != nil { | |||
return goods | |||
} | |||
var tmp struct { | |||
Data []md.JDZhimengItem `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return goods | |||
} | |||
for _, v := range tmp.Data { | |||
var tmp = map[string]string{ | |||
"gid": v.Gid, | |||
"title": v.GoodsTitle, | |||
"img": v.GoodsImg, | |||
"sales": zhios_third_party_utils.IntToStr(v.InOrderCount), | |||
"price": zhios_third_party_utils.Float64ToStr(v.WlGoodsPrice - float64(v.CouponPrice)), | |||
"cost_price": zhios_third_party_utils.Float64ToStr(v.PcGoodsPrice), | |||
"coupon": zhios_third_party_utils.IntToStr(v.CouponPrice), | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.CommissionRate), | |||
"commission": zhios_third_party_utils.Float64ToStr((v.WlGoodsPrice - float64(v.CouponPrice)) * (zhios_third_party_utils.AnyToFloat64(v.CommissionRate) / 100)), | |||
"pvd": md.PVD_JD, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} |
@@ -0,0 +1,58 @@ | |||
package zhimeng | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"encoding/json" | |||
) | |||
func KuaiShouGoods(tikTokArgs map[string]interface{}) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"title": tikTokArgs["keyword"], | |||
"first_cids": tikTokArgs["category_id"], | |||
"price_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_price"]), | |||
"price_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_price"]), | |||
"sell_num_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_sales"]), | |||
"sell_num_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_sales"]), | |||
"sort": tikTokArgs["sort"], | |||
"cos_ratio_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_commission"]), | |||
"cos_ratio_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_commission"]), | |||
"page": tikTokArgs["p"], | |||
"page_size": tikTokArgs["size"], | |||
} | |||
for k, v := range args { | |||
if v == nil || v == "<nil>" { | |||
args[k] = "" | |||
} | |||
} | |||
resp, err := Send("kuaishou", "getGoods", args) | |||
if err != nil { | |||
return goods | |||
} | |||
var tmp struct { | |||
Data []TikTokData `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return goods | |||
} | |||
for _, v := range tmp.Data { | |||
var tmp = map[string]string{ | |||
"gid": v.GoodsID, | |||
"title": v.GoodsTitle, | |||
"img": v.GoodsImg, | |||
"sales": v.GoodsSales, | |||
"price": v.Price, | |||
"cost_price": v.CostPrice, | |||
"coupon": v.YhqPrice, | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.Commission), | |||
"commission": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.Price) * (zhios_third_party_utils.AnyToFloat64(v.Commission) / 100)), | |||
"pvd": md.PVD_KUAISHOU, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} |
@@ -0,0 +1,38 @@ | |||
package zhimeng | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"encoding/json" | |||
) | |||
func PddGoods(param map[string]interface{}) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
resp, err := Send("pdd", "getgoods", param) | |||
if err != nil { | |||
return goods | |||
} | |||
var tmp struct { | |||
Data []md.PDDZhimengItem `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return goods | |||
} | |||
for _, v := range tmp.Data { | |||
var tmp = map[string]string{ | |||
"gid": v.Gid, | |||
"title": v.GoodsTitle, | |||
"img": v.GoodsImg, | |||
"sales": zhios_third_party_utils.AnyToString(v.GoodsSales), | |||
"price": zhios_third_party_utils.Float64ToStr(v.MinGroupPrice - float64(v.CouponPrice)), | |||
"cost_price": zhios_third_party_utils.Float64ToStr(v.MinNormalPrice), | |||
"coupon": zhios_third_party_utils.IntToStr(v.CouponPrice), | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.Commission), | |||
"commission": zhios_third_party_utils.Float64ToStr((v.MinGroupPrice - float64(v.CouponPrice)) * (zhios_third_party_utils.AnyToFloat64(v.Commission) / 100)), | |||
"pvd": md.PVD_PDD, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} |
@@ -0,0 +1,230 @@ | |||
package zhimeng | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"encoding/json" | |||
"github.com/syyongx/php2go" | |||
"strings" | |||
) | |||
type TikTokArgs struct { | |||
Keyword string | |||
PageSize string | |||
Sort string | |||
StartPrice string | |||
EndPrice string | |||
StartCommissionRate string | |||
EndCommissionRate string | |||
Page string | |||
CategoryId string | |||
StartSales string | |||
EndSales string | |||
} | |||
type TikTokData struct { | |||
Commission string `json:"commission"` | |||
PublicCommission string `json:"public_commission"` | |||
ServiceRatio string `json:"service_ratio"` | |||
CostPrice string `json:"cost_price"` | |||
GoodsID string `json:"goods_id"` | |||
GoodsImg string `json:"goods_img"` | |||
GoodsSales string `json:"goods_sales"` | |||
GoodsTitle string `json:"goods_title"` | |||
InStock string `json:"in_stock"` | |||
Price string `json:"price"` | |||
Sharable string `json:"sharable"` | |||
ShopID string `json:"shop_id"` | |||
ShopName string `json:"shop_name"` | |||
DetailURL string `json:"detail_url"` | |||
YhqPrice string `json:"yhq_price"` | |||
Cid string `json:"cid"` | |||
ActivityStartTime string `json:"activity_start_time"` | |||
ActivityEndTime string `json:"activity_end_time"` | |||
Imgs []string `json:"imgs"` | |||
UpdateTime string `json:"update_time"` | |||
} | |||
type TikTokDetailData struct { | |||
Commission string `json:"commission"` | |||
PublicCommission string `json:"public_commission"` | |||
CostPrice string `json:"cost_price"` | |||
GoodsID string `json:"goods_id"` | |||
GoodsImg string `json:"goods_img"` | |||
GoodsSales string `json:"goods_sales"` | |||
GoodsTitle string `json:"goods_title"` | |||
InStock string `json:"in_stock"` | |||
Price string `json:"price"` | |||
Sharable string `json:"sharable"` | |||
ShopID string `json:"shop_id"` | |||
ShopName string `json:"shop_name"` | |||
DetailUrl string `json:"detail_url"` | |||
YhqPrice string `json:"yhq_price"` | |||
Imgs []string `json:"imgs"` | |||
DetailImgs []string `json:"detail_imgs"` | |||
ShopTotalScore interface{} `json:"shop_total_score"` | |||
} | |||
type ShopTotalScore struct { | |||
LogisticsScore struct { | |||
Level string `json:"level"` | |||
Score string `json:"score"` | |||
Text string `json:"text"` | |||
} `json:"logistics_score"` | |||
ProductScore struct { | |||
Level string `json:"level"` | |||
Score string `json:"score"` | |||
Text string `json:"text"` | |||
} `json:"product_score"` | |||
ServiceScore struct { | |||
Level string `json:"level"` | |||
Score string `json:"score"` | |||
Text string `json:"text"` | |||
} `json:"service_score"` | |||
ShopScore struct { | |||
Level string `json:"level"` | |||
Score string `json:"score"` | |||
Text string `json:"text"` | |||
} `json:"shop_score"` | |||
} | |||
func TikTokDetail(tikTokArgs map[string]interface{}) (*TikTokDetailData, error) { | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"id": tikTokArgs["gid"], | |||
} | |||
resp, err := Send("tik_tok", "getGoodsDetail", args) | |||
if err != nil { | |||
return nil, err | |||
} | |||
var tmp struct { | |||
Data TikTokDetailData `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
return &tmp.Data, nil | |||
} | |||
func TikTokDetailSku(tikTokArgs map[string]interface{}) (*md.SkuData, error) { | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"id": tikTokArgs["gid"], | |||
} | |||
resp, err := Send("tik_tok", "getGoodsDetailSku", args) | |||
if err != nil { | |||
return nil, err | |||
} | |||
respstr := strings.ReplaceAll(string(resp), "\"pictures\":[]", "\"pictures\":{}") | |||
var tmp struct { | |||
Data md.SkuData `json:"data"` | |||
} | |||
resp = []byte(respstr) | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
return &tmp.Data, nil | |||
} | |||
func TikTokGoods(tikTokArgs map[string]interface{}) (*[]TikTokData, error) { | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"title": tikTokArgs["keyword"], | |||
"first_cids": tikTokArgs["category_id"], | |||
"price_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_price"]), | |||
"price_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_price"]), | |||
"sell_num_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_sales"]), | |||
"sell_num_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_sales"]), | |||
"sort": tikTokArgs["sort"], | |||
"cos_ratio_min": zhios_third_party_utils.AnyToString(tikTokArgs["start_commission"]), | |||
"cos_ratio_max": zhios_third_party_utils.AnyToString(tikTokArgs["end_commission"]), | |||
"page": tikTokArgs["p"], | |||
"page_size": tikTokArgs["size"], | |||
} | |||
for k, v := range args { | |||
if v == nil || v == "<nil>" { | |||
args[k] = "" | |||
} | |||
} | |||
resp, err := Send("tik_tok", "getGoods", args) | |||
if err != nil { | |||
return nil, err | |||
} | |||
var tmp struct { | |||
Data []TikTokData `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
return &tmp.Data, nil | |||
} | |||
func TikTokDetailMore(tikTokArgs map[string]interface{}) (*[]TikTokDetailData, error) { | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"id": tikTokArgs["gid"], | |||
} | |||
resp, err := Send("tik_tok", "getGoodsDetailMore", args) | |||
if err != nil { | |||
return nil, err | |||
} | |||
var tmp struct { | |||
Data map[string]TikTokDetailData `json:"data"` | |||
} | |||
data := make([]TikTokDetailData, 0) | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
for _, v := range tmp.Data { | |||
data = append(data, v) | |||
} | |||
return &data, nil | |||
} | |||
func TikTokGoodsKl(tikTokArgs map[string]interface{}) (*TikTokDetailData, error) { | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"content": php2go.Base64Encode(tikTokArgs["content"].(string)), | |||
} | |||
for k, v := range args { | |||
if v == nil || v == "<nil>" { | |||
args[k] = "" | |||
} | |||
} | |||
resp, err := Send("tik_tok", "getKlGoods", args) | |||
if err != nil { | |||
return nil, err | |||
} | |||
var tmp struct { | |||
Data TikTokDetailData `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
return &tmp.Data, nil | |||
} | |||
func TikTokGoodsKlNew(tikTokArgs map[string]interface{}) (*TikTokDetailData, error) { | |||
args := map[string]interface{}{ | |||
"appkey": tikTokArgs["appkey"], | |||
"secret_key": tikTokArgs["secret_key"], | |||
"content": php2go.Base64Encode(tikTokArgs["content"].(string)), | |||
} | |||
for k, v := range args { | |||
if v == nil || v == "<nil>" { | |||
args[k] = "" | |||
} | |||
} | |||
resp, err := Send("tik_tok", "getKlGoodsId", args) | |||
if err != nil { | |||
return nil, err | |||
} | |||
var tmp struct { | |||
Data TikTokDetailData `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return nil, err | |||
} | |||
if zhios_third_party_utils.StrToFloat64(tmp.Data.YhqPrice) > 0 { | |||
tmp.Data.Price = tmp.Data.CostPrice | |||
} | |||
return &tmp.Data, nil | |||
} |
@@ -0,0 +1,38 @@ | |||
package zhimeng | |||
import ( | |||
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/md" | |||
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" | |||
"encoding/json" | |||
) | |||
func WphGoods(param map[string]interface{}) []map[string]string { | |||
var goods = make([]map[string]string, 0) | |||
resp, err := Send("wph", "seach_goods", param) | |||
if err != nil { | |||
return goods | |||
} | |||
var tmp struct { | |||
Data []md.VIPZhimengItem `json:"data"` | |||
} | |||
if err = json.Unmarshal(resp, &tmp); err != nil { | |||
return goods | |||
} | |||
for _, v := range tmp.Data { | |||
var tmp = map[string]string{ | |||
"gid": v.Gid, | |||
"title": v.GoodsTitle, | |||
"img": v.GoodsImg, | |||
"sales": "", | |||
"price": zhios_third_party_utils.Float64ToStr(zhios_third_party_utils.StrToFloat64(v.GoodsPrice) - zhios_third_party_utils.StrToFloat64(v.YhqPrice)), | |||
"cost_price": v.GoodsCostPrice, | |||
"coupon": v.YhqPrice, | |||
"commission_rate": zhios_third_party_utils.AnyToString(v.CommissionRate), | |||
"commission": zhios_third_party_utils.Float64ToStr((zhios_third_party_utils.StrToFloat64(v.GoodsPrice) - zhios_third_party_utils.StrToFloat64(v.YhqPrice)) * (zhios_third_party_utils.AnyToFloat64(v.CommissionRate) / 100)), | |||
"pvd": md.PVD_VIP, | |||
"share_content": "", | |||
} | |||
goods = append(goods, tmp) | |||
} | |||
return goods | |||
} |