<?php

require ("../lib/genopar.lib.php");
require ("../lib/config.php");

if(!doAuth(LVLADM)) {
	$genopar->fechaPagina(); exit;
}

$genopar= new Genopar(__FILE__);

$genopar->abrePagina("Update Reference Organism's List");

system('perl retrieveList.pl');

$orgsList = getOrgs($genopar);
$folderList = getFolderList($genopar);

$genopar->abreBanco();

foreach ($orgsList as $id => $orgName){
	$orgName = stripslashes($orgName);
		
	$pattern = '/[a-z]+\. /';
	$replacement = '';

	$orgFolder = preg_replace($pattern, $replacement, $orgName);

	$pattern = '/[^a-z0-9]/i';
	$replacement = '_';

	$orgFolder = preg_replace($pattern, $replacement, $orgFolder);
		
	foreach($folderList as $NCBIFolder)
		if (preg_match("/$orgFolder/", $NCBIFolder))
			insertOrgInfo($genopar, $id, $NCBIFolder);
}

$genopar->fechaBanco();

$genopar->fechaPagina();

function getOrgs($genopar){
	$genopar->abreBanco();
	$genopar->queryBanco('SELECT * FROM taxonomy');
	
	$org = array();
	while($lin = $genopar->getArray())
		$org[$lin['id']] = $lin['organism'];
	
	$genopar->fechaBanco();
	
	return $org;
	
}

function getFolderList($genopar){
	$ncbi = "ftp.ncbi.nih.gov";
	$USER = "anonymous";
	$PASS = "nada@lugar.algum";

	$con = ftp_connect($ncbi) or $genopar->error("NCBI indisponível.");
	ftp_login($con, $USER, $PASS);
	ftp_pasv($con, TRUE);
	
	ftp_chdir($con, "genomes/Bacteria/") or $genopar->error("Nao foi possivel mudar de diretorio.");
	
	$folderList = ftp_nlist($con, ".");
	
	ftp_close($con);
	
	return $folderList;
}

function insertOrgInfo($genopar, $id, $folder){
	$sql = "
		UPDATE taxonomy
		SET
			ftpFolder = '$folder'
		WHERE
			id = $id
	";
	$genopar->queryBanco($sql);
}

?>
