/**
  * @param Media $media
  *
  * @throws \RuntimeException when the file does not exist
  */
 public function prepareMedia(Media $media)
 {
     if (null === $media->getUuid()) {
         $uuid = uniqid();
         $media->setUuid($uuid);
     }
     $video = new RemoteVideoHelper($media);
     $code = $video->getCode();
     //update thumbnail
     switch ($video->getType()) {
         case 'youtube':
             $video->setThumbnailUrl('http://img.youtube.com/vi/' . $code . '/0.jpg');
             break;
         case 'vimeo':
             try {
                 $xml = simplexml_load_file('http://vimeo.com/api/v2/video/' . $code . '.xml');
                 $video->setThumbnailUrl((string) $xml->video->thumbnail_large);
             } catch (\Exception $e) {
             }
             break;
         case 'dailymotion':
             try {
                 $json = json_decode(file_get_contents('https://api.dailymotion.com/video/' . $code . '?fields=thumbnail_large_url'));
                 $thumbnailUrl = $json->{'thumbnail_large_url'};
                 /* dirty hack to fix urls for imagine */
                 if (!$this->endsWith($thumbnailUrl, '.jpg') && !$this->endsWith($thumbnailUrl, '.png')) {
                     $thumbnailUrl = $thumbnailUrl . '&ext=.jpg';
                 }
                 $video->setThumbnailUrl($thumbnailUrl);
             } catch (\Exception $e) {
             }
             break;
     }
 }
 public function prepareMedia(Media $media)
 {
     $url = $media->getUrl();
     $media->setUuid(uniqid());
     parent::prepareMedia($media);
     if ($media->getContent() instanceof File) {
         // if media already has it’s local path ($url) then i don’t want parent to overwrite it
         if ($url && "." !== $url[strlen($url) - 1] && $url === parse_url($url, PHP_URL_PATH)) {
             $media->setUrl($url);
         }
         $dirname = dirname($media->getUrl());
         $ext = pathinfo($media->getUrl(), PATHINFO_EXTENSION);
         $filename = $this->slugifier->slugify(basename($media->getUrl(), $ext)) . ($ext ? ".{$ext}" : "");
         $url = implode('/', [$dirname, $filename]);
         $this->setMediaUrl($media, $url);
     }
 }
 /**
  * @param Media $media
  *
  * @throws \RuntimeException when the file does not exist
  */
 public function prepareMedia(Media $media)
 {
     if (null == $media->getUuid()) {
         $uuid = uniqid();
         $media->setUuid($uuid);
     }
     $slide = new RemoteSlideHelper($media);
     $code = $slide->getCode();
     // update thumbnail
     switch ($slide->getType()) {
         case 'slideshare':
             try {
                 $json = json_decode(file_get_contents('http://www.slideshare.net/api/oembed/2?url=http://www.slideshare.net/slideshow/embed_code/' . $code . '&format=json'));
                 $slide->setThumbnailUrl($json->thumbnail);
             } catch (\ErrorException $e) {
                 // Silent exception - should not bubble up since failure to create a thumbnail is not a fatal error
             }
             break;
     }
 }
 /**
  * @param Media $media
  *
  * @throws \RuntimeException when the file does not exist
  */
 public function prepareMedia(Media $media)
 {
     if (null == $media->getUuid()) {
         $uuid = uniqid();
         $media->setUuid($uuid);
     }
     $content = $media->getContent();
     if (empty($content)) {
         return;
     }
     if (!$content instanceof File) {
         if (!is_file($content)) {
             throw new \RuntimeException('Invalid file');
         }
         $file = new File($content);
         $media->setContent($file);
     }
     if ($content instanceof UploadedFile) {
         $media->setOriginalFilename($content->getClientOriginalName());
         $name = $media->getName();
         if (empty($name)) {
             $media->setName($media->getOriginalFilename());
         }
     }
     $media->setFileSize(filesize($media->getContent()));
     $contentType = $this->mimeTypeGuesser->guess($media->getContent()->getPathname());
     $media->setContentType($contentType);
     $relativePath = sprintf('/%s.%s', $media->getUuid(), ExtensionGuesser::getInstance()->guess($media->getContentType()));
     $media->setUrl('/uploads/media' . $relativePath);
     $media->setLocation('local');
 }
 /**
  * @param Media $media
  *
  * @throws \RuntimeException when the file does not exist
  */
 public function prepareMedia(Media $media)
 {
     if (null === $media->getUuid()) {
         $uuid = uniqid();
         $media->setUuid($uuid);
     }
     $content = $media->getContent();
     if (empty($content)) {
         return;
     }
     if (!$content instanceof File) {
         if (!is_file($content)) {
             throw new \RuntimeException('Invalid file');
         }
         $file = new File($content);
         $media->setContent($file);
     }
     if ($content instanceof UploadedFile) {
         $media->setOriginalFilename($content->getClientOriginalName());
         $name = $media->getName();
         if (empty($name)) {
             $media->setName($media->getOriginalFilename());
         }
     }
     $media->setFileSize(filesize($media->getContent()));
     $contentType = $this->mimeTypeGuesser->guess($media->getContent()->getPathname());
     $media->setContentType($contentType);
     $media->setUrl(self::MEDIA_PATH . $this->getFilePath($media));
     $media->setLocation('local');
 }
