-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscrape.php
195 lines (182 loc) · 12.6 KB
/
scrape.php
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Psr7;
use GuzzleHttp\Exception\RequestException;
$client = new GuzzleHttp\Client();
$games = [
0 => [
'POWERBALL' => [
'drawNumbers',
'powerball',
'powerplay'
]
],
1 => [
'MEGA_MILLIONS' => [
'drawNumbers',
'megaball',
'megaplier'
]
],
2 => [
'FANTASY_5' => [
'drawNumbers'
]
],
3 => [
'CLASSIC_LOTTO_47' => [
'drawNumbers'
]
],
4 => [
'CLUB_KENO' => [
'drawNumber'
]
],
5 => [
'DAILY_3' => [
'drawNumbersMid',
'drawNumbersEve'
]
],
6 => [
'DAILY_4' => [
'drawNumbersMid',
'drawNumbersEve'
]
],
7 => [
'LUCKY_FOR_LIFE' => [
'drawNumbers',
'luckyball'
]
],
8 => [
'POKER_LOTTO' => [
'drawNumbers'
]
],
9 => [
'DAILY_KENO' => [
'drawNumbers'
]
]
];
$jsonLastDate = '[
{
"query":"{\n POWERBALLLastDrawDate: lastDrawDate(logicalGameIdentifier: \"POWERBALL\") {\n date\n __typename\n }\n MEGA_MILLIONSLastDrawDate: lastDrawDate(logicalGameIdentifier: \"MEGA_MILLIONS\") {\n date\n __typename\n }\n FANTASY_5LastDrawDate: lastDrawDate(logicalGameIdentifier: \"FANTASY_5\") {\n date\n __typename\n }\n CLASSIC_LOTTO_47LastDrawDate: lastDrawDate(logicalGameIdentifier: \"CLASSIC_LOTTO_47\") {\n date\n __typename\n }\n DAILY_3LastDrawDate: lastDrawDate(logicalGameIdentifier: \"DAILY_3\") {\n date\n __typename\n }\n DAILY_4LastDrawDate: lastDrawDate(logicalGameIdentifier: \"DAILY_4\") {\n date\n __typename\n }\n LUCKY_FOR_LIFELastDrawDate: lastDrawDate(logicalGameIdentifier: \"LUCKY_FOR_LIFE\") {\n date\n __typename\n }\n POKER_LOTTOLastDrawDate: lastDrawDate(logicalGameIdentifier: \"POKER_LOTTO\") {\n date\n __typename\n }\n DAILY_KENOLastDrawDate: lastDrawDate(logicalGameIdentifier: \"DAILY_KENO\") {\n date\n __typename\n }\n}\n",
"operationName":null
}
]';
$dates = fetch($jsonLastDate);
$dates = array_shift($dates);
$jsonGames = '[
{
"query":"query gameCardData($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n resultsPending\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n powerball\n powerplay\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"POWERBALL",
"drawDate":"POWERBALLLastDrawDate"
},
"operationName":"gameCardData"
},
{
"query":"query megaMillionsData($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n resultsPending\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n megaplier\n megaball\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"MEGA_MILLIONS",
"drawDate":"MEGA_MILLIONSLastDrawDate"
},
"operationName":"megaMillionsData"
},
{
"query":"query fantasy5Data($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n resultsPending\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"FANTASY_5",
"drawDate":"FANTASY_5LastDrawDate"
},
"operationName":"fantasy5Data"
},
{
"query":"query lotto47Data($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n resultsPending\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"CLASSIC_LOTTO_47",
"drawDate":"CLASSIC_LOTTO_47LastDrawDate"
},
"operationName":"lotto47Data"
},
{
"query":"query clubKenoData {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: \"CLUB_KENO\") {\n jackpot\n __typename\n }\n drawNumber: getLatestClubKenoDrawNumber {\n drawNumber\n __typename\n }\n}\n",
"operationName":"clubKenoData"
},
{
"query":"query daily3Data($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbersMid\n drawNumbersEve\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"DAILY_3",
"drawDate":"DAILY_3LastDrawDate"
},
"operationName":"daily3Data"
},
{
"query":"query daily4Data($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbersMid\n drawNumbersEve\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"DAILY_4",
"drawDate":"DAILY_4LastDrawDate"
},
"operationName":"daily4Data"
},
{
"query":"query luckyForLifeData($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n luckyball\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"LUCKY_FOR_LIFE",
"drawDate":"LUCKY_FOR_LIFELastDrawDate"
},
"operationName":"luckyForLifeData"
},
{
"query":"query pokerLottoData($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"POKER_LOTTO",
"drawDate":"POKER_LOTTOLastDrawDate"
},
"operationName":"pokerLottoData"
},
{
"query":"query dailyKenoData($logicalGameIdentifier: String, $drawDate: String) {\n jackpot: currentEstimatedJackpotForGame(logicalGameIdentifier: $logicalGameIdentifier) {\n jackpot\n __typename\n }\n nextDrawDate: nextDrawTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n nextBreakDate: nextBreakTimeForLogicalGame(logicalGameIdentifier: $logicalGameIdentifier) {\n date\n __typename\n }\n winningNumbers: winningNumbers(logicalGameIdentifier: $logicalGameIdentifier, drawDate: $drawDate) {\n resultsPending\n drawNumbers\n __typename\n }\n drawingDays: drawingDays(logicalGameIdentifier: $logicalGameIdentifier) {\n SUNDAY\n MONDAY\n TUESDAY\n WEDNESDAY\n THURSDAY\n FRIDAY\n SATURDAY\n __typename\n }\n}\n",
"variables":{
"logicalGameIdentifier":"DAILY_KENO",
"drawDate":"DAILY_KENOLastDrawDate"
},
"operationName":"dailyKenoData"
}
]';
foreach ($dates['data'] as $key => $date) {
$jsonGames = str_replace($key, $date['date'], $jsonGames);
}
$response = fetch($jsonGames);
$numbers = [];
foreach ($response as $key => $item) {
foreach ($games[$key] as $game => $fields) {
foreach ($fields as $field) {
$numbers[$game][$field] = isset($item['data']['winningNumbers']) ? $item['data']['winningNumbers'][$field] : (isset($item['data']['drawNumber']) ? $item['data']['drawNumber'][$field] : null);
}
}
}
header('Content-Type: application/json');
echo json_encode($numbers);
function fetch(string $json): array
{
global $client;
try {
$result = $client->request('POST', 'https://www.michiganlottery.com/api', [
'json' => json_decode($json)
]);
} catch (RequestException $e) {
echo Psr7\str($e->getRequest());
if ($e->hasResponse()) {
echo Psr7\str($e->getResponse());
}
die;
}
$response = $result->getBody()->getContents();
$response = json_decode($response, true);
return $response;
}