/** * @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'); }
/** * @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; } }
/** * @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'); }