コード例 #1
0
ファイル: etc_config.go プロジェクト: houzhenggang/pholcus
// Conf gets singleton instance of Config.
func Conf() *config.Config {
	if conf == nil {
		if path == "" {
			path = configpath()
		}
		conf = config.NewConfig().Load(path)
	}
	return conf
}
コード例 #2
0
ファイル: setting.go プロジェクト: ss7247/pholcus
func initConfig() config.ConfigContainer {
	mkdir()

	name := APP_TAG + "/pholcus.ini"
	iniconf, err := config.NewConfig("ini", name)
	if err != nil {
		file, err := os.Create(name)
		file.Close()
		iniconf, err = config.NewConfig("ini", name)
		if err != nil {
			panic(err)
		}
		defaultConfig(iniconf)
		iniconf.SaveConfigFile(name)

	}
	return iniconf
}
コード例 #3
0
ファイル: yaml_test.go プロジェクト: ss7247/pholcus
func TestYaml(t *testing.T) {
	f, err := os.Create("testyaml.conf")
	if err != nil {
		t.Fatal(err)
	}
	_, err = f.WriteString(yamlcontext)
	if err != nil {
		f.Close()
		t.Fatal(err)
	}
	f.Close()
	defer os.Remove("testyaml.conf")
	yamlconf, err := config.NewConfig("yaml", "testyaml.conf")
	if err != nil {
		t.Fatal(err)
	}
	if yamlconf.String("appname") != "beeapi" {
		t.Fatal("appname not equal to beeapi")
	}
	if port, err := yamlconf.Int("httpport"); err != nil || port != 8080 {
		t.Error(port)
		t.Fatal(err)
	}
	if port, err := yamlconf.Int64("mysqlport"); err != nil || port != 3600 {
		t.Error(port)
		t.Fatal(err)
	}
	if pi, err := yamlconf.Float("PI"); err != nil || pi != 3.1415976 {
		t.Error(pi)
		t.Fatal(err)
	}
	if yamlconf.String("runmode") != "dev" {
		t.Fatal("runmode not equal to dev")
	}
	if v, err := yamlconf.Bool("autorender"); err != nil || v != false {
		t.Error(v)
		t.Fatal(err)
	}
	if v, err := yamlconf.Bool("copyrequestbody"); err != nil || v != true {
		t.Error(v)
		t.Fatal(err)
	}
	if err = yamlconf.Set("name", "henrylee2cn"); err != nil {
		t.Fatal(err)
	}
	if yamlconf.String("name") != "henrylee2cn" {
		t.Fatal("get name error")
	}
}
コード例 #4
0
ファイル: setting.go プロジェクト: ZenithDandelion/pholcus
	thread                  int    = 20                          // 全局最大并发量
	pause                   int64  = 300                         // 暂停时长参考/ms(随机: Pausetime/2 ~ Pausetime*2)
	outtype                 string = "csv"                       // 输出方式
	dockercap               int    = 10000                       // 分段转储容器容量
	limit                   int64  = 0                           // 采集上限,0为不限,若在规则中设置初始值为LIMIT则为自定义限制,否则默认限制请求数
	proxyminute             int64  = 0                           // 代理IP更换的间隔分钟数
	success                 bool   = true                        // 继承历史成功记录
	failure                 bool   = true                        // 继承历史失败记录
)

var setting = func() config.Configer {
	os.MkdirAll(filepath.Clean(HISTORY_DIR), 0777)
	os.MkdirAll(filepath.Clean(CACHE_DIR), 0777)
	os.MkdirAll(filepath.Clean(PHANTOMJS_TEMP), 0777)

	iniconf, err := config.NewConfig("ini", CONFIG)
	if err != nil {
		file, err := os.Create(CONFIG)
		file.Close()
		iniconf, err = config.NewConfig("ini", CONFIG)
		if err != nil {
			panic(err)
		}
		defaultConfig(iniconf)
		iniconf.SaveConfigFile(CONFIG)
	} else {
		trySet(iniconf)
	}

	os.MkdirAll(filepath.Clean(iniconf.String("spiderdir")), 0777)
	os.MkdirAll(filepath.Clean(iniconf.String("fileoutdir")), 0777)