/** * @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; }
/** * @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; }
/** * @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; }
/** * @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; }
/** * @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; }
/** * @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; }
/** * @param $url */ public function setThumbnailByUrl($url) { $this->thumbnail = ExtractedImageFactory::createFromUrl($url); }