/** * @return KalturaCuePointClientPlugin */ public static function get(KalturaClient $client) { if (!self::$instance) { self::$instance = new KalturaCuePointClientPlugin($client); } return self::$instance; }
/** * Sync target objects * @param KalturaDistributionJobData $jobData * @param CrossKalturaEntryObjectsContainer $targetObjects */ protected function sync(KalturaDistributionJobData $jobData, CrossKalturaEntryObjectsContainer $targetObjects) { $syncedObjects = new CrossKalturaEntryObjectsContainer(); $targetEntryId = $jobData->remoteId; // add/update entry if ($targetEntryId) { // update entry KalturaLog::info('Updating target entry id [' . $targetEntryId . ']'); $syncedObjects->entry = $this->targetClient->baseEntry->update($targetEntryId, $targetObjects->entry); } else { // add entry $syncedObjects->entry = $this->targetClient->baseEntry->add($targetObjects->entry); $targetEntryId = $syncedObjects->entry->id; KalturaLog::info('New target entry added with id [' . $targetEntryId . ']'); } $this->targetEntryId = $targetEntryId; // sync metadata objects foreach ($targetObjects->metadataObjects as $metadataObj) { /* @var $metadataObj KalturaMetadata */ $metadataObj->objectId = $targetEntryId; } $targetMetadataClient = KalturaMetadataClientPlugin::get($this->targetClient); $syncedObjects->metadataObjects = $this->syncTargetEntryObjects($targetMetadataClient->metadata, $targetObjects->metadataObjects, $this->sourceObjects->metadataObjects, $jobData->providerData->distributedMetadata, $targetEntryId, 'getMetadataAddArgs', 'getMetadataUpdateArgs'); // sync flavor assets $syncedObjects->flavorAssets = $this->syncTargetEntryObjects($this->targetClient->flavorAsset, $targetObjects->flavorAssets, $this->sourceObjects->flavorAssets, $jobData->providerData->distributedFlavorAssets, $targetEntryId); // sync flavor content $this->syncAssetsContent($this->targetClient->flavorAsset, $targetObjects->flavorAssetsContent, $syncedObjects->flavorAssets, $jobData->providerData->distributedFlavorAssets, $this->sourceObjects->flavorAssets); // sync thumbnail assets $syncedObjects->thumbAssets = $this->syncTargetEntryObjects($this->targetClient->thumbAsset, $targetObjects->thumbAssets, $this->sourceObjects->thumbAssets, $jobData->providerData->distributedThumbAssets, $targetEntryId); // sync thumbnail content $this->syncAssetsContent($this->targetClient->thumbAsset, $targetObjects->thumbAssetsContent, $syncedObjects->thumbAssets, $jobData->providerData->distributedThumbAssets, $this->sourceObjects->thumbAssets); // sync caption assets if ($this->distributeCaptions) { $targetCaptionClient = KalturaCaptionClientPlugin::get($this->targetClient); $syncedObjects->captionAssets = $this->syncTargetEntryObjects($targetCaptionClient->captionAsset, $targetObjects->captionAssets, $this->sourceObjects->captionAssets, $jobData->providerData->distributedCaptionAssets, $targetEntryId); // sync caption content $this->syncAssetsContent($targetCaptionClient->captionAsset, $targetObjects->captionAssetsContent, $syncedObjects->captionAssets, $jobData->providerData->distributedCaptionAssets, $this->sourceObjects->captionAssets); } // sync cue points if ($this->distributeCuePoints) { foreach ($targetObjects->cuePoints as $cuePoint) { /* @var $cuePoint KalturaCuePoint */ $cuePoint->entryId = $targetEntryId; } $targetCuePointClient = KalturaCuePointClientPlugin::get($this->targetClient); $syncedObjects->cuePoints = $this->syncTargetEntryObjects($targetCuePointClient->cuePoint, $targetObjects->cuePoints, $this->sourceObjects->cuePoints, $jobData->providerData->distributedCuePoints, $targetEntryId, 'getCuePointAddArgs'); } return $syncedObjects; }
public function handleItemUpdated(KalturaObjectBase $object, SimpleXMLElement $item) { if (!$object instanceof KalturaBaseEntry) { return; } if (empty($item->scenes)) { return; } $action = KBulkUploadEngine::$actionsMap[KalturaBulkUploadAction::UPDATE]; if (isset($item->scenes->action)) { $action = strtolower($item->scenes->action); } switch ($action) { case KBulkUploadEngine::$actionsMap[KalturaBulkUploadAction::UPDATE]: break; default: throw new KalturaBatchException("scenes->action: {$action} is not supported", KalturaBatchJobAppErrors::BULK_ACTION_NOT_SUPPORTED); } $this->entryId = $object->id; $this->cuePointPlugin = KalturaCuePointClientPlugin::get(KBatchBase::$kClient); KBatchBase::impersonate($this->xmlBulkUploadEngine->getCurrentPartnerId()); $this->getExistingCuePointsBySystemName($this->entryId); KBatchBase::$kClient->startMultiRequest(); $items = array(); foreach ($item->scenes->children() as $scene) { if ($this->updateCuePoint($scene)) { $items[] = $scene; } } $results = KBatchBase::$kClient->doMultiRequest(); KBatchBase::unimpersonate(); if (is_array($results) && is_array($items)) { $this->handleResults($results, $items); } }
/* @var $baseEntryList KalturaBaseEntryListResponse */ $entry = $baseEntryList->objects[0]; /* @var $entry KalturaMediaEntry */ } $client->baseEntry->getContextData($entry->id, $contextDataParams); if (isset($options['list-flavors'])) { $flavorAssetFilter = new KalturaFlavorAssetFilter(); $flavorAssetFilter->entryIdEqual = $entry->id; $flavorAssetFilter->statusEqual = KalturaFlavorAssetStatus::READY; $client->flavorAsset->listAction($flavorAssetFilter); } if (isset($options['list-cue-points'])) { $cuePointFilter = new KalturaCuePointFilter(); $cuePointFilter->entryIdEqual = $entry->id; $cuePointFilter->statusEqual = KalturaCuePointStatus::READY; $cuePointPlugin = KalturaCuePointClientPlugin::get($client); $cuePointPlugin->cuePoint->listAction($cuePointFilter); } if (isset($options['list-metadata'])) { $metadataFilter = new KalturaMetadataFilter(); $metadataFilter->entryIdEqual = $entry->id; $metadataFilter->statusEqual = KalturaMetadataStatus::VALID; $metadataPlugin = KalturaMetadataClientPlugin::get($client); $metadataPlugin->metadata->listAction($metadataFilter); } $requestStart = microtime(true); $apiCall = 'multi-request'; $responses = $client->doMultiRequest(); $requestEnd = microtime(true); foreach ($responses as $response) { if (is_array($response) && isset($response['message']) && isset($response['code'])) {