Fetch the repository succeeded.
package exchange
import (
"fmt"
"regexp"
"strings"
"gitee.com/quant1x/gox/api"
"gitee.com/quant1x/gox/http"
"gitee.com/quant1x/gox/logger"
"gitee.com/quant1x/gox/text/encoding"
)
const (
urlHoliday = "https://www.tdx.com.cn/url/holiday/"
)
// FinancialHoliday 金融假日
type FinancialHoliday struct {
Date string `name:"日期" array:"0"`
Holiday string `name:"节日" array:"1"`
Country string `name:"地区" array:"2"`
Exchange string `name:"交易所" array:"3"`
}
var (
holidayPattern = `<textarea id="data" style="display:none;">([\s\w\W]+)</textarea>`
holidayRegexp = regexp.MustCompile(holidayPattern)
)
var (
mapFinancialHolidays = map[string]FinancialHoliday{}
)
func getHolidayFromTdx() {
data, err := http.Get(urlHoliday)
if err != nil {
logger.Error(err)
return
}
text := api.Bytes2String(data)
encoder := encoding.NewDecoder("gbk")
text = encoder.ConvertString(text)
arr := holidayRegexp.FindStringSubmatch(text)
if len(arr) != 2 {
return
}
textHolidays := arr[1]
arr = strings.Split(textHolidays, "\n")
for _, v := range arr {
v := strings.TrimSpace(v)
if len(v) == 0 {
continue
}
line := strings.Split(v, `|`)
if len(line) < 4 {
continue
}
var fh FinancialHoliday
err = api.Convert(line, &fh)
fmt.Println(err)
fh.Date = FixTradeDate(fh.Date)
fmt.Println(fh)
break
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。