1 Star 0 Fork 43

githubvip / go验证码合集包

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
confighelper.go 3.84 KB
一键复制 编辑 Web IDE 原始数据 按行查看 历史
shirdon 提交于 2019-07-07 16:26 . 优化提交
//++++++++++++++++++++++++++++++++++++++++
//Fighting for great,share generate value!
//Build the best soft by golang,let's go!
//++++++++++++++++++++++++++++++++++++++++
//Author:ShirDon <http://www.shirdon.com>
//Email:hcbsts@163.com; 823923263@qq.com
//++++++++++++++++++++++++++++++++++++++++
package captchas_with_go
import (
"errors"
"strings"
"time"
"gitee.com/shirdonl/configs_with_go"
)
const (
DEFAULT_LIFE_TIME = time.Minute * 5
DEFAULT_FONT_SIZE = 26
DEFAULT_WIDTH = 120
DEFAULT_HEIGHT = 40
DEFAULT_GC_PROBABILITY = 1
DEFAULT_GC_DIVISOR = 100
)
func loadConfigFromFile(configFile string) (error, string, *CaptchaConfig, *ImageConfig, *FilterConfig, *StoreConfig) {
var retErr error
c, err := config.ReadDefault(configFile)
//wordDict
wordDict, err := c.String("captcha", "word_dict")
if nil != err {
retErr = errors.New("loadConfigFromFile Fail,Get word_dict options failed:" + err.Error())
}
//captchaConfig
captchaConfig := new(CaptchaConfig)
var lifeTime time.Duration
cfgLifeTime, err := c.String("captcha", "life_time")
if nil == err {
lifeTime, err = time.ParseDuration(cfgLifeTime)
if nil != err {
lifeTime = DEFAULT_LIFE_TIME
}
} else {
lifeTime = DEFAULT_LIFE_TIME
}
captchaConfig.LifeTime = lifeTime
cfgChangeTextOnRefresh, err := c.Bool("captcha", "change_text_on_refresh")
if nil != err {
cfgChangeTextOnRefresh = false
}
captchaConfig.ChangeTextOnRefresh = cfgChangeTextOnRefresh
//imageConfig
imageConfig := new(ImageConfig)
var fontFiles []string
cfgFontFiles, err := c.StringMuti("image", "font_files")
if nil != err {
retErr = errors.New("loadConfigFromFile Fail,font_files options failed:" + err.Error())
} else {
fontFiles = cfgFontFiles
}
imageConfig.FontFiles = fontFiles
var fontSize float64
cfgFontSize, err := c.Int("image", "font_size")
if nil != err {
fontSize = DEFAULT_FONT_SIZE
} else {
fontSize = float64(cfgFontSize)
}
imageConfig.FontSize = fontSize
var width int
cfgWidth, err := c.Int("image", "width")
if nil != err {
width = DEFAULT_WIDTH
} else {
width = int(cfgWidth)
}
imageConfig.Width = width
var height int
cfgHeight, err := c.Int("image", "height")
if nil != err {
height = DEFAULT_HEIGHT
} else {
height = int(cfgHeight)
}
imageConfig.Height = height
//filterConfig
filterConfig := new(FilterConfig)
filterConfig.Init()
cfgOpenFilter, err := c.StringMuti("filter", "open_filter")
if nil == err {
filterConfig.Filters = cfgOpenFilter
} else {
filterConfig.Filters = []string{}
}
for _, section := range c.Sections() {
if strings.HasPrefix(section, "ImageFilter") {
filterConfigGroup := new(FilterConfigGroup)
filterConfigGroup.Init()
options, err := c.Options(section)
if nil == err {
for _, option := range options {
v, err := c.String(section, option)
if nil == err {
filterConfigGroup.SetItem(option, v)
}
}
}
filterConfig.SetGroup(section, filterConfigGroup)
}
}
//storeConfig
storeConfig := new(StoreConfig)
storeConfig.CaptchaConfig = *captchaConfig
engine, err := c.String("store", "engine")
if nil != err {
retErr = errors.New("loadConfigFromFile Fail,engine options failed" + err.Error())
} else {
storeConfig.Engine = engine
}
servers, err := c.StringMuti("store", "servers")
if nil != err {
storeConfig.Servers = []string{}
} else {
storeConfig.Servers = servers
}
gcProbability, err := c.Int("store", "gc_probability")
if nil != err {
storeConfig.GcProbability = gcProbability
} else {
storeConfig.GcProbability = DEFAULT_GC_PROBABILITY
}
gcDivisor, err := c.Int("store", "gc_divisor")
if nil != err {
storeConfig.GcDivisor = gcDivisor
} else {
storeConfig.GcDivisor = DEFAULT_GC_DIVISOR
}
if nil != err && nil == retErr {
retErr = err
}
return retErr, wordDict, captchaConfig, imageConfig, filterConfig, storeConfig
}
Go
1
https://gitee.com/githubvip/captchas_with_go.git
git@gitee.com:githubvip/captchas_with_go.git
githubvip
captchas_with_go
go验证码合集包
master

搜索帮助

14c37bed 8189591 565d56ea 8189591