spip_nursit/plugins-dist/dist/nursit/oembed/spip-cli/OembedRecupererData.php
2023-06-01 17:30:12 +02:00

85 lines
1.9 KiB
PHP

<?php
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Helper\ProgressHelper;
class OembedRecupererData extends Command {
protected function configure() {
$this
->setName('oembed:recupererdata')
->setDescription('Recuperer les donnees oembed d\'une URL')
->addOption(
'url',
null,
InputOption::VALUE_REQUIRED,
'URL de la ressource',
null
)
->addOption(
'maxwidth',
null,
InputOption::VALUE_OPTIONAL,
'Largeur maxi',
''
)
->addOption(
'maxheight',
null,
InputOption::VALUE_OPTIONAL,
'Hauteur maxi',
''
)
->addOption(
'format',
null,
InputOption::VALUE_OPTIONAL,
'Format des données',
'json'
)
->addOption(
'detect',
null,
InputOption::VALUE_NONE,
'Detecter automatiquement le provider oembed si il n\'est pas connu',
null
)
->addOption(
'force',
null,
InputOption::VALUE_NONE,
'forcer une nouvelle récupération des données depuis le serveur source (ignorer le cache)',
null
)
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
include_spip('inc/oembed');
#global $spip_racine;
#global $spip_loaded;
$url = $input->getOption('url');
if (!$url) {
$output->writeln("<error>Indiquez une URL</error>");
exit(Command::FAILURE);
}
$maxwidth = $input->getOption('maxwidth');
$maxheight = $input->getOption('maxheight');
$format = $input->getOption('format');
$detect = $input->getOption('detect');
$force = $input->getOption('force');
$data = oembed_recuperer_data($url, $maxwidth, $maxheight, $format, $detect ? 'oui': 'non', $force);
$output->writeln(var_export($data, true));
return Command::SUCCESS;
}
}