1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shirdonl-captchas_with_go

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
confighelper.go 3.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
shirdonliao Отправлено 07.07.2019 11:26 7390153
//++++++++++++++++++++++++++++++++++++++++
//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
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/shirdonl-captchas_with_go.git
git@api.gitlife.ru:oschina-mirror/shirdonl-captchas_with_go.git
oschina-mirror
shirdonl-captchas_with_go
shirdonl-captchas_with_go
master