コード例 #1
0
 private function execute3rdPartyVideo()
 {
     if (empty($this->mParams['videoId'])) {
         $this->dieUsageMsg('The videoId parameter must be set');
     }
     $duplicate = $this->getVideoDuplicate($this->mParams['provider'], $this->mParams['videoId']);
     if ($duplicate) {
         return array('title' => $duplicate->getTitle()->getText());
     } else {
         $uploader = new VideoFileUploader();
         $title = $uploader->getUniqueTitle(wfStripIllegalFilenameChars($this->mParams['title']));
         $uploader->setProvider($this->mParams['provider']);
         $uploader->setVideoId($this->mParams['videoId']);
         $uploader->setTargetTitle($title->getBaseText());
         $uploader->upload($title);
         return array('title' => $title->getText());
     }
 }
コード例 #2
0
 private function execute3rdPartyVideo()
 {
     if (empty($this->mParams['videoId'])) {
         $this->dieUsageMsg('The videoId parameter must be set');
     }
     $duplicate = $this->getVideoDuplicate($this->mParams['provider'], $this->mParams['videoId']);
     if ($duplicate) {
         return array('title' => $duplicate->getTitle()->getText());
     } else {
         $uploader = new VideoFileUploader();
         $title = $uploader->getUniqueTitle(wfStripIllegalFilenameChars($this->mParams['title']));
         // https://wikia-inc.atlassian.net/browse/VE-1819
         if (!$title) {
             WikiaLogger::instance()->debug('ApiAddMediaPermanent', array('title' => $this->mParams['title']));
         }
         $uploader->setProvider($this->mParams['provider']);
         $uploader->setVideoId($this->mParams['videoId']);
         $uploader->setTargetTitle($title->getBaseText());
         $uploader->upload($title);
         return array('title' => $title->getText());
     }
 }
コード例 #3
0
 function insertFinalVideo()
 {
     global $wgRequest, $wgContLang;
     $id = $wgRequest->getVal('id');
     $provider = $wgRequest->getVal('provider');
     $name = urldecode($wgRequest->getVal('name'));
     $oname = urldecode($wgRequest->getVal('oname'));
     if ('' == $name) {
         $name = $oname;
     }
     $embed_code = '';
     $tag = '';
     $message = '';
     if ($provider == 'FILE') {
         // no need to upload, local reference
         $title = $oTitle = Title::newFromText($name, NS_FILE);
         if (empty($oTitle)) {
             header('X-screen-type: error');
             return wfMsg('vet-name-incorrect');
         }
         wfRunHooks('AddPremiumVideo', array($title));
     } else {
         // needs to upload
         // sanitize name and init title objects
         $name = VideoFileUploader::sanitizeTitle($name);
         if ($name == '') {
             header('X-screen-type: error');
             return wfMsg('vet-warn3');
         }
         $nameFile = VideoFileUploader::sanitizeTitle($name);
         $titleFile = VideoFileUploader::getUniqueTitle($nameFile);
         if (empty($titleFile)) {
             header('X-screen-type: error');
             return wfMsg('vet-name-incorrect');
         }
         // by definition, WikiaFileHelper::useVideoHandlersExtForEmbed() == true
         $nameSanitized = $titleFile->getBaseText();
         $title = $titleFile;
         $extra = 0;
         $metadata = array();
         while ('' != $wgRequest->getVal('metadata' . $extra)) {
             $metadata[] = $wgRequest->getVal('metadata' . $extra);
             $extra++;
         }
         if (!empty($titleFile)) {
             $parts = explode('/', $provider);
             $provider = $parts[1];
             $oTitle = null;
             $status = $this->uploadVideoAsFile($provider, $id, $nameSanitized, $oTitle);
             if (!$status->ok) {
                 header('X-screen-type: error');
                 return wfMsg('wva-thumbnail-upload-failed');
             }
             $message = wfMsg('vet-single-success');
         }
     }
     $ns_vid = $wgContLang->getFormattedNsText($title->getNamespace());
     $caption = $wgRequest->getVal('caption');
     $size = $wgRequest->getVal('size');
     $width = $wgRequest->getVal('width');
     $layout = $wgRequest->getVal('layout');
     header('X-screen-type: summary');
     $tag = $ns_vid . ":" . $oTitle->getText();
     if (!empty($size)) {
         $tag .= "|{$size}";
     }
     if (!empty($layout)) {
         $tag .= "|{$layout}";
     }
     if ($width != 'px') {
         $tag .= "|{$width}";
     }
     if ($caption != '') {
         $tag .= "|" . $caption;
     }
     $tag = "[[{$tag}]]";
     $tmpl = new EasyTemplate(dirname(__FILE__) . '/templates/');
     $tmpl->set_vars(array('tag' => $tag, 'message' => $message, 'code' => $embed_code));
     return $tmpl->render('summary');
 }
コード例 #4
0
 public function getUniqueTitle($title, $level = 0)
 {
     $oTitle = Title::newFromText($title, NS_FILE);
     if (!empty($oTitle) && $oTitle->exists()) {
         $newTitleObject = $oTitle->getBaseText() . '-' . $level;
         return VideoFileUploader::getUniqueTitle($newTitleObject, $level + 1);
     }
     return $oTitle;
 }
