/** * @param FixtureEpisodeData $fixture * @param string $baseName */ protected function parseEpisodeNumbers(FixtureEpisodeData $fixture, &$baseName) { if (1 !== preg_match('{s([0-9]+)e([0-9]+)-?([0-9]+)?}i', $baseName, $match) && 1 !== preg_match('{([0-9]{1,2})x([0-9]{1,2})}i', $baseName, $match) && 1 !== preg_match('{([0-9]{1,2})([0-9]{2})}', $baseName, $match)) { return; } $fixture->setSeasonNumber(isset($match[1]) ? $match[1] : 0); $fixture->setEpisodeNumberStart(isset($match[2]) ? $match[2] : 0); if (isset($match[3])) { $fixture->setEpisodeNumberEnd($match[3]); } $baseName = [substr($baseName, 0, strpos($baseName, $match[0])), substr($baseName, strpos($baseName, $match[0]) + strlen($match[0]))]; }
/** * @param FixtureEpisodeData $f * @param Tv\Episode|null $e * @param Tv|null $s */ private function hydrateFixtureEpisode(FixtureEpisodeData $f, Tv\Episode $e = null, Tv $s = null) { if ($s === null || $e === null) { return; } $f->setName($s->getName()); $f->setTitle($e->getName()); $f->setEpisodeNumberStart($e->getEpisodeNumber()); $f->setSeasonNumber($e->getSeasonNumber()); $f->setId($e->getId()); $f->setYear($s->getFirstAirDate()->format('Y')); $f->setEnabled(true); }