Files
decpdf.site/app/jobs/ArchiveJob.php
T
2026-06-04 16:30:29 +01:00

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();
}
}