Skip to content
Snippets Groups Projects

Dev#163369 connecteur cvs

Merged Henri-Damien LAURENT requested to merge dev#163369_Connecteur_Cvs into master
Compare and
65 files
+ 3616
294
Preferences
Compare changes
Files
65
@@ -20,7 +20,7 @@
*/
class Class_DigitalResource_Harvester_OAI extends Class_DigitalResource_OAI_AbstractInitJob {
class Class_DigitalResource_Harvester_XML extends Class_DigitalResource_XML_AbstractInitJob {
public function __construct() {
parent::__construct();
@@ -47,9 +47,16 @@ class Class_DigitalResource_Harvester_OAI extends Class_DigitalResource_OAI_Abst
protected function _cleanXML() {
$this->_log($this->_('Suppression des fichiers XML existants dans %s', $this->_oai_xml_directory_path));
$this->_log($this->_('Suppression des fichiers XML existants dans %s', $this->_xml_directory_path));
Class_FileManager::deleteFiles($this->_oai_xml_directory_path);
if ($this->getFileSystem()->fileExists($this->_xml_done_directory_path)) {
$this->getFileSystem()->deleteFilesAt($this->_xml_done_directory_path);
$this->getFileSystem()->rmdir($this->_xml_done_directory_path);
}
if ($this->getFileSystem()->fileExists($this->_xml_directory_path)){
$this->getFileSystem()->deleteFilesAt($this->_xml_directory_path);
$this->getFileSystem()->rmdir($this->_xml_directory_path);
}
return $this;
}
@@ -57,14 +64,16 @@ class Class_DigitalResource_Harvester_OAI extends Class_DigitalResource_OAI_Abst
protected function _work() {
$this->_log($this->_('Début du moissonnage.'));
$this->_oai_ws->setLogger($this->getLogger());
$this->_ws->setLogger($this->getLogger());
Class_FileManager::create($this->_oai_xml_directory_name,
Class_FileManager::find(USERFILES));
if (!$this->getFileSystem()->fileExists($this->_xml_directory_path))
$this->getFileSystem()->mkdir($this->_xml_directory_path);
$page = 1;
do {
$this->_writeXML($page++);
} while( $this->_ws->hasRecordsToHarvest() );
$page = 0;
while($this->_oai_ws->hasRecordsToHarvest())
$this->_writeXML($page ++);
Class_WebService_HarvestLog::newInstance(['end_date' => $this->getCurrentDate(),
'type_doc' => $this->_doc_type])
@@ -77,17 +86,17 @@ class Class_DigitalResource_Harvester_OAI extends Class_DigitalResource_OAI_Abst
protected function _writeXML($page) {
if ( ! $xml = $this->_getXML($page))
return;
return '';
$this->_oai_ws->parseResumptionToken($xml);
Class_FileManager::createFile($this->_oai_xml_directory_path . '/' . $page . '.xml', $xml);
$this->_ws->parseResumptionToken($xml);
$this->getFileSystem()->filePutContents($this->_xml_directory_path . '/' . $page . '.xml', $xml);
}
protected function _getXML($page) {
return $page == 1
? $this->_oai_ws->getXML()
: $this->_oai_ws->getNextXML();
? $this->_ws->getXML()
: $this->_ws->getNextXML();
}
@@ -97,7 +106,7 @@ class Class_DigitalResource_Harvester_OAI extends Class_DigitalResource_OAI_Abst
public function isRunning() {
return ( ! $this->isDone())
&& Class_FileManager::hasFilesIn($this->_oai_xml_directory_path);
return (( ! $this->isDone())
&& (count($this->getFileSystem()->fileNamesAt($this->_xml_directory_path)) > 0));
}
}