Example #1
0
 /**
  * @param Crawler $crawler
  * @return ExtractedVideo
  */
 public function extract(Crawler $crawler)
 {
     $oembedData = $this->getOEmbedData($crawler);
     $video = new ExtractedVideo();
     if (is_array($oembedData) && isset($oembedData['description'])) {
         $video->setDescription($oembedData['description']);
     } else {
         $video->setDescription(trim($crawler->filter(".description_wrapper")->text()));
     }
     if (is_array($oembedData) && isset($oembedData['title'])) {
         $video->setTitle($oembedData['title']);
     } else {
         $video->setTitle(trim($crawler->filter("h1.js-clip_title")->html()));
     }
     if (is_array($oembedData) && isset($oembedData['thumbnail_url'])) {
         $thumbnail = ExtractedImageFactory::createFromUrl($oembedData['thumbnail_url'], isset($oembedData['thumbnail_width']) ? $oembedData['thumbnail_width'] : null, isset($oembedData['thumbnail_height']) ? $oembedData['thumbnail_height'] : null);
         $video->setThumbnail($thumbnail);
     }
     if (is_array($oembedData) && isset($oembedData['html'])) {
         $doc = new DOMDocument();
         $doc->loadHTML($oembedData['html']);
         /** @var DOMNodeList $iframes */
         $iframes = $doc->getElementsByTagName('iframe');
         if ($iframes->length > 0) {
             $video->setEmbedUrl($iframes->item(0)->getAttribute('src'));
         }
     }
     $publishedOn = $crawler->filter("time")->attr('datetime');
     $publishedDatetime = new \DateTime($publishedOn);
     $video->setPublishedOn($publishedDatetime);
     $video->setStats($this->extractStats());
     $video->setOwner($this->extractOwner($crawler, $oembedData));
     return $video;
 }
Example #2
0
 /**
  * @param Crawler $crawler
  * @return \pmill\Extract\ExtractedImage
  */
 public function extract(Crawler $crawler)
 {
     $imageSrc = $crawler->filter('img.main-photo')->attr('src');
     $image = ExtractedImageFactory::createFromUrl($imageSrc);
     $image->setDescription(StringHelper::filterText($crawler, '.title-desc-block p'));
     $image->setTitle(StringHelper::filterText($crawler, 'h1.photo-title'));
     $image->setOwner($this->extractOwner($crawler));
     $image->setStats($this->extractStats($crawler));
     return $image;
 }
Example #3
0
 /**
  * @param Crawler $crawler
  * @return array|ExtractedImage[]
  */
 public function extractImages(Crawler $crawler)
 {
     $foundImages = $crawler->filter('img')->extract(array('src'));
     $foundImages = array_filter($foundImages);
     $foundImages = array_unique($foundImages);
     $images = array();
     foreach ($foundImages as $url) {
         if ($image = ExtractedImageFactory::createFromUrl($url)) {
             $images[] = $image;
         }
     }
     return $images;
 }
Example #4
0
 /**
  * @param Crawler $crawler
  * @return \pmill\Extract\ExtractedImage[]
  */
 public function extractImages(Crawler $crawler)
 {
     /** @var DOMElement[] $imageNodes */
     $imageNodes = $crawler->filter("#image-container > div");
     $images = array();
     foreach ($imageNodes as $imageNode) {
         $nodeCrawler = new Crawler($imageNode);
         $imageUrl = $nodeCrawler->filter('.album-view-image-link a')->attr('href');
         if ($image = ExtractedImageFactory::createFromUrl($imageUrl)) {
             $image->setTitle(StringHelper::filterText($nodeCrawler, 'h2'));
             $image->setDescription(StringHelper::filterText($nodeCrawler, '.description'));
             $images[] = $image;
         }
     }
     return $images;
 }
Example #5
0
 /**
  * @param Crawler $crawler
  * @return \pmill\Extract\ExtractedImage
  */
 public function extract(Crawler $crawler)
 {
     $imageUrl = $crawler->filter("link[rel='image_src']")->attr('href');
     $image = ExtractedImageFactory::createFromUrl($imageUrl);
     $image->setTitle(StringHelper::filterText($crawler, '#image-title'));
     $image->setDescription(StringHelper::filterText($crawler, '.description'));
     if ($crawler->filter('#nicetime')->count() > 0) {
         $published = trim($crawler->filter('#nicetime')->attr('title'));
         if ($published) {
             $publishedDatetime = \DateTime::createFromFormat('l, F j, Y \\a\\t H:i:s e', $published);
             $image->setPublishedOn($publishedDatetime);
         }
     }
     $image->setStats($this->extractStats($crawler));
     $image->setOwner($this->extractOwner($crawler));
     return $image;
 }
Example #6
0
 /**
  * @param Crawler $crawler
  * @return \pmill\Extract\ExtractedImage[]
  */
 public function extractImages(Crawler $crawler)
 {
     $imageNodes = $crawler->filter("#primary-project-content .project-module-image");
     /** @var ExtractedImage[] $images */
     $images = array();
     foreach ($imageNodes as $imageNode) {
         $nodeCrawler = new Crawler($imageNode);
         if ($nodeCrawler->filter('source')->count() > 0) {
             $imageUrl = $nodeCrawler->filter('source')->attr('srcset');
         } elseif ($nodeCrawler->filter('img')->count() == 1) {
             $imageUrl = $nodeCrawler->filter('img')->attr('src');
         }
         if (isset($imageUrl)) {
             if ($image = ExtractedImageFactory::createFromUrl($imageUrl)) {
                 $images[] = $image;
             }
         }
     }
     return $images;
 }
Example #7
0
 /**
  * @param $url
  */
 public function setThumbnailByUrl($url)
 {
     $this->thumbnail = ExtractedImageFactory::createFromUrl($url);
 }