<?php
ini_set("memory_limit", "128M");
ini_set("max_execution_time", 600);

// Inclusão de classes
require_once("inc/protecao-revenda.php");
require_once("inc/classe.ssh.php");

// Proteção contra acesso direto
if(!preg_match("/".str_replace("http://","",str_replace("www.","",$_SERVER['HTTP_HOST']))."/i",$_SERVER['HTTP_REFERER'])) {
$_SESSION["status_acao"] = '<div class="alert alert-danger text-center" role="alert">Atenção! Acesso não autorizado, favor entrar em contato com nosso atendimento para maiores informações!</div>';
header("Location: /admin/revenda");
}

// Proteção contra usuario não logados
if(empty($_SESSION["code_user_logged"])) {
$_SESSION["status_acao"] = '<div class="alert alert-danger text-center" role="alert">Atenção! Acesso não autorizado, favor entrar em contato com nosso atendimento para maiores informações!</div>';
header("Location: /admin/revenda");
}

if(empty($_POST["porta"]) or empty($_POST["ouvintes"]) or empty($_POST["bitrate"]) or empty($_POST["senha"])) {
$_SESSION["status_acao"] = '<div class="alert alert-danger text-center" role="alert">'.lang_info_campos_vazios.'</div>';
header("Location: ".$_SERVER['HTTP_REFERER']."");
exit;
}

$dados_stm_atual = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM streamings where porta = '".$_POST["porta"]."'"));

// Verifica os limites da revenda
$dados_revenda = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM revendas WHERE codigo = '".$_SESSION["code_user_logged"]."'"));
$dados_subrevenda_atual = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM revendas WHERE (codigo_revenda = '".$dados_revenda["codigo"]."' AND codigo = '".code_decode($_POST["codigo_subrevenda"],"D")."') AND tipo = '2'"));

$total_subrevendas = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM revendas WHERE codigo_revenda = '".$dados_revenda["codigo"]."' AND tipo = '2'"));
$total_streamings_subrevenda = mysqli_fetch_array(mysqli_query($conexao,"SELECT SUM(streamings) as total FROM revendas WHERE codigo_revenda = '".$dados_revenda["codigo"]."' AND tipo = '2'"));
$total_streamings_revenda = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM streamings WHERE codigo_cliente = '".$dados_revenda["codigo"]."'"));
$ouvintes_subrevenda_revenda = mysqli_fetch_array(mysqli_query($conexao,"SELECT SUM(ouvintes) as total FROM revendas WHERE codigo_revenda = '".$dados_revenda["codigo"]."' AND tipo = '2'"));
$ouvintes_stm_revenda = mysqli_fetch_array(mysqli_query($conexao,"SELECT SUM(ouvintes) as total FROM streamings WHERE codigo_cliente = '".$dados_revenda["codigo"]."'"));
$espaco_subrevenda_revenda = mysqli_fetch_array(mysqli_query($conexao,"SELECT SUM(espaco) as total FROM revendas WHERE codigo_revenda = '".$dados_revenda["codigo"]."' AND tipo = '2'"));
$espaco_revenda = mysqli_fetch_array(mysqli_query($conexao,"SELECT SUM(espaco) as total FROM streamings WHERE codigo_cliente = '".$dados_revenda["codigo"]."'"));
$total_sites_adm_instalados = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM streamings WHERE codigo_revenda = '".$dados_revenda["codigo"]."' AND site_adm = 'sim'"));

// Verifica se excedeu o limite de ouvintes do cliente
$total_ouvintes_revenda = $ouvintes_revenda["total"]+$ouvintes_subrevenda_revenda["total"];
$total_ouvintes_revenda = $total_ouvintes_revenda+$_POST["ouvintes"];
$total_ouvintes_revenda = $total_ouvintes_revenda-$dados_stm_atual["ouvintes"];

if($total_ouvintes_revenda > $dados_revenda["ouvintes"] && $dados_revenda["ouvintes"] != 999999) {
$_SESSION["status_acao"] = '<div class="alert alert-warning text-center" role="alert">'.lang_info_pagina_cadastrar_streaming_resultado_alerta_limite_ouvintes.'</div>';
header("Location: ".$_SERVER['HTTP_REFERER']."");
exit;
}

// Verifica se excedeu o limite de ouvintes do cliente
$total_espaco_revenda = $espaco_revenda["total"]+$espaco_subrevenda_revenda["total"];
$total_espaco_revenda = $total_espaco_revenda+$_POST["espaco"];
$total_espaco_revenda = $total_espaco_revenda-$dados_stm_atual["espaco"];

if($total_espaco_revenda > $dados_revenda["espaco"]) {
$_SESSION["status_acao"] = '<div class="alert alert-warning text-center" role="alert">'.lang_info_pagina_cadastrar_streaming_resultado_alerta_limite_espaco_autodj.'</div>';
header("Location: ".$_SERVER['HTTP_REFERER']."");
exit;
}

// Verifica se excedeu o limite de bitrate do cliente
if($_POST["bitrate"] > $dados_revenda["bitrate"]) {
$_SESSION["status_acao"] = '<div class="alert alert-warning text-center" role="alert">'.lang_info_pagina_cadastrar_streaming_resultado_alerta_limite_bitrate.'</div>';
header("Location: ".$_SERVER['HTTP_REFERER']."");
exit;
}

