protected function execute(InputInterface $input, OutputInterface $output) { $command = '/var/www/joies-de-supinfo/app/console ljds:publish'; $cronDow = [WeekPart::WEEK_DAYS => '1-5', WeekPart::WEEK_END => '6-7']; $labels = [WeekPart::WEEK_DAYS => 'Week days', WeekPart::WEEK_END => 'Weekend']; $output->writeln('# Joies de SUPINFO'); foreach ([WeekPart::WEEK_DAYS, WeekPart::WEEK_END] as $weekPart) { $output->writeln('# ' . $labels[$weekPart]); foreach (AutoPostHelper::getPublicationTimes($weekPart) as $job) { $hours = explode(':', $job)[0]; $minutes = explode(':', $job)[1]; $output->writeln($minutes . ' ' . $hours . ' * * ' . $cronDow[$weekPart] . ' ' . $command); } $output->writeln(''); } }
/** * Returns when the recently submitted gif will be published */ public function getEstimatedPublicationDate() { $remainingGifs = count($this->findByGifState(GifState::ACCEPTED)); $currentDate = new \DateTime(); while ($remainingGifs >= 0) { $dow = intval($currentDate->format('w')); switch ($dow) { case 1: case 2: case 3: case 4: case 5: // Week days $remainingGifs -= count(AutoPostHelper::getPublicationTimes(WeekPart::WEEK_DAYS)); break; case 6: case 0: // Weekend $remainingGifs -= count(AutoPostHelper::getPublicationTimes(WeekPart::WEEK_END)); break; } $currentDate->modify('+1 day'); } return $currentDate; }