19 require_once dirname(dirname(dirname(dirname(__FILE__)))) .
'/tools/bootstrap.inc.php';
48 parent::__construct(
$argv);
50 if (!
sizeof($this->argv)) {
56 import(
'plugins.generic.markup.MarkupPlugin');
58 $this->_markupPlugin->register(
'generic', dirname(__FILE__));
61 $this->_markupPlugin->import(
'classes.MarkupJobInfoDAO');
71 import(
'plugins.generic.markup.classes.MarkupConversionHelper');
83 $this->_markupPlugin->import(
'classes.MarkupBatchConversionHelper');
90 public function usage() {
91 print
"Usage: " . PHP_EOL;
92 print
"\t {$this->scriptName} [user_name] <journal name>\t\t\t\t\tBatch convert a specific journal enabled" . PHP_EOL;
93 print
"\t {$this->scriptName} [user_name] [--all]\t\t\t\t\t\tBatch convert all enabled journals" . PHP_EOL;
94 print
"\t {$this->scriptName} [--print]\t\t\t\t\t\t\tPrints the list of all enabled journals" . PHP_EOL;
95 print
"\t {$this->scriptName} [user_name] [--list] <comma-separated list of journals>\tBatch convert a comma separated list of journals" . PHP_EOL;
102 $allOption = in_array(
'--all', $this->_parameters);
103 $listOption = in_array(
'--list',$this->_parameters);
104 $printOption = in_array(
'--print',$this->_parameters);
112 $adminUser = array_shift($this->_parameters);
114 $this->_user = $userDao->getByUsername($adminUser);
117 print
"=> " . __(
'plugins.generic.markup.unknownUser', array(
'adminUser' => $adminUser)). PHP_EOL;
126 elseif ($listOption) {
130 $contextPath = $this->_parameters[0];
132 $context = $contextDao->getByPath($contextPath);
143 $contexts = $contextDao->getAll(
true);
144 print __(
'plugins.generic.markup.journalList') . PHP_EOL;
145 while ($context = $contexts->next()) {
146 print
"=> " . $context->getPath() .
" (" . $context->getLocalizedName() .
")" . PHP_EOL;
155 $contexts = $contextDao->getAll(
true);
156 while ($context = $contexts->next()) {
165 if (!isset($this->_parameters[1])) {
166 print __(
'plugins.generic.markup.missingJournalList') . PHP_EOL . PHP_EOL;
171 $journals = explode(
",", $this->_parameters[1]);
173 foreach ($journals as $contextPath) {
174 $context = $contextDao->getByPath($contextPath);
186 print __(
'plugins.generic.markup.invalidJournalPath') . PHP_EOL;
190 $this->_context = $context;
194 catch(Exception $e) {
195 print
"=> " . $e->getMessage(). PHP_EOL;
201 print
'---------------------------------------------------' . PHP_EOL;
202 print
'*****> JOURNAL: ' . $context->getPath() .
' <*****' . PHP_EOL;
203 print
'---------------------------------------------------' . PHP_EOL;
207 $metadata = $this->_markupBatchConversionHelper->buildSubmissionMetadataByContext($context->getId());
208 $submissionFoundCount = count($metadata);
209 $submissionProcessedCount = 0;
210 foreach ($metadata as $submission) {
211 print
"=> " . __(
'plugins.generic.markup.processingSubmissionText', array(
'submissionTitle' => $submission[
'title'])) . PHP_EOL;
212 if ($defaultSubmissionFileId = intval($submission[
'defaultSubmissionFileId'])) {
214 $submissionFile = $submissionFileDao->getLatestRevision($defaultSubmissionFileId);
215 if (empty($submissionFile)) {
216 print
"\t => " . __(
'plugins.generic.markup.archive.noArticle') . PHP_EOL;
219 $submissionProcessedCount++;
221 $submissionObj = $submissionDao->getById($submissionFile->getSubmissionId());
226 $defaultSubmissionFileId
228 $jobId = $this->_markupConversionHelper->triggerConversion(
231 $submission[
'stage'],
235 print
"\t " . __(
'plugins.generic.markup.otsJobId', array(
'jobId' => $jobId)) . PHP_EOL;
236 print
"\t " . __(
'plugins.generic.markup.ojsJobInfoId', array(
'jobInfoId' => $jobInfoId)) . PHP_EOL;
239 $statusCallbackFn =
function($jobStatus) use ($otsWrapper, $data) {
240 $conversionStatus = $otsWrapper->statusCodeToLabel($jobStatus);
241 print
"\t" . __(
'plugins.generic.markup.otsConversionStatus', array(
'conversionStatus' => $conversionStatus)) . PHP_EOL;
243 $tmpZipFile = $this->_markupConversionHelper->retrieveConversionJobArchive(
248 if (($tmpZipFile ==
false) || !file_exists($tmpZipFile)) {
249 throw new Exception(
"\t => " . __(
'plugins.generic.markup.archive-download-failure') . PHP_EOL);
251 $extractionPath =
null;
252 if (($extractionPath = $this->_markupConversionHelper->unzipArchive($tmpZipFile)) ===
false) {
253 throw new Exception(
"\t => " . __(
'plugins.generic.markup.archive-extract-failure') . PHP_EOL);
255 $fileName =
"document" .
'__' . date(
'Y-m-d_h:i:s');
256 $this->_markupConversionHelper->handleArchiveExtractionAfterGalleyGenerate(
264 catch (Exception $e) {
265 print
"\t => *** EXCEPTION *** => " . $e->getMessage() . PHP_EOL;
269 print PHP_EOL . __(
'plugins.generic.markup.batchSummary', array(
'submissionFoundCount' => $submissionFoundCount,
'submissionProcessedCount' => $submissionProcessedCount)) . PHP_EOL;