1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace LoteriaApi\Consumer\Reader; |
4
|
|
|
|
5
|
|
|
use \DOMDocument; |
6
|
|
|
use \DOMNodeList; |
7
|
|
|
use \DomXPath; |
8
|
|
|
|
9
|
|
|
class HtmlLotofacil extends AbstractReaderHtmlLoteria |
10
|
|
|
{ |
11
|
|
|
public function getData() |
12
|
|
|
{ |
13
|
|
|
$this->numbersNode->setNumberConcurso(0) |
14
|
|
|
->setDataConcurso(1) |
15
|
|
|
->setDezenasConcurso([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]) |
16
|
|
|
->setArrecadacaoConcurso(17) |
17
|
|
|
->setTotalGanhadoresPrimeiroPremio(18) |
18
|
|
|
->setTotalGanhadoresSegundoPremio(21) |
19
|
|
|
->setTotalGanhadoresTerceiroPremio(22) |
20
|
|
|
->setValorGanhadoresPrimeiroPremio(25) |
21
|
|
|
->setValorGanhadoresSegundoPremio(26) |
22
|
|
|
->setValorGanhadoresTerceiroPremio(27) |
23
|
|
|
->setValorAcumuladoConcurso(30) |
24
|
|
|
->setValorEstimadoProximoConcurso(31); |
25
|
|
|
|
26
|
|
|
parent::loadData($this->numbersNode); |
|
|
|
|
27
|
|
|
|
28
|
|
|
return $this->data; |
29
|
|
|
} |
30
|
|
|
|
31
|
|
|
public function getDataLive() { |
32
|
|
|
|
33
|
|
|
// Instance for query |
34
|
|
|
$finder = new DomXPath($this->domdocument); |
35
|
|
|
|
36
|
|
|
// Concurso |
37
|
|
|
$nodes = $finder->query("//div[contains(@class, 'title-bar')]"); |
38
|
|
|
$domConcurso = $nodes[0]; |
39
|
|
|
preg_match('/ ([0-9]{4,}) \((.*?)\)/', $domConcurso->nodeValue, $map); |
40
|
|
|
$nrconcurso = trim($map[1]); |
41
|
|
|
|
42
|
|
|
// Data |
43
|
|
|
$data = trim($map[2]); |
44
|
|
|
|
45
|
|
|
// Dezenas |
46
|
|
|
$nodes = $finder->query("//table[contains(@class, 'simple-table')][contains(@class, 'lotofacil')]/tbody/tr/td"); |
47
|
|
|
$dezenas = parent::loadDezenasLive($nodes); |
|
|
|
|
48
|
|
|
|
49
|
|
|
// Arrecadacao |
50
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p/strong"); |
51
|
|
|
$arrecadacao = trim(preg_replace('/[^0-9,\.]/si', '', $nodes[6]->nodeValue)); |
52
|
|
|
|
53
|
|
|
// Total ganhadores primeiro premio |
54
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p"); |
55
|
|
|
preg_match('/([0-9]*?) aposta/', $nodes[0]->nodeValue, $map); |
56
|
|
|
$totalGanhadoresPrimeiroPremio = isset($map[1]) ? trim(preg_replace('/[^0-9]/si', '', $map[1])) : ""; |
57
|
|
|
$totalGanhadoresPrimeiroPremio = empty($totalGanhadoresPrimeiroPremio) ? 0 : $totalGanhadoresPrimeiroPremio; |
58
|
|
|
|
59
|
|
|
// Total ganhadores segundo premio |
60
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p"); |
61
|
|
|
preg_match('/([0-9]*?) aposta/', $nodes[1]->nodeValue, $map); |
62
|
|
|
$totalGanhadoresSegundoPremio = isset($map[1]) ? trim(preg_replace('/[^0-9]/si', '', $map[1])) : ""; |
63
|
|
|
$totalGanhadoresSegundoPremio = empty($totalGanhadoresSegundoPremio) ? 0 : $totalGanhadoresSegundoPremio; |
64
|
|
|
|
65
|
|
|
// Total ganhadores terceiro premio |
66
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p"); |
67
|
|
|
preg_match('/([0-9]*?) aposta/', $nodes[2]->nodeValue, $map); |
68
|
|
|
$totalGanhadoresTerceiroPremio = isset($map[1]) ? trim(preg_replace('/[^0-9]/si', '', $map[1])) : ""; |
69
|
|
|
$totalGanhadoresTerceiroPremio = empty($totalGanhadoresTerceiroPremio) ? 0 : $totalGanhadoresTerceiroPremio; |
70
|
|
|
|
71
|
|
|
// Valor ganhadores primeiro premio |
72
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p"); |
73
|
|
|
preg_match('/R\$ ([0-9,\.]*)/', $nodes[0]->nodeValue, $map); |
74
|
|
|
$valorGanhadoresPrimeiroPremio = isset($map[1]) ? trim(preg_replace('/[^0-9,\.]/si', '', $map[1])) : ""; |
75
|
|
|
$valorGanhadoresPrimeiroPremio = empty($valorGanhadoresPrimeiroPremio) ? 0 : $valorGanhadoresPrimeiroPremio; |
76
|
|
|
|
77
|
|
|
// Valor ganhadores segundo premio |
78
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p"); |
79
|
|
|
preg_match('/R\$ ([0-9,\.]*)/', $nodes[1]->nodeValue, $map); |
80
|
|
|
$valorGanhadoresSegundoPremio = isset($map[1]) ? trim(preg_replace('/[^0-9,\.]/si', '', $map[1])) : ""; |
81
|
|
|
$valorGanhadoresSegundoPremio = empty($valorGanhadoresSegundoPremio) ? 0 : $valorGanhadoresSegundoPremio; |
82
|
|
|
|
83
|
|
|
// Valor ganhadores terceiro premio |
84
|
|
|
$nodes = $finder->query("//div[contains(@class, 'related-box')][contains(@class, 'gray-text')]/p"); |
85
|
|
|
preg_match('/R\$ ([0-9,\.]*)/', $nodes[2]->nodeValue, $map); |
86
|
|
|
$valorGanhadoresTerceiroPremio = isset($map[1]) ? trim(preg_replace('/[^0-9,\.]/si', '', $map[1])) : ""; |
87
|
|
|
$valorGanhadoresTerceiroPremio = empty($valorGanhadoresTerceiroPremio) ? 0 : $valorGanhadoresTerceiroPremio; |
88
|
|
|
|
89
|
|
|
// Valor Acumulado |
90
|
|
|
$nodes = $finder->query("//div[contains(@class, 'totals')]/p/span[contains(@class, 'value')]"); |
91
|
|
|
$valorAcumulado = isset($nodes[0]->nodeValue) ? trim(preg_replace('/[^0-9,\.]/si', '', $nodes[0]->nodeValue)) : ""; |
92
|
|
|
$valorAcumulado = empty($valorAcumulado) ? 0 : $valorAcumulado; |
93
|
|
|
|
94
|
|
|
// Acumulado |
95
|
|
|
$acumulado = $valorGanhadoresPrimeiroPremio > 0 ? 'NÃO' : 'SIM'; |
96
|
|
|
|
97
|
|
|
// Valor estimado proximo concurso |
98
|
|
|
$nodes = $finder->query("//div[contains(@class, 'next-prize')]/p[contains(@class, 'value')]"); |
99
|
|
|
$valorEstimadoProximoConcurso = isset($nodes[0]->nodeValue) ? trim(preg_replace('/[^0-9,\.]/si', '', $nodes[0]->nodeValue)) : ""; |
100
|
|
|
$valorEstimadoProximoConcurso = empty($valorEstimadoProximoConcurso) ? 0 : $valorEstimadoProximoConcurso; |
101
|
|
|
|
102
|
|
|
$this->data[$nrconcurso] = [ |
103
|
|
|
'data' => $data, |
104
|
|
|
'dezenas' => $dezenas, |
105
|
|
|
'arrecadacao' => $arrecadacao, |
106
|
|
|
'total_ganhadores_primeiro_premio' => $totalGanhadoresPrimeiroPremio, |
107
|
|
|
'total_ganhadores_segundo_premio' => $totalGanhadoresSegundoPremio, |
108
|
|
|
'total_ganhadores_terceiro_premio' => $totalGanhadoresTerceiroPremio, |
109
|
|
|
'valor_ganhadores_primeiro_premio' => $valorGanhadoresPrimeiroPremio, |
110
|
|
|
'valor_ganhadores_segundo_premio' => $valorGanhadoresSegundoPremio, |
111
|
|
|
'valor_ganhadores_terceiro_premio' => $valorGanhadoresTerceiroPremio, |
112
|
|
|
'acumulado' => $acumulado, |
113
|
|
|
'valor_acumulado' => $valorAcumulado, |
114
|
|
|
'valor_estimado_proximo_concurso' => $valorEstimadoProximoConcurso, |
115
|
|
|
]; |
116
|
|
|
|
117
|
|
|
return $this->data; |
118
|
|
|
} |
119
|
|
|
} |
120
|
|
|
|
This check looks for a call to a parent method whose name is different than the method from which it is called.
Consider the following code:
The
getFirstName()
method in theSon
calls the wrong method in the parent class.