예제 #1
0
 public static function fromSearchResultArray($arr, KalturaSearch $search)
 {
     $newArr = new KalturaSearchResultArray();
     foreach ($arr as $obj) {
         $nObj = new KalturaSearchResult();
         $nObj->fromSearchResult($obj, $search);
         $newArr[] = $nObj;
     }
     return $newArr;
 }
 function getMediaInfo(KalturaSearchResult $searchResult)
 {
     $kparams = array();
     $this->client->addParam($kparams, "searchResult", $searchResult->toParams());
     $this->client->queueServiceActionCall("search", "getMediaInfo", $kparams);
     if ($this->client->isMultiRequest()) {
         return null;
     }
     $resultObject = $this->client->doQueue();
     $this->client->throwExceptionIfError($resultObject);
     $this->client->validateObjectType($resultObject, "KalturaSearchResult");
     return $resultObject;
 }
예제 #3
0
 /**
  * Search for media given a specific URL
  * Kaltura supports a searchURL action on some of the media providers.
  * This action will return a KalturaSearchResult object based on a given URL (assuming the media provider is supported)
  * 
  * @action searchUrl
  * @param KalturaMediaType $mediaType
  * @param string $url
  * @return KalturaSearchResult
  *
  * @throws APIErrors::SEARCH_UNSUPPORTED_MEDIA_SOURCE_FOR_URL
  */
 public function searchUrlAction($mediaType, $url)
 {
     list($mediaSourceProvider, $objId) = myMediaSourceFactory::getMediaSourceAndObjectDataByUrl($mediaType, $url);
     if (!$mediaSourceProvider) {
         throw new KalturaAPIException(APIErrors::SEARCH_UNSUPPORTED_MEDIA_SOURCE_FOR_URL, $url);
     }
     $result = $mediaSourceProvider->getMediaInfo($mediaType, $objId);
     $newSearchResult = new KalturaSearchResult();
     $search = new KalturaSearch();
     $newSearchResult->fromSearchResult($result['objectInfo'], $search);
     return $newSearchResult;
 }
예제 #4
0
 /**
  * Adds new media entry by importing the media file from a search provider. 
  * This action should be used with the search service result.
  *
  * @action addFromSearchResult
  * @param KalturaMediaEntry $mediaEntry Media entry metadata
  * @param KalturaSearchResult $searchResult Result object from search service
  * @return KalturaMediaEntry The new media entry
  * 
  * @throws KalturaErrors::PROPERTY_VALIDATION_MIN_LENGTH
  * @throws KalturaErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL
  */
 function addFromSearchResultAction(KalturaMediaEntry $mediaEntry = null, KalturaSearchResult $searchResult = null)
 {
     if ($mediaEntry === null) {
         $mediaEntry = new KalturaMediaEntry();
     }
     if ($searchResult === null) {
         $searchResult = new KalturaSearchResult();
     }
     // copy the fields from search result if they are missing in media entry
     // this should be checked before prepareEntry method call
     if ($mediaEntry->name === null) {
         $mediaEntry->name = $searchResult->title;
     }
     if ($mediaEntry->mediaType === null) {
         $mediaEntry->mediaType = $searchResult->mediaType;
     }
     if ($mediaEntry->description === null) {
         $mediaEntry->description = $searchResult->description;
     }
     if ($mediaEntry->creditUrl === null) {
         $mediaEntry->creditUrl = $searchResult->sourceLink;
     }
     if ($mediaEntry->creditUserName === null) {
         $mediaEntry->creditUserName = $searchResult->credit;
     }
     if ($mediaEntry->tags === null) {
         $mediaEntry->tags = $searchResult->tags;
     }
     $searchResult->validatePropertyNotNull("searchSource");
     $mediaEntry->sourceType = KalturaSourceType::SEARCH_PROVIDER;
     $mediaEntry->searchProviderType = $searchResult->searchSource;
     $mediaEntry->searchProviderId = $searchResult->id;
     $dbEntry = $this->prepareEntryForInsert($mediaEntry);
     $dbEntry->setSourceId($searchResult->id);
     $kshowId = $dbEntry->getKshowId();
     // $searchResult->licenseType; // FIXME, No support for licenseType
     // FIXME - no need to clone entry if $dbEntry->getSource() == entry::ENTRY_MEDIA_SOURCE_KALTURA_USER_CLIPS
     if ($dbEntry->getSource() == entry::ENTRY_MEDIA_SOURCE_KALTURA || $dbEntry->getSource() == entry::ENTRY_MEDIA_SOURCE_KALTURA_PARTNER || $dbEntry->getSource() == entry::ENTRY_MEDIA_SOURCE_KALTURA_PARTNER_KSHOW || $dbEntry->getSource() == entry::ENTRY_MEDIA_SOURCE_KALTURA_KSHOW || $dbEntry->getSource() == entry::ENTRY_MEDIA_SOURCE_KALTURA_USER_CLIPS) {
         $sourceEntryId = $searchResult->id;
         $copyDataResult = myEntryUtils::copyData($sourceEntryId, $dbEntry);
         if (!$copyDataResult) {
             // will be false when the entry id was not found
             throw new KalturaAPIException(KalturaErrors::ENTRY_ID_NOT_FOUND, $sourceEntryId);
         }
         $dbEntry->setStatusReady();
         $dbEntry->save();
     } else {
         // setup the needed params for my insert entry helper
         $paramsArray = array("entry_media_source" => $dbEntry->getSource(), "entry_media_type" => $dbEntry->getMediaType(), "entry_url" => $searchResult->url, "entry_license" => $dbEntry->getLicenseType(), "entry_credit" => $dbEntry->getCredit(), "entry_source_link" => $dbEntry->getSourceLink(), "entry_tags" => $dbEntry->getTags());
         $token = $this->getKsUniqueString();
         $insert_entry_helper = new myInsertEntryHelper(null, $dbEntry->getKuserId(), $kshowId, $paramsArray);
         $insert_entry_helper->setPartnerId($this->getPartnerId(), $this->getPartnerId() * 100);
         $insert_entry_helper->insertEntry($token, $dbEntry->getType(), $dbEntry->getId(), $dbEntry->getName(), $dbEntry->getTags(), $dbEntry);
         $dbEntry = $insert_entry_helper->getEntry();
     }
     myNotificationMgr::createNotification(kNotificationJobData::NOTIFICATION_TYPE_ENTRY_ADD, $dbEntry);
     $mediaEntry->fromObject($dbEntry);
     return $mediaEntry;
 }
예제 #5
0
 function getMediaInfo(KalturaSearchResult $searchResult)
 {
     $kparams = array();
     $this->client->addParam($kparams, "searchResult", $searchResult->toParams());
     $resultObject = $this->client->callService("search", "getMediaInfo", $kparams);
     $this->client->throwExceptionIfError($resultObject);
     $this->client->validateObjectType($resultObject, "KalturaSearchResult");
     return $resultObject;
 }