コード例 #5
0
 function insertFinalVideo()
 {
     global $wgRequest, $wgContLang;
     $id = $wgRequest->getVal('id');
     $provider = $wgRequest->getVal('provider');
     $name = urldecode($wgRequest->getVal('name'));
     $embed_code = '';
     if ($provider == 'FILE') {
         // no need to upload, local reference
         $title = $oTitle = Title::newFromText($name, NS_FILE);
         if (empty($oTitle)) {
             header('X-screen-type: error');
             return wfMessage('vet-name-incorrect')->plain();
         }
         wfRunHooks('AddPremiumVideo', array($title));
     } else {
         // needs to upload
         // sanitize name and init title objects
         $name = VideoFileUploader::sanitizeTitle($name);
         if ($name == '') {
             header('X-screen-type: error');
             return wfMessage('vet-warn3')->plain();
         }
         $nameFile = VideoFileUploader::sanitizeTitle($name);
         $titleFile = VideoFileUploader::getUniqueTitle($nameFile);
         if (empty($titleFile)) {
             header('X-screen-type: error');
             return wfMessage('vet-name-incorrect')->plain();
         }
         // by definition, WikiaFileHelper::useVideoHandlersExtForEmbed() == true
         $nameSanitized = $titleFile->getBaseText();
         $title = $titleFile;
         $extra = 0;
         $metadata = array();
         while ('' != $wgRequest->getVal('metadata' . $extra)) {
             $metadata[] = $wgRequest->getVal('metadata' . $extra);
             $extra++;
         }
         $parts = explode('/', $provider);
         $provider = $parts[1];
         $oTitle = null;
         $status = $this->uploadVideoAsFile($provider, $id, $nameSanitized, $oTitle);
         if (!$status->ok) {
             header('X-screen-type: error');
             return wfMessage('wva-thumbnail-upload-failed')->plain();
         }
     }
     $description = trim(urldecode($wgRequest->getVal('description')));
     // Set the video descriptions
     $vHelper = new VideoHandlerHelper();
     $vHelper->setVideoDescription($oTitle, $description);
     $message = wfMessage('vet-single-success')->plain();
     $ns_file = $wgContLang->getFormattedNsText($title->getNamespace());
     $caption = $wgRequest->getVal('caption');
     $width = $wgRequest->getVal('width');
     $width = empty($width) ? 335 : $width;
     $layout = $wgRequest->getVal('layout');
     header('X-screen-type: summary');
     $tag = $ns_file . ":" . $oTitle->getText();
     // all videos added via VET will be shown as thumbnails / "framed"
     $tag .= "|thumb";
     if (!empty($layout)) {
         $tag .= "|{$layout}";
     }
     if ($width != '') {
         $tag .= "|{$width} px";
     }
     if ($caption != '') {
         $tag .= "|" . $caption;
     }
     $tag = "[[{$tag}]]";
     $button_message = wfMessage('vet-return')->plain();
     // Adding a video from article view page
     $editFromViewMode = $wgRequest->getVal('placeholder');
     if ($editFromViewMode) {
         Wikia::setVar('EditFromViewMode', true);
         $article_title = $wgRequest->getVal('article');
         $ns = $wgRequest->getVal('ns');
         $box = $wgRequest->getVal('box');
         $article_title_obj = Title::newFromText($article_title, $ns);
         $article_obj = new Article($article_title_obj);
         $text = $article_obj->getContent();
         // match [[File:Placeholder|video]]
         $placeholder = MediaPlaceholderMatch($text, $box, true);
         $success = false;
         if ($placeholder) {
             $placeholder_tag = $placeholder[0];
             $file = wfFindFile($title);
             $embed_code = $file->transform(array('width' => $width))->toHtml();
             $params = array('alt' => $title->getText(), 'title' => $title->getText(), 'img-class' => 'thumbimage', 'align' => $layout, 'outerWidth' => $width, 'file' => $file, 'url' => $file->getUrl(), 'html' => $embed_code);
             $embed_code = F::app()->renderView('ThumbnailController', 'articleBlock', $params);
             // Make output match what's in a saved article
             if ($layout == 'center') {
                 $embed_code = '<div class="center">' . $embed_code . '</div>';
             }
             $summary = wfMessage('vet-added-from-placeholder')->plain();
             $text = substr_replace($text, $tag, $placeholder[1], strlen($placeholder_tag));
             $button_message = wfMessage('vet-placeholder-return')->plain();
             $success = $article_obj->doEdit($text, $summary);
         }
         if (!$success) {
             header('X-screen-type: error');
             return wfMessage('vet-insert-error')->plain();
         }
     }
     $tmpl = new EasyTemplate(dirname(__FILE__) . '/templates/');
     $tmpl->set_vars(array('tag' => $tag, 'message' => $message, 'code' => $embed_code, 'button_message' => $button_message));
     return $tmpl->render('summary');
 }