private static function getS3()
 {
     global $IP;
     require_once "{$IP}/extensions/wikihow/common/S3.php";
     if (is_null(self::$s3)) {
         self::$s3 = new S3(WH_AWS_WIKIVIDEO_PROD_ACCESS_KEY, WH_AWS_WIKIVIDEO_PROD_SECRET_KEY);
     }
     return self::$s3;
 }
Example #2
0
 /**
  * Add a new video file into the mediawiki infrastructure so that it can
  * be accessed as {{whvid|filename.mp4|Preview.jpg}}
  */
 public function addWikiHowVideo($articleId, &$video)
 {
     // find name for video; change filename to Filename 1.jpg if
     // Filename.jpg already existed
     $regexp = '/[^' . Title::legalChars() . ']+/';
     $first = preg_replace($regexp, '', $video['first']);
     // Let's also remove " and ' since s3 doesn't seem to like
     $first = preg_replace('/["\']+/', '', $first);
     $ext = $video['ext'];
     $newName = $first . '.' . $ext;
     $i = 1;
     do {
         if (!WikiVideo::fileExists($newName)) {
             break;
         }
         $newName = $first . ' Version ' . ++$i . '.' . $ext;
     } while ($i <= 1000);
     // Move the file from one s3 bucket to another
     $ret = WikiVideo::copyFileToProd(WikiVisualTranscoder::AWS_TRANSCODING_OUT_BUCKET, $video['aws_uri_out'], $newName);
     if ($ret['error']) {
         return $ret['error'];
     }
     // instruct later processing about which mediawiki name was used
     $video['mediawikiName'] = $newName;
     // Add preview image
     $img = $video;
     $img['ext'] = 'jpg';
     $err = Mp4Transcoder::addMediawikiImage($articleId, $img);
     if ($err) {
         return 'Unable to add preview image: ' . $err;
     } else {
         $video['previewMediawikiName'] = $img['mediawikiName'];
         // Cleanup temporary preview image
         if (!empty($img['filename'])) {
             $rmCmd = "rm " . $img['filename'];
             system($rmCmd);
         }
     }
     self::d(">>> addWikiHowVideo: video['mediawikiName']=" . $video['mediawikiName'] . ", video['previewMediawikiName']=" . $video['previewMediawikiName']);
     // Keep a log of where videos were uploaded in wikivideo_video_names table
     $dbw = WikiVisualTranscoder::getDB('write');
     $vidname = $articleID . '/' . $video['name'];
     $sql = 'INSERT INTO wikivisual_vid_names SET filename=' . $dbw->addQuotes($vidname) . ', wikiname=' . $dbw->addQuotes($video['mediawikiName']);
     $dbw->query($sql, __METHOD__);
     return '';
 }