/**
  * @param Media $media
  */
 public function delete(Media $media)
 {
     $em = $this->getEntityManager();
     $media->setDeleted(true);
     $em->persist($media);
     $em->flush();
 }
 /**
  * @param Media  $media    The media entity
  * @param string $basepath The base path
  *
  * @return string
  */
 public function getImageUrl(Media $media, $basepath)
 {
     if ($media->getUrl() === parse_url($media->getUrl(), PHP_URL_PATH)) {
         return $basepath . $media->getUrl();
     }
     return $media->getUrl();
 }
 /**
  * @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;
     }
 }
 /**
  * @covers Kunstmaan\MediaPagePartBundle\Entity\VideoPagePart::setMedia
  * @covers Kunstmaan\MediaPagePartBundle\Entity\VideoPagePart::getMedia
  */
 public function testSetGetMedia()
 {
     $media = new Media();
     $media->setId(5);
     $this->object->setMedia($media);
     $this->assertEquals(5, $this->object->getMedia()->getId());
 }
 /**
  * @param Media $media
  *
  * @return void
  */
 public function saveMedia(Media $media)
 {
     if (!$media->getContent() instanceof File) {
         return;
     }
     $this->uploader->uploadMedia($media);
 }
Esempio n. 6
0
 /**
  * @param Media $media The media entity
  * @param string $basepath The base path
  *
  * @return string
  */
 public function getImageUrl(Media $media, $basepath)
 {
     $filename = $this->pdfTransformer->getPreviewFilename($basepath . $media->getUrl());
     if (!file_exists($this->webPath . $filename)) {
         return null;
     }
     return $filename;
 }
 /**
  * @covers Kunstmaan\MediaBundle\Helper\File\PdfHandler::getImageUrl
  * @covers Kunstmaan\MediaBundle\Helper\File\PdfHandler::setWebPath
  */
 public function testGetImageUrl()
 {
     $this->pdfTransformer->expects($this->any())->method('getPreviewFilename')->will($this->returnValue('/media.pdf.jpg'));
     $media = new Media();
     $media->setUrl('/path/to/media.pdf');
     $this->assertNull($this->object->getImageUrl($media, '/basepath'));
     $previewFilename = sys_get_temp_dir() . '/media.pdf.jpg';
     $fileSystem = new Filesystem();
     $fileSystem->touch($previewFilename);
     $media->setUrl('/media.pdf');
     $this->object->setWebPath(sys_get_temp_dir());
     $this->assertEquals('/media.pdf.jpg', $this->object->getImageUrl($media, ''));
     $fileSystem->remove($previewFilename);
 }
 /**
  * @param File $file
  */
 public function setFile(File $file)
 {
     $this->file = $file;
     $this->media->setContent($file);
     $this->media->setContentType($file->getMimeType());
     $this->media->setUrl('/uploads/media/' . $this->media->getUuid() . '.' . $this->media->getContent()->getExtension());
 }
 /**
  * @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);
     }
     $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;
     }
 }
 private function validateDimensions(MediaObject $value, Media $constraint)
 {
     $height = $value->getMetadataValue('original_height');
     $width = $value->getMetadataValue('original_width');
     if ($constraint->minHeight) {
         if (!ctype_digit((string) $constraint->minHeight)) {
             throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum height', $constraint->minHeight));
         }
         if ($height < $constraint->minHeight) {
             $this->context->buildViolation($constraint->minHeightMessage)->setParameter('{{ height }}', $height)->setParameter('{{ min_height }}', $constraint->minHeight)->setCode(Media::TOO_LOW_ERROR)->addViolation();
             return;
         }
     }
     if ($constraint->maxHeight) {
         if (!ctype_digit((string) $constraint->maxHeight)) {
             throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum height', $constraint->maxHeight));
         }
         if ($height > $constraint->maxHeight) {
             $this->context->buildViolation($constraint->maxHeightMessage)->setParameter('{{ height }}', $height)->setParameter('{{ max_height }}', $constraint->maxHeight)->setCode(Media::TOO_HIGH_ERROR)->addViolation();
             return;
         }
     }
     if ($constraint->minWidth) {
         if (!ctype_digit((string) $constraint->minWidth)) {
             throw new ConstraintDefinitionException(sprintf('"%s" is not a valid minimum width', $constraint->minWidth));
         }
         if ($width < $constraint->minWidth) {
             $this->context->buildViolation($constraint->minWidthMessage)->setParameter('{{ width }}', $width)->setParameter('{{ min_width }}', $constraint->minWidth)->setCode(Media::TOO_NARROW_ERROR)->addViolation();
             return;
         }
     }
     if ($constraint->maxWidth) {
         if (!ctype_digit((string) $constraint->maxWidth)) {
             throw new ConstraintDefinitionException(sprintf('"%s" is not a valid maximum width', $constraint->maxWidth));
         }
         if ($width > $constraint->maxWidth) {
             $this->context->buildViolation($constraint->maxWidthMessage)->setParameter('{{ width }}', $width)->setParameter('{{ max_width }}', $constraint->maxWidth)->setCode(Media::TOO_WIDE_ERROR)->addViolation();
             return;
         }
     }
 }
 /**
  * @covers Kunstmaan\MediaBundle\Helper\File\FileHelper::getMedia
  */
 public function testGetMedia()
 {
     $this->media->setId(1);
     $media = $this->object->getMedia();
     $this->assertEquals($this->media, $media);
 }
 /**
  * @param Folder $folder
  */
 public function setFolder(Folder $folder)
 {
     $this->media->setFolder($folder);
 }
 /**
  * @param mixed $data
  *
  * @return Media
  */
 public function createNew($data)
 {
     if ($data instanceof File) {
         /** @var $data File */
         $media = new Media();
         if (method_exists($data, 'getClientOriginalName')) {
             $media->setOriginalFilename($data->getClientOriginalName());
         } else {
             $media->setOriginalFilename($data->getFilename());
         }
         $media->setContent($data);
         $contentType = $this->mimeTypeGuesser->guess($media->getContent()->getPathname());
         $media->setContentType($contentType);
         return $media;
     }
     return null;
 }
