<?php
ini_set("memory_limit", "256M");
ini_set("max_execution_time", 3600);

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

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

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

echo "[".date("d/m/Y H:i:s")."] Processo Iniciado.\n";

$hora_atual_servidor = date("H:i");

$query1 = mysqli_query($conexao,"SELECT * FROM autodj_acoes ORDER by codigo ASC LIMIT ".$inicial.", ".$final."");
while ($dados_acao = mysqli_fetch_array($query1)) {

$dados_config = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM configuracoes"));
$dados_stm = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM streamings where codigo = '".$dados_acao["codigo_stm"]."'"));
$dados_playlist = mysqli_fetch_array(mysqli_query($conexao,"SELECT * FROM playlists where codigo = '".$dados_acao["codigo_playlist"]."'"));

$hora_inicio = $dados_acao["hora"].":".$dados_acao["minuto"];
$hora_atual = formatar_data("H:i", $hora_atual_servidor, $dados_stm["timezone"]);
$data_atual = date("Y-m-d");

if($dados_stm["status"] == 1) {

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

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

// Verifica se o streaming esta ligado
$status_streaming = status_streaming($dados_servidor["ip"],$dados_stm["porta"]);

// Verifica se o autodj esta desligado
$status_autodj = status_autodj($dados_servidor["ip"],$dados_stm["porta"],$dados_stm["senha"]);

//////////////////////////////////////////////////////////////
//// Frequência 1 -> Executar em data específica(uma vez) ////
//////////////////////////////////////////////////////////////

if($dados_acao["frequencia"] == 1) {

// Verifica se a data específica é hoje e se esta na hora de iniciar
if($dados_acao["data"] == $data_atual && $hora_inicio == $hora_atual) {

if($dados_acao["acao"] == "ligar") {

if($status_streaming == "ligado") {

if($status_autodj == "desligado") {

echo "[0x01][".$dados_stm["porta"]."][".date_default_timezone_get()."][".$dados_stm["timezone"]."][".$hora_atual_servidor."][".$hora_inicio."] Ligar AutoDJ ".$dados_playlist["nome"]." em ".$dados_acao["data"]." as ".$hora_inicio."\n";

file_get_contents("http://".$dados_config["dominio_padrao"]."/funcoes-ajax/ligar_autodj/".code_decode($dados_stm["porta"],"E")."/".$dados_playlist["codigo"]."/".$dados_stm["autodj_shuffle"]."/".$dados_stm["bitrate_autodj"]."/".$dados_stm["xfade"]."/".$dados_stm["autodj_samplerate"]."/".$dados_stm["autodj_channels"]."/".$dados_stm["encoder"]."/robot");

logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","AutoDJ ligado pelo AGENDAMENTO de ações.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] AutoDJ ligado pelo AGENDAMENTO de ações.");

}
} else {
logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","Não foi possível ligar AutoDJ pelo AGENDAMENTO de ações porque streaming estava desligado.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] Não foi possível ligar AutoDJ pelo AGENDAMENTO de ações porque streaming estava desligado.");
}

} else {

if($status_autodj == "ligado") {

echo "[0x01][".$dados_stm["porta"]."][".date_default_timezone_get()."][".$dados_stm["timezone"]."][".$hora_atual_servidor."][".$hora_inicio."] Desligar AutoDJ em ".$dados_acao["data"]." as ".$hora_inicio."\n";

file_get_contents("http://".$dados_config["dominio_padrao"]."/funcoes-ajax/desligar_autodj/".code_decode($dados_stm["porta"],"E")."/robot");

logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","AutoDJ desligado pelo AGENDAMENTO de ações.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] AutoDJ desligado pelo AGENDAMENTO de ações.");

}
}

// Remove o agendamento
mysqli_query($conexao,"Delete From autodj_acoes where codigo = '".$dados_acao["codigo"]."'");

} // FIM -> Verifica se esta na hora de iniciar / Frequência 1

} elseif($dados_acao["frequencia"] == 2) { // Else -> frequencia 2

//////////////////////////////////////////////
//// Frequência 2 -> Executar Diariamente ////
//////////////////////////////////////////////

// Verifica se esta na hora de iniciar
if($hora_inicio == $hora_atual) { 

if($dados_acao["acao"] == "ligar") {

if($status_streaming == "ligado") {

if($status_autodj == "desligado") {

echo "[0x02][".$dados_stm["porta"]."][".date_default_timezone_get()."][".$dados_stm["timezone"]."][".$hora_atual_servidor."][".$hora_inicio."] Ligar AutoDJ ".$dados_playlist["nome"]." as ".$hora_inicio."\n";

file_get_contents("http://".$dados_config["dominio_padrao"]."/funcoes-ajax/ligar_autodj/".code_decode($dados_stm["porta"],"E")."/".$dados_playlist["codigo"]."/".$dados_stm["autodj_shuffle"]."/".$dados_stm["bitrate_autodj"]."/".$dados_stm["xfade"]."/".$dados_stm["autodj_samplerate"]."/".$dados_stm["autodj_channels"]."/".$dados_stm["encoder"]."/robot");

logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","AutoDJ ligado pelo AGENDAMENTO de ações.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] AutoDJ ligado pelo AGENDAMENTO de ações.");

}
} else {
logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","Não foi possível ligar AutoDJ pelo AGENDAMENTO de ações porque streaming estava desligado.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] Não foi possível ligar AutoDJ pelo AGENDAMENTO de ações porque streaming estava desligado.");
}

} else {

if($status_autodj == "ligado") {

echo "[0x02][".$dados_stm["porta"]."][".date_default_timezone_get()."][".$dados_stm["timezone"]."][".$hora_atual_servidor."][".$hora_inicio."] Desligar AutoDJ as ".$hora_inicio."\n";

file_get_contents("http://".$dados_config["dominio_padrao"]."/funcoes-ajax/desligar_autodj/".code_decode($dados_stm["porta"],"E")."/robot");

logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","AutoDJ desligado pelo AGENDAMENTO de ações.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] AutoDJ desligado pelo AGENDAMENTO de ações.");

}
}

} // FIM -> Verifica se esta na hora de iniciar

} else { // Else -> frequencia 3

///////////////////////////////////////////////
/// Frequência 3 -> Executar Dias da Semana ///
///////////////////////////////////////////////

$dia_semana = date("N");
$array_dias = explode(",",substr($dados_acao["dias"], 0, -1));

// Verifica se esta na hora de iniciar
if(in_array($dia_semana, $array_dias) === true && $hora_inicio == $hora_atual) { 

if($dados_acao["acao"] == "ligar") {

if($status_streaming == "ligado") {

if($status_autodj == "desligado") {

echo "[0x03][".$dados_stm["porta"]."][".date_default_timezone_get()."][".$dados_stm["timezone"]."][".$hora_atual_servidor."][".$hora_inicio."] Ligar Autodj ".$dados_playlist["nome"]." as ".$hora_inicio."\n";

file_get_contents("http://".$dados_config["dominio_padrao"]."/funcoes-ajax/ligar_autodj/".code_decode($dados_stm["porta"],"E")."/".$dados_playlist["codigo"]."/".$dados_stm["autodj_shuffle"]."/".$dados_stm["bitrate_autodj"]."/".$dados_stm["xfade"]."/".$dados_stm["autodj_samplerate"]."/".$dados_stm["autodj_channels"]."/".$dados_stm["encoder"]."/robot");

logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","AutoDJ ligado pelo AGENDAMENTO de ações.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] AutoDJ ligado pelo AGENDAMENTO de ações.");

}
} else {
logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","Não foi possível ligar AutoDJ pelo AGENDAMENTO de ações porque streaming estava desligado.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] Não foi possível ligar AutoDJ pelo AGENDAMENTO de ações porque streaming estava desligado.");
}

} else {

if($status_autodj == "ligado") {

echo "[0x03][".$dados_stm["porta"]."][".date_default_timezone_get()."][".$dados_stm["timezone"]."][".$hora_atual_servidor."][".$hora_inicio."] Desligar Autodj as ".$hora_inicio."\n";

file_get_contents("http://".$dados_config["dominio_padrao"]."/funcoes-ajax/desligar_autodj/".code_decode($dados_stm["porta"],"E")."/robot");

logar_acao_streaming($conexao,"".$dados_stm["codigo"]."","AutoDJ desligado pelo AGENDAMENTO de ações.");
logar_acao($conexao,"Ações AutoDJ","[".$dados_stm["porta"]."] AutoDJ desligado pelo AGENDAMENTO de ações.");
}
}

} // FIM -> Verifica se o dia da semana é o atual e se esta na hora de iniciar

} // FIM -> frequencia

} // FIM -> Verifica se o servidor esta ON/OFF

} // FIM -> Verifica se o streaming esta ON/OFF

} // FIM -> while

echo "\n[".date("d/m/Y H:i:s")."] Processo Concluído.\n\n";

?>