/** * Update widevine asset properties * If flavorAssetId is not set find asset by entryID and flavorParamsId * * @param string $entryId * @param SimpleXMLElement $widevineAssetElm */ private function handleWidevineAsset($entryId, SimpleXMLElement $widevineAssetElm) { $widevineAsset = new KalturaWidevineFlavorAsset(); $widevineAsset->widevineAssetId = $widevineAssetElm->widevineAssetId; if ($widevineAssetElm->widevineDistributionStartDate) { $widevineAsset->widevineDistributionStartDate = KBulkUploadEngine::parseFormatedDate((string) $widevineAssetElm->widevineDistributionStartDate); } if ($widevineAssetElm->widevineDistributionEndDate) { $widevineAsset->widevineDistributionEndDate = KBulkUploadEngine::parseFormatedDate((string) $widevineAssetElm->widevineDistributionEndDate); } $flavorAssetId = null; if (isset($widevineAssetElm['flavorAssetId'])) { $flavorAssetId = $widevineAssetElm['flavorAssetId']; } if (!$flavorAssetId) { $flavorParamsId = $widevineAssetElm->flavorParamsId; $filter = new KalturaAssetFilter(); $filter->entryIdEqual = $entryId; $flavorAssetList = KBatchBase::$kClient->flavorAsset->listAction($filter); if ($flavorAssetList->objects) { foreach ($flavorAssetList->objects as $flavorAsset) { if ($flavorAsset->flavorParamsId == $flavorParamsId) { $flavorAssetId = $flavorAsset->id; } } } } if ($flavorAssetId) { KalturaLog::debug("updating flavor asset: " . $flavorAssetId); KBatchBase::$kClient->flavorAsset->update($flavorAssetId, $widevineAsset); } }
public function handleDistribution($entryId, SimpleXMLElement $distribution) { $distributionProfileId = null; if (!empty($distribution->distributionProfileId)) { $distributionProfileId = (int) $distribution->distributionProfileId; } if (!$distributionProfileId && (!empty($distribution->distributionProfile) || !empty($distribution->distributionProvider))) { $distributionProfileId = $this->getDistributionProfileId($distribution->distributionProfile, $distribution->distributionProvider); } if (!$distributionProfileId) { throw new KalturaBatchException("Missing custom data distributionProfile attribute", KalturaBatchJobAppErrors::BULK_MISSING_MANDATORY_PARAMETER); } $distributionPlugin = KalturaContentDistributionClientPlugin::get($this->xmlBulkUploadEngine->getClient()); $entryDistributionFilter = new KalturaEntryDistributionFilter(); $entryDistributionFilter->distributionProfileIdEqual = $distributionProfileId; $entryDistributionFilter->entryIdEqual = $entryId; $pager = new KalturaFilterPager(); $pager->pageSize = 1; $entryDistributionResponse = $distributionPlugin->entryDistribution->listAction($entryDistributionFilter, $pager); $entryDistribution = new KalturaEntryDistribution(); $entryDistributionId = null; if (is_array($entryDistributionResponse->objects) && count($entryDistributionResponse->objects) > 0) { $existingEntryDistribution = reset($entryDistributionResponse->objects); $entryDistributionId = $existingEntryDistribution->id; } else { $entryDistribution->entryId = $entryId; $entryDistribution->distributionProfileId = $distributionProfileId; } if (!empty($distribution->sunrise) && KBulkUploadEngine::isFormatedDate($distribution->sunrise)) { $entryDistribution->sunrise = KBulkUploadEngine::parseFormatedDate($distribution->sunrise); } if (!empty($distribution->sunset) && KBulkUploadEngine::isFormatedDate($distribution->sunset)) { $entryDistribution->sunset = KBulkUploadEngine::parseFormatedDate($distribution->sunset); } if (!empty($distribution->flavorAssetIds)) { $entryDistribution->flavorAssetIds = $distribution->flavorAssetIds; } if (!empty($distribution->thumbAssetIds)) { $entryDistribution->thumbAssetIds = $distribution->thumbAssetIds; } $submitWhenReady = false; if ($distribution['submitWhenReady']) { $submitWhenReady = true; } $this->xmlBulkUploadEngine->impersonate(); if ($entryDistributionId) { $updatedEntryDistribution = $distributionPlugin->entryDistribution->update($entryDistributionId, $entryDistribution); if ($submitWhenReady && $updatedEntryDistribution->dirtyStatus == KalturaEntryDistributionFlag::UPDATE_REQUIRED) { $distributionPlugin->entryDistribution->submitUpdate($entryDistributionId); } } else { $createdEntryDistribution = $distributionPlugin->entryDistribution->add($entryDistribution); $distributionPlugin->entryDistribution->submitAdd($createdEntryDistribution->id, $submitWhenReady); } $this->xmlBulkUploadEngine->unimpersonate(); }