moex/main.go
Alexander Kiryukhin 4b35f7c2c3
Initial
2020-07-25 01:35:31 +03:00

43 lines
1.1 KiB
Go

package main
import "log"
const (
OFZ_URL = `https://iss.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,COUPONVALUE,SECNAME,COUPONPERCENT,MATDATE,COUPONPERIOD`
CORP_URL = `https://iss.moex.com/iss/engines/stock/markets/bonds/boards/TQCB/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,COUPONVALUE,SECNAME,COUPONPERCENT,MATDATE,COUPONPERIOD`
)
func main() {
d1, err := processFile(OFZ_URL)
if err != nil {
log.Fatal(err)
}
if err := export("офз.csv", d1); err != nil {
log.Fatal(err)
}
d2, err := processFile(CORP_URL)
if err != nil {
log.Fatal(err)
}
if err := export("корп.csv", d2); err != nil {
log.Fatal(err)
}
}
func processFile(url string) ([]*Document, error) {
in, err := download(url)
if err != nil {
return nil, err
}
var documents []*Document
for _, item := range in.Data.Rows.Items {
d, err := parse(item)
if err != nil {
log.Println(err)
continue
}
documents = append(documents, d)
}
return documents, nil
}