protected function execute(InputInterface $input, OutputInterface $output)
 {
     $tools = new Tools();
     $import = time();
     $providers = ['theonyxpath'];
     $articles = [];
     foreach ($providers as $provider) {
         $output->writeln('Getting articles for provider: <info>' . $provider . '</info>');
         $site = $this->getContainer()->get('doctrine')->getRepository('OrcosSiteBundle:Site')->findOneBySlug($provider);
         $rawArticles = $this->getContainer()->get('orcos.providers')->getProvider($provider)->fetchArticles();
         $insertedArticles = 0;
         foreach ($rawArticles as $rawArticle) {
             $article = $rawArticle->getArticle($site);
             $article->setImport($import);
             $articleExists = $this->getContainer()->get('doctrine')->getRepository('OrcosSiteBundle:Article')->findOneBy(['site' => $site, 'hash' => $article->getHash()]);
             if (!$articleExists) {
                 $insertedArticles++;
                 $this->getContainer()->get('doctrine')->getManager()->persist($article);
                 // Save Image
                 foreach ($rawArticle->getImages() as $imageHash => $imageUrl) {
                     $saveDir = $this->getContainer()->getParameter('kernel.root_dir') . '/../web/assets/' . $site->getSlug() . '/';
                     if (!is_dir($saveDir)) {
                         mkdir($saveDir);
                     }
                     file_put_contents($saveDir . $imageHash, $this->getContainer()->get('orcos.fetcher')->fetchContent($imageUrl));
                     $tools->optimizeImage($saveDir . $imageHash);
                 }
             }
         }
         $output->writeln('New articles: <info>' . $insertedArticles . '</info>');
     }
     $this->getContainer()->get('doctrine')->getManager()->flush();
 }
Ejemplo n.º 2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $tools = new Tools();
     $finder = new Finder();
     foreach ($finder->files()->in($this->getContainer()->getParameter('kernel.root_dir') . '/../web/assets/') as $file) {
         try {
             $tools->optimizeImage($file->getPathName());
         } catch (\Exception $e) {
         }
     }
 }