<?php

function listarCursos () {
  $dir    = 'cursos';
  $files1 = scandir($dir);

  $cursos = array();

  for ($i = 0; $i < count($files1); $i++) {
  	if ($files1[$i] == "." || $files1[$i] == "..") continue;
  	array_push($cursos, $files1[$i]);
  }
  return $cursos;
}

function qualVersaoDoIVProg ($arquivo) {
	$handle = fopen("temp/" . $arquivo, "r");
	$menu = false;

	if ($handle) {
	    while (($line = fgets($handle)) !== false) {
	        if ( strpos($line, "fluid") !== false) {
  				$menu = true;
  				break;
  			}
	    }
	    fclose($handle);
	} else {
	    echo "ERRO AO LER O ARQUIVO";
	}

	if ($menu) {
		return "menu";
	} else {
		return "contexto";
	}
}

function pegarLogsDoAluno ($curso, $aluno, $exercicio) {

	$zip = new ZipArchive;
	$dir    = 'cursos/' . $curso;
  	$files1 = scandir($dir);
  	$nomes  = array();

  	if (count($files1) < 3) {
  		return null;
  	}

  	for ($i = 0; $i < count($files1); $i++) {
  		if ($files1[$i] == "." || $files1[$i] == "..") continue;
  		if ( strpos($files1[$i], $aluno) !== false ) {
  			array_push($nomes, $files1[$i]);
  		}
  	}

  	for ($i = 0; $i < count($nomes); $i++) {
  		if ($nomes[$i] == "." || $nomes[$i] == "..") continue;
  		$res = $zip->open($dir . '/' . $nomes[$i]);
		if ($res === TRUE) {
		  $zip->extractTo('temp/');
		  $zip->close();
		}
  	}

  	$dir    = 'temp';
  	$files1 = scandir($dir);
  	
  	if (count($files1) < 3) {
  		return null;
  	}

  	$arquivo = "";
	
  	for ($i = 0; $i < count($files1); $i++) {
  		if ($files1[$i] == "." || $files1[$i] == "..") continue;

		$exp = explode("-", $files1[4]);
		$fi = "";
		for ($j = 0; $j < count($exp) - 1; $j++) {
			$fi .= $exp[$j];
			if ($j < (count($exp) - 3)) {
				$fi .= "-";
			}
		}

  		if (strpos($fi, $exercicio) !== false) {
  			$arquivo = $files1[$i];
  		} else {
  			unlink($dir . '/' . $files1[$i]);
  		}
  	}

  	return $arquivo;
}

function pegarLogsDoAlunoComoString ($arquivo) {
	
	$handle = fopen("temp/" . $arquivo, "r");
	$inicio = false;
	$string_final = "";
	if ($handle) {		
		
	    while (($line = fgets($handle)) !== false) {
			
	        if ( strpos($line, "::logs::") !== false) {
  				$inicio = true;
				print $line;
				break;
  			}
  			if ($inicio) {
  				$ex = explode(",", $line);
  				if (count($ex) > 3) {
  					$string_final .= $ex[1] . "," . $ex[2] . ",1,0\\n";
  				}
  			}
	    }
	    fclose($handle);
	} else {
	    echo "ERRO AO LER O ARQUIVO";
	}
	print 'a'. $string_final;
	
	exit;

	return $string_final;
}

function listarAlunos ($curso) {

	$dir    = 'cursos/' . $curso;
  	$files1 = scandir($dir);
  	$nomes  = array();
  	
  	if (count($files1) < 3) {
  		return null;
  	}

  	for ($i = 0; $i < count($files1); $i++) {
  		if ($files1[$i] == "." || $files1[$i] == "..") continue;
  		$ex = explode("_iassign_", $files1[$i])[1];
      $ex = explode("-", $ex)[0];
  		
  		$ja_existe = false;
  		for ($j = 0; $j < count($nomes); $j ++) {
  			if ($nomes[$j] == $ex) {
  				$ja_existe = true;
  				break;
  			}
  		}

  		if (!$ja_existe) {
  			array_push($nomes, $ex);
  		}
  	}

  	return $nomes;
}

function listarExercicios ($curso) {
	$zip = new ZipArchive;

	$dir    = 'cursos/' . $curso;
  	$files1 = scandir($dir);
  	$exercicios  = array();
  	
  	if (count($files1) < 3) {
  		return null;
  	}

  	for ($i = 0; $i < count($files1); $i++) {
  		if ($files1[$i] == "." || $files1[$i] == "..") continue;
  		$res = $zip->open($dir . '/' . $files1[$i]);
		if ($res === TRUE) {
		  $zip->extractTo('temp/');
		  $zip->close();
		}
  	}

  	$dir    = 'temp';
  	$files1 = scandir($dir);
  	
  	if (count($files1) < 3) {
  		return null;
  	}

  	for ($i = 0; $i < count($files1); $i++) {
  		if ($files1[$i] == "." || $files1[$i] == "..") continue;

	  	$exp = explode("-", $files1[$i]);
	  	$fi = "";
	  	for ($j = 0; $j < count($exp) - 1; $j++) {
	  		$fi .= $exp[$j];
	  		if ($j < (count($exp) - 3)) {
	  			$fi .= "-";
	  		}
	  	}

	  	$ja_existe = false;
	  	for ($j = 0; $j < count($exercicios); $j++) {
	  		if ($exercicios[$j] == $fi) {
	  			$ja_existe = true;
	  			break;
	  		}
	  	}

	  	if (!$ja_existe) {
	  		array_push($exercicios, $fi);
	  	}

	  	unlink($dir . '/' . $files1[$i]);
  	}
  	return $exercicios;
}

function instrucoes () {

	return "<p class='text-reduced'>
            <b>Instruções para inserir novos logs para análise:</b> 
            <ol>
				<li>Em primeiro lugar, crie uma nova pasta no diretório cursos/, com o nome do curso que você pretende analisar.</li>
				<li>Agora, navegue pelo iTarefa até a área do gerenciador de todas as submissões (bloco itarefa -> relatório -> gerenciar todas as submissões).</li>
				<li>No gerenciador de submissões, utilize o exportador geral, que está disponível no botão de 'download' mais acima na tela.</li>
                <li>Por fim, insira na pasta criada no primeiro passo o arquivo .zip que fori gerado pelo iTarefa com os dados dos alunos.</li>
			</ol>
            <p><b>Atenção!</b> Não altere nem o nome do arquivo gerado pelo iTarefa, pois o sistema segue o mesmo padrão.</p>
			<p style='color: red;'>Essa versão é incompatível com arquivos gerados pelo iTarefa antes de 2020.</p>
          </p>";
}

?>