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