videos representation screenshots generation code cleanup

This commit is contained in:
Florian BLOUET
2015-06-12 15:33:14 +02:00
parent 497ae466ee
commit 05d293a4a1
2 changed files with 33 additions and 46 deletions

View File

@@ -246,59 +246,23 @@ class ToolsController extends Controller
public function applyThumbnailExtractionAction(Request $request)
{
$return = ['success' => false, 'message' => ''];
try {
$record = new \record_adapter($this->app, $request->request->get('sbas_id'), $request->request->get('record_id'));
$subDef = $request->request->get('sub_def');
if( is_array($subDef)) {
foreach($subDef as $def) {
$subDefName = $def['name'];
$subDefDataUri = $def['src'];
$dataUri = Parser::parse($subDefDataUri);
$name = sprintf('extractor_thumb_%s', $record->get_serialize_key());
$fileName = sprintf('%s/%s.png', sys_get_temp_dir(), $name);
file_put_contents($fileName, $dataUri->getData());
$media = $this->app->getMediaFromUri($fileName);
$this->getSubDefinitionSubstituer()->substitute($record, $subDefName, $media);
$this->getDataboxLogger($record->get_databox())
->log($record, \Session_Logger::EVENT_SUBSTITUTE, $subDefName, '');
unset($media);
$this->getFilesystem()->remove($fileName);
}
$return['success'] = true;
// legacy handling
if (!is_array($subDef)) {
$subDef = ['name' => 'thumbnail', 'src' => $request->request->get('image', '')];
}
// legacy usage:
foreach ($subDef as $def) {
$this->substituteMedia($record, $def['name'], $def['src']);
}
$dataUri = Parser::parse($request->request->get('image', ''));
$name = sprintf('extractor_thumb_%s', $record->get_serialize_key());
$fileName = sprintf('%s/%s.png', sys_get_temp_dir(), $name);
file_put_contents($fileName, $dataUri->getData());
$media = $this->app->getMediaFromUri($fileName);
$this->getSubDefinitionSubstituer()->substitute($record, 'thumbnail', $media);
$this->getDataboxLogger($record->get_databox())
->log($record, \Session_Logger::EVENT_SUBSTITUTE, 'thumbnail', '');
unset($media);
$this->getFilesystem()->remove($fileName);
$return['success'] = true;
$return = ['success' => true, 'message' => ''];
} catch (\Exception $e) {
$return['message'] = $e->getMessage();
$return = ['success' => false, 'message' => $e->getMessage()];
}
return $this->app->json($return);
@@ -343,4 +307,29 @@ class ToolsController extends Controller
{
return $this->app['phraseanet.metadata-reader'];
}
/**
* @param $record
* @param $subDefName
* @param $subDefDataUri
* @throws \DataURI\Exception\InvalidDataException
*/
private function substituteMedia($record, $subDefName, $subDefDataUri)
{
$dataUri = Parser::parse($subDefDataUri);
$name = sprintf('extractor_thumb_%s', $record->get_serialize_key());
$fileName = sprintf('%s/%s.png', sys_get_temp_dir(), $name);
file_put_contents($fileName, $dataUri->getData());
$media = $this->app->getMediaFromUri($fileName);
$this->getSubDefinitionSubstituer()->substitute($record, $subDefName, $media);
$this->getDataboxLogger($record->get_databox())
->log($record, \Session_Logger::EVENT_SUBSTITUTE, $subDefName, '');
unset($media);
$this->getFilesystem()->remove($fileName);
}
}