diff --git a/layout.go b/layout.go
index fdb5ab8..2875b0c 100644
--- a/layout.go
+++ b/layout.go
@@ -183,9 +183,9 @@ func (layout *Layout) pad(str string, width int) string {
//-----------------------------------------------------------------------------
func buildMarketTemplate() *template.Template {
- markup := `{{.Dow.name}}: {{.Dow.change}} ({{.Dow.percent}}) at {{.Dow.latest}}, {{.Sp500.name}}: {{.Sp500.change}} ({{.Sp500.percent}}) at {{.Sp500.latest}}, {{.Nasdaq.name}}: {{.Nasdaq.change}} ({{.Nasdaq.percent}}) at {{.Nasdaq.latest}}
-{{.London.name}}: {{.London.change}} ({{.London.percent}}) at {{.London.latest}}, {{.Frankfurt.name}}: {{.Frankfurt.change}} ({{.Frankfurt.percent}}) at {{.Frankfurt.latest}}, {{.Paris.name}}: {{.Paris.change}} ({{.Paris.percent}}) at {{.Paris.latest}} {{if .IsClosed}}U.S. markets closed{{end}}
-{{.Tokyo.name}}: {{.Tokyo.change}} ({{.Tokyo.percent}}) at {{.Tokyo.latest}}, {{.HongKong.name}}: {{.HongKong.change}} ({{.HongKong.percent}}) at {{.HongKong.latest}}, {{.Shanghai.name}}: {{.Shanghai.change}} ({{.Shanghai.percent}}) at {{.Shanghai.latest}}`
+ markup := `{{.Dow.name}}> {{.Dow.change}} ({{.Dow.percent}}) at {{.Dow.latest}} {{.Sp500.name}}> {{.Sp500.change}} ({{.Sp500.percent}}) at {{.Sp500.latest}} {{.Nasdaq.name}}> {{.Nasdaq.change}} ({{.Nasdaq.percent}}) at {{.Nasdaq.latest}}
+{{.London.name}}> {{.London.change}} ({{.London.percent}}) at {{.London.latest}} {{.Frankfurt.name}}> {{.Frankfurt.change}} ({{.Frankfurt.percent}}) at {{.Frankfurt.latest}} {{.Paris.name}}> {{.Paris.change}} ({{.Paris.percent}}) at {{.Paris.latest}} {{if .IsClosed}}U.S. markets closed{{end}}
+{{.Tokyo.name}}> {{.Tokyo.change}} ({{.Tokyo.percent}}) at {{.Tokyo.latest}} {{.HongKong.name}}> {{.HongKong.change}} ({{.HongKong.percent}}) at {{.HongKong.latest}} {{.Shanghai.name}}> {{.Shanghai.change}} ({{.Shanghai.percent}}) at {{.Shanghai.latest}}`
return template.Must(template.New(`market`).Parse(markup))
}
diff --git a/yahoo_market.go b/yahoo_market.go
index 47d76db..c22ecc1 100644
--- a/yahoo_market.go
+++ b/yahoo_market.go
@@ -36,9 +36,9 @@ type Market struct {
// market data from HTML page.
func (market *Market) Initialize() *Market {
market.IsClosed = false
+ market.Sp500 = make(map[string]string)
market.Dow = make(map[string]string)
market.Nasdaq = make(map[string]string)
- market.Sp500 = make(map[string]string)
market.London = make(map[string]string)
market.Frankfurt = make(map[string]string)
market.Paris = make(map[string]string)
@@ -128,42 +128,42 @@ func (market *Market) extract(snippet []byte) *Market {
panic(`Unable to parse ` + marketURL)
}
- market.Dow[`name`] = `Dow`
- market.Dow[`latest`] = matches[0][1]
- market.Dow[`change`] = matches[0][3]
- market.Dow[`percent`] = matches[0][4]
+ market.Sp500[`name`] = `S&P 500`
+ market.Sp500[`latest`] = matches[0][1]
+ market.Sp500[`change`] = matches[0][3]
+ market.Sp500[`percent`] = matches[0][4]
if matches[0][2] == `green` {
+ market.Sp500[`change`] = `+` + market.Sp500[`change`]
+ market.Sp500[`percent`] = `+` + market.Sp500[`percent`]
+ } else if matches[0][2] == `red` {
+ market.Sp500[`change`] = `-` + market.Sp500[`change`]
+ market.Sp500[`percent`] = `-` + market.Sp500[`percent`]
+ }
+
+ market.Dow[`name`] = `Dow`
+ market.Dow[`latest`] = matches[0][5]
+ market.Dow[`change`] = matches[0][7]
+ market.Dow[`percent`] = matches[0][8]
+ if matches[0][6] == `green` {
market.Dow[`change`] = `+` + market.Dow[`change`]
market.Dow[`percent`] = `+` + market.Dow[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][6] == `red` {
market.Dow[`change`] = `-` + market.Dow[`change`]
market.Dow[`percent`] = `-` + market.Dow[`percent`]
}
market.Nasdaq[`name`] = `NASDAQ`
- market.Nasdaq[`latest`] = matches[0][5]
- market.Nasdaq[`change`] = matches[0][7]
- market.Nasdaq[`percent`] = matches[0][8]
- if matches[0][6] == `green` {
+ market.Nasdaq[`latest`] = matches[0][9]
+ market.Nasdaq[`change`] = matches[0][11]
+ market.Nasdaq[`percent`] = matches[0][12]
+ if matches[0][10] == `green` {
market.Nasdaq[`change`] = `+` + market.Nasdaq[`change`]
market.Nasdaq[`percent`] = `+` + market.Nasdaq[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][10] == `red` {
market.Nasdaq[`change`] = `-` + market.Nasdaq[`change`]
market.Nasdaq[`percent`] = `-` + market.Nasdaq[`percent`]
}
- market.Sp500[`name`] = `S&P 500`
- market.Sp500[`latest`] = matches[0][9]
- market.Sp500[`change`] = matches[0][11]
- market.Sp500[`percent`] = matches[0][12]
- if matches[0][10] == `green` {
- market.Sp500[`change`] = `+` + market.Sp500[`change`]
- market.Sp500[`percent`] = `+` + market.Sp500[`percent`]
- } else if matches[0][2] == `?` {
- market.Sp500[`change`] = `-` + market.Sp500[`change`]
- market.Sp500[`percent`] = `-` + market.Sp500[`percent`]
- }
-
market.London[`name`] = `London`
market.London[`latest`] = matches[0][13]
market.London[`change`] = matches[0][15]
@@ -171,7 +171,7 @@ func (market *Market) extract(snippet []byte) *Market {
if matches[0][14] == `green` {
market.London[`change`] = `+` + market.London[`change`]
market.London[`percent`] = `+` + market.London[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][14] == `red` {
market.London[`change`] = `-` + market.London[`change`]
market.London[`percent`] = `-` + market.London[`percent`]
}
@@ -183,7 +183,7 @@ func (market *Market) extract(snippet []byte) *Market {
if matches[0][18] == `green` {
market.Frankfurt[`change`] = `+` + market.Frankfurt[`change`]
market.Frankfurt[`percent`] = `+` + market.Frankfurt[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][18] == `red` {
market.Frankfurt[`change`] = `-` + market.Frankfurt[`change`]
market.Frankfurt[`percent`] = `-` + market.Frankfurt[`percent`]
}
@@ -195,7 +195,7 @@ func (market *Market) extract(snippet []byte) *Market {
if matches[0][22] == `green` {
market.Paris[`change`] = `+` + market.Paris[`change`]
market.Paris[`percent`] = `+` + market.Paris[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][22] == `red` {
market.Paris[`change`] = `-` + market.Paris[`change`]
market.Paris[`percent`] = `-` + market.Paris[`percent`]
}
@@ -207,7 +207,7 @@ func (market *Market) extract(snippet []byte) *Market {
if matches[0][26] == `green` {
market.Tokyo[`change`] = `+` + market.Tokyo[`change`]
market.Tokyo[`percent`] = `+` + market.Tokyo[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][26] == `red` {
market.Tokyo[`change`] = `-` + market.Tokyo[`change`]
market.Tokyo[`percent`] = `-` + market.Tokyo[`percent`]
}
@@ -219,19 +219,19 @@ func (market *Market) extract(snippet []byte) *Market {
if matches[0][30] == `green` {
market.HongKong[`change`] = `+` + market.HongKong[`change`]
market.HongKong[`percent`] = `+` + market.HongKong[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][30] == `red` {
market.HongKong[`change`] = `-` + market.HongKong[`change`]
market.HongKong[`percent`] = `-` + market.HongKong[`percent`]
}
market.Shanghai[`name`] = `Shanghai`
market.Shanghai[`latest`] = matches[0][33]
- market.Shanghai[`change`] = matches[0][36]
+ market.Shanghai[`change`] = matches[0][35]
market.Shanghai[`percent`] = matches[0][36]
if matches[0][34] == `green` {
market.Shanghai[`change`] = `+` + market.Shanghai[`change`]
market.Shanghai[`percent`] = `+` + market.Shanghai[`percent`]
- } else if matches[0][2] == `?` {
+ } else if matches[0][34] == `red` {
market.Shanghai[`change`] = `-` + market.Shanghai[`change`]
market.Shanghai[`percent`] = `-` + market.Shanghai[`percent`]
}