-
Notifications
You must be signed in to change notification settings - Fork 0
/
total-streams.php
94 lines (69 loc) · 2.24 KB
/
total-streams.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
<?
$Servidor='http://127.0.0.1:5080';
$Email='[email protected]';
$Senha='Su@S3nh@d3@dm1n';
$API='applications-info';
$ch=curl_init();
curl_setopt($ch,CURLOPT_TIMEOUT,15);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($ch,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
function NovoSession() {
global $ch,$Session,$Servidor,$Email,$Senha;
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch,CURLOPT_URL,$Servidor.'/rest/v2/users/authenticate');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,'{"email":"'.$Email.'","password":"'.md5($Senha).'"}');
$server_response=@curl_exec($ch); $eSession='';
foreach (explode("\n",$server_response) as $d) if (preg_match('/JSESSIONID=(.*?);/',$d,$match)==1) $eSession=$match[1];
if ($eSession!='') {
$Session=$eSession;
file_put_contents('session.txt',$Session);
}
}
$Session=@file_get_contents('session.txt');
//Não existe sessão, gera
if ($Session=='') NovoSession();
//Não conseguiu gerar, avisa e sai
if ($Session=='') {
echo 'ERR';
exit(1);
}
//Tenta duas vezes
for ($a=1;$a<3;$a++) {
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_POST,0);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Cookie: JSESSIONID='.$Session));
curl_setopt($ch,CURLOPT_URL,$Servidor.'/rest/v2/'.$API);
$server_response=@curl_exec($ch);
//Se voltou erro, provavelmente a sessão expirou
if (strpos($server_response,'HTTP Status 403')>-1) {
NovoSession();
} else {
break;
}
}
//Não conseguiu obter os dados
if ($server_response=='' or strpos($server_response,'HTTP Status 403')>-1) {
echo 'ERR';
exit(1);
}
////////////////
// Específico //
////////////////
//Daqui pra baixo é específico para /rest/v2/applications-info
$SomaStreams=0;
//O applications-info vem em Json
$server_response=json_decode($server_response,true);
//Erro ao ler o json
if ($server_response=='') {
echo 'ERR';
exit(1);
}
//Se chegou até aqui, recebeu o json corretamente, então soma cada app
foreach ($server_response as $a) $SomaStreams+=$a['liveStreamCount'];
curl_close($ch);
echo $SomaStreams;
exit(0);
?>