初步结构

This commit is contained in:
huangsimin 2019-01-24 18:17:40 +08:00
commit 7faea797d0
5 changed files with 107 additions and 0 deletions

19
base.go Normal file
View File

@ -0,0 +1,19 @@
package simulator
import "log"
// must 处理err, 失败后panic
func must(err error) {
if err != nil {
panic(err)
}
}
// notMust 处理err, 失败后返回
func notMust(err error) bool {
if err != nil {
log.Fatalln(err)
return false
}
return true
}

1
config.go Normal file
View File

@ -0,0 +1 @@
package simulator

85
config_test.go Normal file
View File

@ -0,0 +1,85 @@
package simulator
import (
"strings"
"gopkg.in/yaml.v2"
)
// ADInfo ad 的一些属性,基础信息等
type ADInfo struct {
Priority int `yaml:"priority"`
Device string `yaml:"device"`
Platform string `yaml:"platform"`
AreaCC string `yaml:"area_cc"`
Channel int `yaml:"channel"`
Media int `yaml:"media"`
SpiderID int `yaml:"spider_id"`
CatchAccountID int `yaml:"catch_account_id"`
}
type CurlInfo struct {
TakeType int
Address string
URI string
}
type ProxySetting struct {
Mode int `yaml:"mode"`
Proxies []string `yaml:"proxies"`
}
type SpiderSetting struct {
// Mode int `yaml:"mode"`
// Proxies *YamlProxies `yaml:"proxies"`
Retry int `yaml:"retry"`
Crontab string `yaml:"crontab"`
}
type Config struct {
ProxySetting `yaml:",inline"`
SpiderSetting `yaml:",inline"`
ADInfo `yaml:",inline"`
}
// NewConfig 加载并返回Config
func NewConfig(p string) *Config {
// f, err := os.Open(p)
// defer f.Close()
// if err != nil {
// panic(err)
// }
f := strings.NewReader(p)
conf := &Config{
ProxySetting: ProxySetting{
Mode: 0,
Proxies: []string{},
},
SpiderSetting: SpiderSetting{
Retry: 1,
Crontab: "",
},
ADInfo: ADInfo{
Device: "",
Platform: "",
AreaCC: "",
Channel: -1,
Media: -1,
SpiderID: -1,
CatchAccountID: -1,
},
}
err := yaml.NewDecoder(f).Decode(conf)
if err != nil {
panic(err)
}
return conf
}

1
task.go Normal file
View File

@ -0,0 +1 @@
package simulator

1
task_test.go Normal file
View File

@ -0,0 +1 @@
package simulator