// Verifica se excedeu o limite de sites adm do cliente
if($_POST["site_adm"] == "sim" && $total_sites_adm_instalados > $dados_revenda["site_adm"]) {
$_SESSION["status_acao"] = '<div class="alert alert-warning text-center" role="alert">Limite de site adm excedido em seu plano.</div>';
header("Location: ".$_SERVER['HTTP_REFERER']."");
exit;
}

if($dados_config["codigo_servidor_aacplus_atual"] && $_POST["encoder_aacplus"] == 'sim') {

$encoder = "aacp";
$aacplus = "sim";
$servidor_aacplus = ($dados_stm_atual["codigo_servidor_aacplus"] == '0') ? $dados_config["codigo_servidor_aacplus_atual"] : $dados_stm_atual["codigo_servidor_aacplus"];

} else {

$encoder = "mp3";
$aacplus = "sim";
$servidor_aacplus = 0;

}

$permitir_alterar_senha = ($_POST["permitir_alterar_senha"] == "sim") ? "sim" : "nao";
$exibir_app_android = ($_POST["exibir_app_android"] == "sim") ? "sim" : "nao";
$exibir_mini_site = ($_POST["exibir_mini_site"] == "sim") ? "sim" : "nao";
$encoder_mp3 = ($_POST["encoder_mp3"] == "sim") ? "sim" : "nao";
$encoder_aacplus = ($_POST["encoder_aacplus"] == "sim") ? "sim" : "nao";
$programas = ($_POST["programas"]) ? "sim" : "nao";
$programetes = ($_POST["programetes"]) ? "sim" : "nao";
$download_programetes_programas = ($_POST["download_programetes_programas"]) ? "sim" : "nao";
$camera_studio = ($_POST["camera_studio"]) ? "sim" : "nao";
$site_adm = ($_POST["site_adm"]) ? "sim" : "nao";

if($_POST["senha"] == $_POST["senha_admin"]) {
$_SESSION["status_acao"] = '<div class="alert alert-warning text-center" role="alert">'.lang_info_config_stm_senha_admin_info_ajuda.'</div>';
header("Location: ".$_SERVER['HTTP_REFERER']."");
}

mysqli_query($conexao,"Update streamings set codigo_servidor_aacplus = '".$servidor_aacplus."', ouvintes = '".$_POST["ouvintes"]."', bitrate = '".$_POST["bitrate"]."', encoder_mp3 = '".$encoder_mp3."', encoder_aacplus = '".$encoder_aacplus."', encoder = '".$encoder."', espaco = '".$_POST["espaco"]."', senha = '".$_POST["senha"]."', senha_admin = '".$_POST["senha_admin"]."', encoder = '".$encoder."', identificacao = '".$_POST["identificacao"]."', aacplus = 'sim', idioma_painel = '".$_POST["idioma_painel"]."', email = '".$_POST["email"]."', exibir_app_android = '".$exibir_app_android."', exibir_mini_site = '".$exibir_mini_site."', permitir_alterar_senha = '".$permitir_alterar_senha."', autodj = '".$_POST["autodj"]."', programetes = '".$programetes."', programas = '".$programas."', download_programetes_programas = '".$download_programetes_programas."', camera_studio = '".$camera_studio."', site_adm = '".$site_adm."', tipo_servidor = '".$_POST["tipo_servidor"]."' where porta = '".$_POST["porta"]."'") or die(mysqli_error($conexao));

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

if($dados_stm_atual["tipo_servidor"] != $_POST["tipo_servidor"]) {

// Conexão SSH
$ssh = new SSH();
$ssh->conectar($dados_servidor["ip"],$dados_servidor["porta_ssh"]);
$ssh->autenticar("root",code_decode($dados_servidor["senha"],"D"));

$ssh->executar("echo OK;/bin/ps aux | /bin/grep '\<autodj-".$dados_stm["porta"].".conf\>' | /bin/grep liquidsoap | /bin/awk '{ print $2;}' | /usr/bin/xargs /bin/kill -TERM");
$ssh->executar("echo OK;/bin/ps aux | /bin/grep '\<".$dados_stm["porta"].".conf\>' | /bin/grep 'sc_serv\|icecast' | /bin/awk '{ print $2;}' | /usr/bin/xargs /bin/kill -TERM");
}



// Loga a ação executada
mysqli_query($conexao,"INSERT INTO logs (acao,data,ip,log) VALUES ('alterar_configuracoes_streaming',NOW(),'".$_SERVER['REMOTE_ADDR']."','Alteração nas configurações do streaming ".$dados_stm["porta"]." pela revenda.')");

// Cria o sessão do status das ações executadas e redireciona.
$_SESSION["status_acao"] = '<div class="alert alert-success text-center" role="alert">'.sprintf(lang_info_pagina_configurar_streaming_resultado_ok,$_POST["porta"]).'</div>';
$_SESSION["status_acao"] .= '<div class="alert alert-warning text-center" role="alert">'.lang_info_pagina_configurar_streaming_resultado_alerta.'</div>';
header("Location: /admin/revenda-streamings/resultado/porta/".$_POST["porta"]."");
exit;
?>
