<?php
ini_set("memory_limit", "1024M");
ini_set("max_execution_time", 3600);
ini_set("date.timezone","America/Sao_Paulo");
header("Content-Type: text/html;  charset=ISO-8859-1",true);

require_once("/home/painel/public_html/admin/inc/conecta.php");
require_once("/home/painel/public_html/admin/inc/funcoes.php");

$inicio_execucao = tempo_execucao();

parse_str($argv[1],$opcoes);

list($inicial,$final) = explode("-",$opcoes["registros"]);

$sql = mysqli_query($conexao,"SELECT * FROM streamings where status = '1' AND tipo_servidor = 'shoutcast' ORDER by porta ASC LIMIT ".$inicial.", ".$final."");
while ($dados_stm = mysqli_fetch_array($sql)) {

$dados_servidor = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM servidores where codigo = '".$dados_stm["codigo_servidor"]."'"));

if($dados_servidor["status"] == "on") {

$total_pontos = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM multipoint where codigo_stm = '".$dados_stm["codigo"]."'"));

if($total_pontos > 0) {

$sql_pontos = mysqli_query($conexao,"SELECT * FROM multipoint where codigo_stm = '".$dados_stm["codigo"]."' ORDER by id ASC");
while ($dados_ponto = mysqli_fetch_array($sql_pontos)) {

$xml_stats = @simplexml_load_string(utf8_encode(estatistica_streaming_shoutcast_robot($dados_servidor["ip"],$dados_stm["porta"],$dados_stm["senha_admin"],$dados_ponto["id"])));

$total_registros = @count($xml_stats->LISTENERS->LISTENER);

for($i=0;$i<=$total_registros;$i++){

$tempo_conectado = $xml_stats->LISTENERS->LISTENER[$i]->CONNECTTIME;
$player = formatar_useragent($xml_stats->LISTENERS->LISTENER[$i]->USERAGENT);

if(preg_match('/Proxy/i',$xml_stats->LISTENERS->LISTENER[$i]->USERAGENT)) {

list($player_proxy, $ip_ouvinte) = explode("/",$xml_stats->LISTENERS->LISTENER[$i]->USERAGENT);

$ip = $ip_ouvinte;

} else {
$ip = $xml_stats->LISTENERS->LISTENER[$i]->HOSTNAME;
}

if($ip && $tempo_conectado) {

$verifica_ouvinte = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM estatisticas where codigo_stm = '".$dados_stm["codigo"]."' AND ip = '".$ip."' AND data = '".date("Y-m-d")."'"));

if($verifica_ouvinte == 0) {

$dados_api_geoip = api_geoip($ip);

$ip_pais_codigo = $dados_api_geoip["pais_sigla"];
$ip_pais_nome = $dados_api_geoip["pais_nome"];
$ip_estado = utf8_decode($dados_api_geoip["estado"]);
$ip_cidade = utf8_decode($dados_api_geoip["cidade"]);

mysqli_query($conexao,"INSERT INTO estatisticas (codigo_stm,data,hora,ip,pais,estado,cidade,tempo_conectado,player) VALUES ('".$dados_stm["codigo"]."',NOW(),NOW(),'".$ip."','".$ip_pais_nome."','".addslashes($ip_estado)."','".addslashes($ip_cidade)."','".$tempo_conectado."','".$player."')") or die("Erro MySQL: ".mysqli_error($conexao));

echo "[".$dados_stm["porta"]."][".$dados_ponto["id"]."][Shoutcast] Ouvinte: ".$ip." adicionado.\n";

} else {

mysqli_query($conexao,"Update estatisticas set tempo_conectado = '".$tempo_conectado."', player = '".$player."' where codigo_stm = '".$dados_stm["codigo"]."' AND ip = '".$ip."' AND data = '".date("Y-m-d")."'") or die("Erro MySQL: ".mysqli_error($conexao));

echo "[".$dados_stm["porta"]."][".$dados_ponto["id"]."][Shoutcast] Ouvinte: ".$ip." atualizado.\n";

} // if $verifica_ouvinte

} // if $ip && $tempo_conectado

} // for

} // while pontos

} else { // ponto

$xml_stats = @simplexml_load_string(utf8_encode(estatistica_streaming_shoutcast_robot($dados_servidor["ip"],$dados_stm["porta"],$dados_stm["senha_admin"],1)));

$total_registros = @count($xml_stats->LISTENERS->LISTENER);

for($i=0;$i<=$total_registros;$i++){

$tempo_conectado = $xml_stats->LISTENERS->LISTENER[$i]->CONNECTTIME;
$player = formatar_useragent($xml_stats->LISTENERS->LISTENER[$i]->USERAGENT);

if(preg_match('/Proxy/i',$xml_stats->LISTENERS->LISTENER[$i]->USERAGENT)) {

list($player_proxy, $ip_ouvinte) = explode("/",$xml_stats->LISTENERS->LISTENER[$i]->USERAGENT);

$ip = $ip_ouvinte;

} else {
$ip = $xml_stats->LISTENERS->LISTENER[$i]->HOSTNAME;
}

if($ip && $tempo_conectado) {

$verifica_ouvinte = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM estatisticas where codigo_stm = '".$dados_stm["codigo"]."' AND ip = '".$ip."' AND data = '".date("Y-m-d")."'"));

if($verifica_ouvinte == 0) {

$dados_api_geoip = api_geoip($ip);

$ip_pais_codigo = $dados_api_geoip["pais_sigla"];
$ip_pais_nome = $dados_api_geoip["pais_nome"];
$ip_estado = utf8_decode($dados_api_geoip["estado"]);
$ip_cidade = utf8_decode($dados_api_geoip["cidade"]);

mysqli_query($conexao,"INSERT INTO estatisticas (codigo_stm,data,hora,ip,pais,estado,cidade,tempo_conectado,player) VALUES ('".$dados_stm["codigo"]."',NOW(),NOW(),'".$ip."','".$ip_pais_nome."','".addslashes($ip_estado)."','".addslashes($ip_cidade)."','".$tempo_conectado."','".$player."')") or die("Erro MySQL: ".mysqli_error($conexao));

echo "[".$dados_stm["porta"]."][Shoutcast] Ouvinte: ".$ip." adicionado.\n";

} else {

mysqli_query($conexao,"Update estatisticas set tempo_conectado = '".$tempo_conectado."', player = '".$player."' where codigo_stm = '".$dados_stm["codigo"]."' AND ip = '".$ip."' AND data = '".date("Y-m-d")."'") or die("Erro MySQL: ".mysqli_error($conexao));

echo "[".$dados_stm["porta"]."][Shoutcast] Ouvinte: ".$ip." atualizado.\n";

} // if $verifica_ouvinte

} // if $ip && $tempo_conectado

} // for

} // ponto

} // status servidor

} // while streamings

$fim_execucao = tempo_execucao();

$tempo_execucao = number_format(($fim_execucao-$inicio_execucao),2);

echo "\n\n--------------------------------------------------------------------\n\n";
echo "Tempo: ".$tempo_execucao." segundo(s);\n\n";
?>
