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

require_once("inc/protecao-admin.php");

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

// Verifica se a login já esta em uso
$total_streamings = mysqli_num_rows(mysqli_query($conexao,"SELECT * FROM streamings WHERE login = '".$_POST["login"]."'"));

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

$lives = ($_POST["lives"]) ? "sim" : "nao";
$autenticar_live = ($_POST["autenticar_live"]) ? "sim" : "nao";
$app_android = "sim";
$transcoder = ($_POST["transcoder"]) ? "sim" : "nao";

$senha_admin = gera_id(12);

mysqli_query($conexao,"INSERT INTO streamings (codigo_cliente,codigo_servidor,login,senha,senha_transmissao,espectadores,bitrate,espaco,ftp_dir,identificacao,data_cadastro,idioma_painel,email,aplicacao,lives,autenticar_live,
transcoder) VALUES ('1','".$_POST["servidor"]."','".strtolower($_POST["login"])."','".$_POST["senha"]."','".$_POST["senha"]."','".$_POST["espectadores"]."','".$_POST["bitrate"]."','".$_POST["espaco"]."','/home/streaming/".strtolower($_POST["login"])."','".$_POST["identificacao"]."',NOW(),'".$_POST["idioma_painel"]."','".$_POST["email"]."','".$_POST["aplicacao"]."','".$lives."','".$autenticar_live."','".$transcoder."')") or die("Erro ao processar query.<br>Mensagem do servidor: ".mysqli_error($conexao));
$codigo_streaming = mysqli_insert_id($conexao);

// Cria o streaming no servidor Wowza
$dados_servidor = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM servidores where codigo = '".$_POST["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"));

if($_POST["aplicacao"] != 'live') {

// Cria a home do streaming
$ssh->executar("/bin/mkdir -v /home/streaming/".strtolower($_POST["login"]).";/bin/chown streaming.streaming /home/streaming/".strtolower($_POST["login"])."");

}

if($_POST["aplicacao"] == 'tvstation') {

// Copia a playlist demo para home do streaming
$ssh->executar("/bin/cp -vp /home/streaming/demo.mp4 /home/streaming/".strtolower($_POST["login"])."/;/bin/cp -vp /home/streaming/demo.smil /home/streaming/".strtolower($_POST["login"])."/playlists_agendamentos.smil");
// Configura a playlist demo
$ssh->executar("/usr/bin/replace LOGIN ".strtolower($_POST["login"])." -- /home/streaming/".strtolower($_POST["login"])."/playlists_agendamentos.smil;echo OK");
}

$aplicacao_xml = $_POST["aplicacao"];

if($autenticar_live == "nao") {

if($_POST["aplicacao"] == "tvstation" || $_POST["aplicacao"] == "live") {
$aplicacao_xml = $_POST["aplicacao"].'-sem-login';
}

}

// Ativa o streaming no Wowza
$ssh->executar("/usr/local/WowzaMediaServer/ativar ".strtolower($_POST["login"])." '".$_POST["senha"]."' ".$_POST["bitrate"]." ".$_POST["espectadores"]." ".$aplicacao_xml."");

if($_POST["aplicacao"] == 'webrtc') {

if($dados_servidor["nome_principal"]) {
$servidor = $dados_servidor["nome_principal"].".".$dados_config["dominio_padrao"];
} else {
$servidor = $dados_servidor["nome"].".".$dados_config["dominio_padrao"];
}

$ssh->executar("sed -i 's/HOSTNAME/".$servidor."/g' /usr/local/WowzaStreamingEngine/conf/".strtolower($_POST["login"])."/Application.xml;echo OK");
	
$ssh->executar("/usr/bin/java -cp /usr/local/WowzaMediaServer JMXCommandLine -jmx service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi -user admin -pass admin shutdownAppInstance ".$_POST["login"]."");
	
$ssh->executar("/usr/bin/java -cp /usr/local/WowzaMediaServer JMXCommandLine -jmx service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi -user admin -pass admin startAppInstance ".$_POST["login"]."");
}

// Cria o sessão do status das ações executadas e redireciona.
$_SESSION["status_acao"] = "<div class='alert alert-success text-center' role='alert'>".lang_info_pagina_cadastrar_streaming_resultado_ok."</div>";

header("Location: /admin/admin-streamings/resultado/".$_POST["login"]."");
?>