67 lines
1.4 KiB
PHP
67 lines
1.4 KiB
PHP
<?php
|
|
|
|
class ArchiveJob extends Job {
|
|
|
|
public $document;
|
|
|
|
public function run() {
|
|
|
|
$doc = new Document($this->document);
|
|
|
|
$meta = [];
|
|
$meta['title'] = sprintf("uri(\"%s\")", rawurlencode(trim($doc->title . " " . $doc->subtitle . " " . $doc->subsubtitle)));
|
|
$meta['creator'] = "Digital Equipment Corporation";
|
|
$meta['description'] = sprintf("uri(\"%s\")", rawurlencode($doc->overview_md()));
|
|
|
|
$doc->load("revisions");
|
|
|
|
$doc->archive = "P";
|
|
|
|
$worked = 0;
|
|
|
|
$id = $doc->internal_id;
|
|
if (Config::get("SANDBOX")) {
|
|
$id = sprintf("decpdf_test_%s_%08d", $id, time());
|
|
}
|
|
|
|
$this->status($id);
|
|
$doc->load("revisions");
|
|
|
|
foreach ($doc->revisions as $r) {
|
|
if ($r->archived == "N") {
|
|
try {
|
|
$this->status("Uploading " . $r->filename());
|
|
$r->archived = "P";
|
|
$r->save();
|
|
Archive::upload($r->getPDF(), $id, $r->filename(), $meta);
|
|
$r->refresh();
|
|
$r->archived = "Y";
|
|
$r->save();
|
|
$worked++;
|
|
} catch (Exception $e) {
|
|
$r->refresh();
|
|
$r->archived = "F";
|
|
$r->save();
|
|
$this->status($e->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($worked == 0) {
|
|
$doc->refresh();
|
|
$doc->archived = "F";
|
|
$doc->save();
|
|
$this->fail("No files uploaded");
|
|
return;
|
|
} else {
|
|
$doc->refresh();
|
|
$doc->archived = "Y";
|
|
$doc->archive_url = $id;
|
|
$doc->save();
|
|
}
|
|
|
|
$this->finish();
|
|
}
|
|
|
|
}
|