diff --git a/plugin/CDN/CDN.php b/plugin/CDN/CDN.php index c27a32b22..d71babba7 100644 --- a/plugin/CDN/CDN.php +++ b/plugin/CDN/CDN.php @@ -1,249 +1,240 @@ key = ""; $obj->CDN = ""; $obj->CDN_S3 = ""; $obj->CDN_B2 = ""; $obj->CDN_FTP = ""; // this is a JSON with site_id + URL $obj->CDN_YPTStorage = ""; // array $obj->CDN_Live = ""; // this is a JSON with servers_id + URL $obj->CDN_LiveServers = ""; // array $obj->enable_storage = false; $obj->storage_autoupload_new_videos = true; $obj->storage_users_can_choose_storage = true; $obj->storage_username = ""; $obj->storage_password = ""; $obj->storage_hostname = ""; return $obj; } public function getVideosManagerListButton() { if(!self::userCanMoveVideoStorage()){ return ''; } $btn = ''; return $btn; } public function getPluginMenu() { global $global; $fileAPIName = $global['systemRootPath'] . 'plugin/CDN/pluginMenu.html'; $content = file_get_contents($fileAPIName); $obj = $this->getDataObject(); $url = "https://youphp.tube/marketplace/CDN/iframe.php?hash={hash}"; $url = addQueryStringParameter($url, 'hash', $obj->key); $url = addQueryStringParameter($url, 'webSiteRootURL', $global['webSiteRootURL']); $cdnMenu = str_replace('{url}', $url, $content); $storageMenu = ''; if(self::userCanMoveVideoStorage()){ $fileStorageMenu = $global['systemRootPath'] . 'plugin/CDN/Storage/pluginMenu.html'; $storageMenu = file_get_contents($fileStorageMenu); } return $cdnMenu.$storageMenu; } /** * * @param type $type enum(CDN, CDN_S3,CDN_B2,CDN_YPTStorage,CDN_Live,CDN_LiveServers) * @param type $id the ID of the URL in case the CDN is an array * @return boolean */ static public function getURL($type = 'CDN', $id = 0) { $obj = AVideoPlugin::getObjectData('CDN'); if (empty($obj->{$type})) { return false; } if (isIPPrivate(getDomain())) { _error_log('The CDN will not work under a private network $type=' . $type); return false; } $url = ''; switch ($type) { case 'CDN': case 'CDN_S3': case 'CDN_B2': case 'CDN_FTP': case 'CDN_Live': $url = $obj->{$type}; break; case 'CDN_LiveServers': case 'CDN_YPTStorage': if (!empty($id)) { $json = _json_decode($obj->{$type}); //var_dump(!empty($json), is_object($json), is_array($json));//exit; if (!empty($json) && (is_object($json) || is_array($json))) { foreach ($json as $value) { if ($value->id == $id) { $url = $value->URLToCDN; break; } } } } //var_dump($url);exit; break; } if (!empty($url) && isValidURL($url)) { return addLastSlash($url); } return false; } static function getCDN_S3URL() { $plugin = AVideoPlugin::getDataObjectIfEnabled('AWS_S3'); $CDN_S3 = ''; if (!empty($plugin)) { $region = trim($plugin->region); $bucket_name = trim($plugin->bucket_name); $endpoint = trim($plugin->endpoint); if (!empty($endpoint)) { $CDN_S3 = str_replace('https://', "https://{$bucket_name}.", $endpoint); } else if (!empty($plugin->region)) { $CDN_S3 = "https://{$bucket_name}.s3-accesspoint.{$region}.amazonaws.com"; } if (!empty($resp->CDN_S3)) { $CDN_S3 = addLastSlash($resp->CDN_S3); } } return $CDN_S3; } static function getCDN_B2URL() { $CDN_B2 = ''; $plugin = AVideoPlugin::getDataObjectIfEnabled('Blackblaze_B2'); if (!empty($plugin)) { $b2 = new Blackblaze_B2(); $CDN_B2 = $b2->getEndpoint(); if (!empty($resp->CDN_B2)) { $CDN_B2 = addLastSlash($resp->CDN_B2); } } return $CDN_B2; } static function getCDN_FTPURL() { $CDN_FTP = ''; $plugin = AVideoPlugin::getDataObjectIfEnabled('CDN'); if (!empty($plugin)) { $CDN_FTP = addLastSlash($plugin->endpoint); } return $CDN_FTP; } public static function getVideoTags($videos_id) { global $global; if (empty($videos_id)) { return array(); } if (!Video::canEdit($videos_id)) { return array(); } $video = Video::getVideoLight($videos_id); $sites_id = $video['sites_id']; $obj = new stdClass(); $obj->label = 'Storage'; $isMoving = CDNStorage::isMoving($videos_id); if ($isMoving) { $obj->type = "danger"; $obj->text = ' ' . __('Moving'); } else if (empty($sites_id)) { $obj->type = "success"; $obj->text = ' ' . __('Local'); } else { $obj->type = "warning"; $obj->text = " " . __('Storage'); } //var_dump($obj);exit; return array($obj); } public function onEncoderNotifyIsDone($videos_id) { return $this->processNewVideo($videos_id); } public function onUploadIsDone($videos_id) { return $this->processNewVideo($videos_id); } private function processNewVideo($videos_id) { $obj = AVideoPlugin::getDataObjectIfEnabled('CDN'); if($obj->enable_storage){ if($obj->storage_autoupload_new_videos){ CDNStorage::moveLocalToRemote($videos_id, false); } } } public static function userCanMoveVideoStorage(){ $obj = AVideoPlugin::getDataObjectIfEnabled('CDN'); if(empty($obj->enable_storage)){ return false; } if(User::isAdmin()){ return true; } if (!empty($obj->storage_users_can_choose_storage) && User::canUpload()) { return true; } return false; } - - public function getVideoManagerButton() { - global $global; - - if (true || !self::userCanMoveVideoStorage()) { - return false; - } - include $global['systemRootPath'] . 'plugin/CDN/Storage/getVideoManagerButton.php'; - } } diff --git a/plugin/CDN/Storage/getVideoManagerButton.php b/plugin/CDN/Storage/getVideoManagerButton.php index 0500a450c..2425e52df 100644 --- a/plugin/CDN/Storage/getVideoManagerButton.php +++ b/plugin/CDN/Storage/getVideoManagerButton.php @@ -1,56 +1,85 @@ -
-
-
-
- - -
-
+
+ +
diff --git a/plugin/CDN/Storage/moveLocalToRemote.json.php b/plugin/CDN/Storage/moveLocalToRemote.json.php index 37005fbc9..186c66559 100644 --- a/plugin/CDN/Storage/moveLocalToRemote.json.php +++ b/plugin/CDN/Storage/moveLocalToRemote.json.php @@ -1,40 +1,45 @@ error = true; $obj->msg = ""; $isEnabled = AVideoPlugin::isEnabledByName('CDN'); -if(!$isEnabled){ +if (!$isEnabled) { $obj->msg = "CDN is disabled"; die(json_encode($obj)); } -if(empty($_REQUEST['videos_id'])){ +if (empty($_REQUEST['videos_id'])) { $_REQUEST['videos_id'] = intval(@$argv[1]); } if (empty($_REQUEST['videos_id'])) { $obj->msg = "Video ID is empty"; die(json_encode($obj)); } - -if(!isCommandLineInterface()){ - if(!Video::canEdit($_REQUEST['videos_id'])){ - $obj->msg = "Command line only"; - die(json_encode($obj)); - } +if (!is_array($_REQUEST['videos_id'])) { + $_REQUEST['videos_id'] = array($_REQUEST['videos_id']); } -$obj->error = false; -_error_log('Start to move file '.$_REQUEST['videos_id']); -$obj->response = CDNStorage::moveLocalToRemote($_REQUEST['videos_id']); +_error_log('Start to move file ' . $videos_id); +foreach ($_REQUEST['videos_id'] as $videos_id) { + if (!isCommandLineInterface()) { + if (!Video::canEdit($videos_id)) { + $obj->error = true; + $obj->msg = "Command line only"; + die(json_encode($obj)); + } + } -_error_log('Finish to move file '.$_REQUEST['videos_id']); + $obj->error = false; + $obj->response = CDNStorage::moveLocalToRemote($videos_id); +} +_error_log('Finish to move file ' . $videos_id); echo json_encode($obj); diff --git a/plugin/CDN/Storage/moveRemoteToLocal.json.php b/plugin/CDN/Storage/moveRemoteToLocal.json.php index 25e71aa6d..ed48fc04b 100644 --- a/plugin/CDN/Storage/moveRemoteToLocal.json.php +++ b/plugin/CDN/Storage/moveRemoteToLocal.json.php @@ -1,37 +1,47 @@ error = true; $obj->msg = ""; $isEnabled = AVideoPlugin::isEnabledByName('CDN'); if(!$isEnabled){ $obj->msg = "CDN is disabled"; die(json_encode($obj)); } if(empty($_REQUEST['videos_id'])){ $_REQUEST['videos_id'] = intval(@$argv[1]); } if (empty($_REQUEST['videos_id'])) { $obj->msg = "Video ID is empty"; die(json_encode($obj)); } -if(!isCommandLineInterface()){ - if(!Video::canEdit($_REQUEST['videos_id'])){ - $obj->msg = "Command line only"; - die(json_encode($obj)); - } +if (!is_array($_REQUEST['videos_id'])) { + $_REQUEST['videos_id'] = array($_REQUEST['videos_id']); } -$obj->error = false; -$obj->response = CDNStorage::moveRemoteToLocal($_REQUEST['videos_id']); +_error_log('Start to move remote to local ' . $videos_id); +foreach ($_REQUEST['videos_id'] as $videos_id) { + if (!isCommandLineInterface()) { + if (!Video::canEdit($videos_id)) { + $obj->error = true; + $obj->msg = "Command line only"; + die(json_encode($obj)); + } + } + + $obj->error = false; + $obj->response = CDNStorage::moveRemoteToLocal($videos_id); + +} +_error_log('Finish to move remote to local ' . $videos_id); echo json_encode($obj);