protected function execute(InputInterface $input, OutputInterface $output) { $inputFile = new SplFileInfo($input->getArgument('input')); $tag = $inputFile->getMetadata()->getId3v1Tag(); $hydrator = new ClassMethods(); $data = $hydrator->extract($tag); $data['audio_properties'] = $hydrator->extract($data['audio_properties']); foreach (array_keys($data) as $name) { if (null === $data[$name]) { unset($data[$name]); } } $format = $input->getOption('format'); if (!in_array($format, array(self::FORMAT_YAML))) { $format = self::FORMAT_YAML; } switch ($format) { case self::FORMAT_YAML: $data = Yaml::dump($data); break; } $outputFilename = $input->getArgument('output'); if (null === $outputFilename) { $output->writeln('<info>' . $data . '</info>'); return; } if (file_put_contents($outputFilename, $data)) { $output->writeln(sprintf('<info>Metadata file \'%s\' successfully exported.</info>', $outputFilename)); return; } $output->writeln(sprintf('<error>Unable to write metadata file \'%s\'.</error>', $outputFilename)); }
protected function execute(InputInterface $input, OutputInterface $output) { $file = new SplFileInfo($input->getArgument('filename')); $data = Yaml::parse($input->getArgument('import')); foreach (array_keys($data) as $name) { if (null === $data[$name] || 'audio_properties' === $name) { unset($data[$name]); } } $metadata = $file->getMetadata(); $tag = $metadata->getId3v1Tag(); $hydrator = new ClassMethods(); $hydrator->hydrate($data, $tag)->save(); $output->writeln('<info>Metadata import successful.</info>'); }
/** * @covers \GravityMedia\Metadata\Tag\Id3v1::getGenre */ public function testShouldWriteAndReadGenre() { $availableGenres = array_values(Id3v1Processor::ArrayOfGenres()); $expected = $availableGenres[array_rand($availableGenres)]; $this->file->getMetadata()->getId3v1Tag()->setGenre($expected)->save(); $this->assertEquals($expected, $this->file->getMetadata()->getId3v1Tag()->getGenre()); }
/** * @covers \GravityMedia\Metadata\Tag\Id3v2::getPicture */ public function testShouldWriteAndReadPicture() { $expected = new Picture(); $expected->setData(file_get_contents('tests/resource/tag/image.png')); $expected->setMime('image/png'); $expected->setPictureType('Other'); $expected->setDescription('Cover'); $this->file->getMetadata()->getId3v2Tag()->setPicture($expected)->save(); $this->assertEquals($expected, $this->file->getMetadata()->getId3v2Tag()->getPicture()); }