public function testGetterAndSetter() { $tags = array('tag_a', 'tag_b'); $url = '/mnt/video/123/23435.mp4'; $path = '/mnt/video/123/23435.mp4'; $mime = 'image/jpg'; $size = 3456; $width = 800; $height = 600; $hide = true; // Change assertTrue accordingly. $pic = new Pic(); $pic->setTags($tags); $pic->setUrl($url); $pic->setPath($path); $pic->setMimeType($mime); $pic->setSize($size); $pic->setWidth($width); $pic->setHeight($height); $pic->setHide($hide); $this->assertEquals($tags, $pic->getTags()); $this->assertEquals($url, $pic->getUrl()); $this->assertEquals($path, $pic->getPath()); $this->assertEquals($mime, $pic->getMimeType()); $this->assertEquals($size, $pic->getSize()); $this->assertEquals($width, $pic->getWidth()); $this->assertEquals($height, $pic->getHeight()); $this->assertTrue($pic->getHide()); }
public function importRecording($opencastId, $invert = false) { $mediaPackage = $this->opencastClient->getMediaPackage($opencastId); $seriesRepo = $this->dm->getRepository('PumukitSchemaBundle:Series'); if (isset($mediaPackage["series"])) { $series = $seriesRepo->findOneBy(array("properties.opencast" => $mediaPackage["series"])); } else { $series = $seriesRepo->findOneBy(array("properties.opencast" => "default")); } if (!$series) { $series = $this->importSeries($mediaPackage); } $multimediaobjectsRepo = $this->dm->getRepository('PumukitSchemaBundle:MultimediaObject'); $onemultimediaobjects = $multimediaobjectsRepo->findOneBy(array("properties.opencast" => $mediaPackage["id"])); if ($onemultimediaobjects == null) { $title = $mediaPackage["title"]; $properties = $mediaPackage["id"]; $recDate = $mediaPackage["start"]; $multimediaObject = $this->factoryService->createMultimediaObject($series); $multimediaObject->setSeries($series); $multimediaObject->setRecordDate($recDate); $multimediaObject->setProperty("opencast", $properties); $multimediaObject->setProperty("opencastinvert", boolval($invert)); $multimediaObject->setProperty("opencasturl", $this->opencastClient->getPlayerUrl() . "?id=" . $properties); $multimediaObject->setTitle($title); if (isset($mediaPackage["language"])) { $multimediaObject->setProperty("opencastlanguage", strtolower($mediaPackage["language"])); } else { $multimediaObject->setProperty("opencastlanguage", 'en'); } foreach ($this->otherLocales as $locale) { $multimediaObject->setTitle($title, $locale); } //Multiple tracks if (isset($mediaPackage["media"]["track"][0])) { for ($i = 0; $i < count($mediaPackage["media"]["track"]); $i++) { $tags = $mediaPackage["media"]["track"][$i]["tags"]; $url = $mediaPackage["media"]["track"][$i]["url"]; $mime = $mediaPackage["media"]["track"][$i]["mimetype"]; $duration = $mediaPackage["media"]["track"][$i]["duration"]; $track = new Track(); if (isset($mediapackage["media"]["track"][$i]["audio"])) { $acodec = $mediaPackage["media"]["track"][$i]["audio"]["encoder"]["type"]; $track->setAcodec($acodec); } if (isset($mediaPackage["language"])) { $track->setLanguage(strtolower($mediaPackage["language"])); } if (isset($mediaPackage["media"]["track"][$i]["video"])) { $vcodec = $mediaPackage["media"]["track"][$i]["video"]["encoder"]["type"]; $track->setVcodec($vcodec); $framerate = $mediaPackage["media"]["track"][$i]["video"]["framerate"]; $track->setFramerate($framerate); } if (!$track->getVcodec() && $track->getAcodec()) { $track->setOnlyAudio(true); } $track->addTag("opencast"); $track->addTag($mediaPackage["media"]["track"][$i]["type"]); $track->setUrl($url); $track->setPath($this->opencastService->getPath($url)); $track->setMimeType($mime); $track->setDuration($duration / 1000); $this->inspectionService->autocompleteTrack($track); $multimediaObject->setDuration($track->getDuration()); $multimediaObject->addTrack($track); } } else { $tags = $mediaPackage["media"]["track"]["tags"]; $url = $mediaPackage["media"]["track"]["url"]; $mime = $mediaPackage["media"]["track"]["mimetype"]; $duration = $mediaPackage["media"]["track"]["duration"]; $track = new Track(); if (isset($mediapackage["media"]["track"]["audio"])) { $acodec = $mediaPackage["media"]["track"]["audio"]["encoder"]["type"]; $track->setAcodec($acodec); } if (isset($mediaPackage["media"]["track"]["video"])) { $vcodec = $mediaPackage["media"]["track"]["video"]["encoder"]["type"]; $track->setVcodec($vcodec); $framerate = $mediaPackage["media"]["track"]["video"]["framerate"]; $track->setFramerate($framerate); } if (!$track->getVcodec() && $track->getAcodec()) { $track->setOnlyAudio(true); } $track->addTag("opencast"); $track->addTag($mediaPackage["media"]["track"]["type"]); $track->setUrl($url); $track->setPath($this->opencastService->getPath($url)); $track->setMimeType($mime); $track->setDuration($duration / 1000); $this->inspectionService->autocompleteTrack($track); $multimediaObject->setDuration($track->getDuration()); $multimediaObject->addTrack($track); } for ($j = 0; $j < count($mediaPackage["attachments"]["attachment"]); $j++) { if (isset($mediaPackage["attachments"]["attachment"][$j]["type"])) { if ($mediaPackage["attachments"]["attachment"][$j]["type"] == "presenter/search+preview") { $tags = $mediaPackage["attachments"]["attachment"][$j]["tags"]; $url = $mediaPackage["attachments"]["attachment"][$j]["url"]; $pic = new Pic(); $pic->setTags(array($tags)); $pic->setUrl($url); $multimediaObject->addPic($pic); } } } $tagRepo = $this->dm->getRepository('PumukitSchemaBundle:Tag'); $opencastTag = $tagRepo->findOneByCod('TECHOPENCAST'); if ($opencastTag) { $tagService = $this->tagService; $tagAdded = $tagService->addTagToMultimediaObject($multimediaObject, $opencastTag->getId()); } $this->dm->persist($multimediaObject); $this->dm->flush(); if ($track) { $opencastUrls = $this->getOpencastUrls($opencastId); $this->opencastService->genSbs($multimediaObject, $opencastUrls); } } }
public function testGetPicsWithTag() { $mm = new MultimediaObject(); $p1 = new Pic(); $p1->setTags(array('master')); $p2 = new Pic(); $p2->setTags(array('master', 'mosca', 'old')); $p3 = new Pic(); $p3->setTags(array('master', 'mosca')); $p4 = new Pic(); $p4->setTags(array('flv', 'itunes', 'hide')); $p5 = new Pic(); $p5->setTags(array('flv', 'webtv')); $mm->addPic($p3); $mm->addPic($p2); $mm->addPic($p1); $mm->addPic($p4); $mm->addPic($p5); $this->assertEquals(array($p3, $p2, $p1), $mm->getPicsWithTag('master')); $this->assertEquals($p3, $mm->getPicWithTag('master')); $this->assertEquals(null, $mm->getPicWithTag('del_universo')); $this->assertEquals($p3, $mm->getPicWithAnyTag(array('master', 'pr'))); $this->assertEquals(array($p2), $mm->getPicsWithAllTags(array('master', 'mosca', 'old'))); $this->assertTrue(in_array($mm->getPicWithAllTags(array('mosca', 'master')), array($p3, $p2))); $this->assertEquals(null, $mm->getPicWithAllTags(array('mosca', 'master', 'del_universo'))); $this->assertEquals(4, count($mm->getPicsWithAnyTag(array('master', 'webtv')))); $this->assertEquals(1, count($mm->getPicWithAnyTag(array('master')))); $this->assertEquals(null, $mm->getPicWithAnyTag(array('del_universo'))); $this->assertEquals(5, count($mm->getFilteredPicsWithTags())); $this->assertEquals(3, count($mm->getFilteredPicsWithTags(array('master')))); $this->assertEquals(1, count($mm->getFilteredPicsWithTags(array('master'), array('mosca', 'old')))); $this->assertEquals(0, count($mm->getFilteredPicsWithTags(array(), array('mosca', 'old'), array('master')))); $this->assertEquals(3, count($mm->getFilteredPicsWithTags(array(), array(), array('flv')))); $this->assertEquals(0, count($mm->getFilteredPicsWithTags(array(), array(), array('flv', 'master')))); $this->assertEquals(5, count($mm->getFilteredPicsWithTags(array(), array(), array(), array('flv', 'master')))); $this->assertEquals(1, count($mm->getFilteredPicsWithTags(array('mosca', 'old'), array(), array(), array('old')))); }