Esempio n. 15
0
 /**
  * @covers Kunstmaan\MediaBundle\Entity\Media::getDescription
  * @covers Kunstmaan\MediaBundle\Entity\Media::setDescription
  */
 public function testGetSetDescription()
 {
     $this->object->setDescription('Description of this picture');
     $this->assertEquals('Description of this picture', $this->object->getDescription());
 }
Esempio n. 16
0
 /**
  *
  *
  * @param Media $media
  * @return string
  */
 private function getFilePath(Media $media)
 {
     $filename = $media->getOriginalFilename();
     $filename = str_replace(array('/', '\\', '%'), '', $filename);
     if (!empty($this->blacklistedExtensions)) {
         $filename = preg_replace('/\\.(' . join('|', $this->blacklistedExtensions) . ')$/', '.txt', $filename);
     }
     $parts = pathinfo($filename);
     $filename = $this->slugifier->slugify($parts['filename']);
     if (array_key_exists('extension', $parts)) {
         $filename .= '.' . strtolower($parts['extension']);
     }
     return sprintf('%s/%s', $media->getUuid(), $filename);
 }
 public function exists(Media $media)
 {
     return $this->storage->doesObjectExist($this->bucketName, ltrim(parse_url($media->getUrl(), PHP_URL_PATH), '/'));
 }
Esempio n. 18
0
 /**
  * @covers Kunstmaan\MediaBundle\Entity\Folder::getMedia
  */
 public function testGetMedia()
 {
     $media = new Media();
     $this->object->addMedia($media);
     $deletedMedia = new Media();
     $deletedMedia->setDeleted(true);
     $this->object->addMedia($deletedMedia);
     $this->assertCount(1, $this->object->getMedia());
     $this->assertCount(1, $this->object->getMedia(false));
     $this->assertCount(2, $this->object->getMedia(true));
     $folderMedia = $this->object->getMedia(false);
     $this->assertContains($media, $folderMedia);
     $this->assertNotContains($deletedMedia, $folderMedia);
     $folderMedia = $this->object->getMedia(true);
     $this->assertContains($media, $folderMedia);
     $this->assertContains($deletedMedia, $folderMedia);
 }
Esempio n. 19
0
 /**
  * @param Media  $media    The media entity
  * @param string $basepath The base path
  *
  * @return string
  */
 public function getImageUrl(Media $media, $basepath)
 {
     return $basepath . $media->getUrl();
 }