protected function execute(InputInterface $input, OutputInterface $output) { $path = realpath($input->getArgument('path')); if (!$path) { throw new Exception('Incorrect path'); } $scandir = scandir($path); foreach ($scandir as $filename) { $file = $path . '/' . $filename; $ext = substr($filename, -3, 3); if (in_array($ext, ['mp4', 'avi', 'mkv'])) { try { $release = new Release(substr($filename, 0, -4)); if ($filename != $release->__toString() . '.' . $ext) { rename($file, dirname($file) . '/' . $release->__toString() . '.' . $ext); $output->writeln('<comment>' . $filename . '</comment> renamed to <info>' . $release->__toString() . '.' . $ext . '</info>'); } else { $output->writeln('<error>' . $filename . '</error> already renamed to "correct" scene release name : <comment>ignored</comment>'); } } catch (Exception $e) { $exceptions[] = $filename; } } } if (count($exceptions)) { throw new Exception("Invalid release name :\n" . implode("\n", $exceptions)); } }
<?php require __DIR__ . '/../vendor/autoload.php'; use thcolin\SceneReleaseParser\Release; $content = file_get_contents(__DIR__ . '/releases.txt'); $elements = []; foreach (explode("\n", $content) as $release) { if (!$release) { continue; } $release = utf8_encode($release); $Release = new Release($release); $element = ['generated' => $Release->__toString(), 'title' => utf8_encode($Release->getTitle()), 'type' => utf8_encode($Release->getType())]; if ($year = $Release->getYear()) { $element['year'] = utf8_encode($year); } else { $element['guess']['year'] = $Release->guessYear(); } if ($language = $Release->getLanguage()) { $element['language'] = utf8_encode($language); } else { $element['guess']['language'] = $Release->guessLanguage(); } if ($resolution = $Release->getResolution()) { $element['resolution'] = utf8_encode($resolution); } else { $element['guess']['resolution'] = $Release->guessResolution(); } if ($source = $Release->getSource()) { $element['source'] = utf8_encode($source); }