Skip to content

Commit

Permalink
add : allow to set multiple --source, the first not-empty meta is cop…
Browse files Browse the repository at this point in the history
…ied to destination (#4516)
  • Loading branch information
jygaulier authored Jun 6, 2024
1 parent 5769be7 commit 45e8f29
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
2 changes: 1 addition & 1 deletion lib/Alchemy/Phrasea/Command/Record/RescanFilesMetadata.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public function __construct()
->addOption('min_record_id', null, InputOption::VALUE_REQUIRED, "lowest record_id value")
->addOption('record_type', null, InputOption::VALUE_REQUIRED, 'Type of records(s) to scan.')
->addOption('partition', null, InputOption::VALUE_REQUIRED, 'n/N : work only on records belonging to partition')
->addOption('source', null, InputOption::VALUE_REQUIRED, 'tag to search exemple IPTC:KEYWORD')
->addOption('source', null, InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, 'tag to search exemple IPTC:KEYWORD')
->addOption('destination', null, InputOption::VALUE_REQUIRED, "ID of the field de fill")
->addOption('overwrite', null, InputOption::VALUE_NONE, "act even if the destination field has a value in databox")
->addOption('method', null, InputOption::VALUE_REQUIRED, "replace or merge for multi value field")
Expand Down
21 changes: 16 additions & 5 deletions lib/classes/record/adapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -1287,12 +1287,15 @@ public function setMetadatasByActions(stdClass $actions)
* @return array|null
* @throws \PHPExiftool\Exception\EmptyCollectionException
*/
public function getFileMetadataByTag($tag)
public function getFileMetadataByTag($tags)
{
$logger = new Logger('exif-tool');
$reader = Reader::create($logger);

$value = null;
if(!is_array($tags)) {
$tags = [$tags];
}
$tags = array_fill_keys($tags, null);

// throw exception
$documentSubdef = $this->get_subdef('document');
Expand All @@ -1301,13 +1304,21 @@ public function getFileMetadataByTag($tag)

/** @var Metadata $metadata */
foreach ($metadatas as $metadata) {
if ($metadata->getTag() == $tag) {
$value = explode(";", $metadata->getValue());
/** @var string $t */
$t = (string)$metadata->getTag();
if (array_key_exists($t, $tags)) {
$tags[$t] = explode(";", $metadata->getValue());
break;
}
}

return $value;
foreach($tags as $tag => $value) {
if($value !== null) {
return $value;
}
}

return null;
}


Expand Down

0 comments on commit 45e8f29

Please sign in to comment.