Esempio n. 6
0
 /**
  * @covers Kunstmaan\MediaBundle\Entity\Media::getUuid
  * @covers Kunstmaan\MediaBundle\Entity\Media::setUuid
  */
 public function testGetSetUuid()
 {
     $this->object->setUuid('abc');
     $this->assertEquals('abc', $this->object->getUuid());
 }
 /**
  * @param Media $media
  *
  * @throws \RuntimeException when the file does not exist
  */
 public function prepareMedia(Media $media)
 {
     if (null === $media->getUuid()) {
         $uuid = uniqid();
         $media->setUuid($uuid);
     }
     $audio = new RemoteAudioHelper($media);
     $code = $audio->getCode();
     //update thumbnail
     switch ($audio->getType()) {
         case 'soundcloud':
             $scData = json_decode(file_get_contents('http://api.soundcloud.com/tracks/' . $code . '.json?client_id=' . $this->getSoundcloudApiKey()));
             $artworkUrl = $scData->artwork_url;
             $artworkUrl = str_replace('large.jpg', 't500x500.jpg', $artworkUrl);
             $audio->setThumbnailUrl($artworkUrl);
             break;
     }
 }
Esempio n. 8
0
 /**
  * @param Media $media
  *
  * @throws \RuntimeException when the file does not exist
  */
 public function prepareMedia(Media $media)
 {
     if (null === $media->getUuid()) {
         $uuid = uniqid();
         $media->setUuid($uuid);
     }
     $content = $media->getContent();
     if (empty($content)) {
         return;
     }
     if (!$content instanceof File) {
         if (!is_file($content)) {
             throw new \RuntimeException('Invalid file');
         }
         $file = new File($content);
         $media->setContent($file);
     }
     $contentType = $this->mimeTypeGuesser->guess($content->getPathname());
     if ($content instanceof UploadedFile) {
         $pathInfo = pathinfo($content->getClientOriginalName());
         if (!array_key_exists('extension', $pathInfo)) {
             $pathInfo['extension'] = $this->extensionGuesser->guess($contentType);
         }
         $media->setOriginalFilename($this->slugifier->slugify($pathInfo['filename']) . '.' . $pathInfo['extension']);
         $name = $media->getName();
         if (empty($name)) {
             $media->setName($media->getOriginalFilename());
         }
     }
     $media->setContentType($contentType);
     $media->setFileSize(filesize($media->getContent()));
     $media->setUrl($this->mediaPath . $this->getFilePath($media));
     $media->setLocation('local');
 }