/
YahooToES.ps1
101 lines (96 loc) · 2.93 KB
/
YahooToES.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# param(
# [Int32]$interval
# )
$indexSettings = @"
{
"settings": {
"index": {
"number_of_replicas": "0"
}
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
},
"symbol": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"high": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"open": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"low": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"close": {
"type": "float",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"volume": {
"type": "integer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
"@
$shardDate = Get-Date -f "yyyy.MM.dd"
Invoke-WebRequest -Uri "http://192.168.0.189:9200/stock-$($shardDate)/" -Body $($indexSettings) -Method PUT -ContentType "application/json" -Verbose
# catch{
# $Error | % {
# Write-Host -f Yellow "$($_.Exception.Message)"
# $errMsgText = $_.ErrorDetails.Message
# $errMsgJson = $errMsgText | ConvertFrom-Json
# $errMsg = $errMsgJson.error.reason
# Write-Host -f Yellow $errMsg
# }
# $Error.Clear()
# }
$symbols = "ABI.BR","MSFT"
$wr = Invoke-WebRequest -Uri "https://query1.finance.yahoo.com/v7/finance/quote?symbols=$($symbols -join ",")"
$json = ConvertFrom-Json -InputObject $wr.content
$jsonResult = $json.quoteResponse.result
$jsonCount = $jsonResult.Count
for ($i = 0; $i -lt $jsonCount; $i++) {
$properties = $jsonResult[$i] | Get-Member -MemberType Properties | Select-Object -ExpandProperty Name
$body = $jsonResult[$i] | ConvertTo-Json
Invoke-WebRequest -Uri "http://192.168.0.189:9200/stock-$($shardDate)/_doc" -Body $body -Method POST -ContentType "application/json" -Verbose
}