~jstys-z/helioviewer.org/client5

« back to all changes in this revision

Viewing changes to api/src/Module/Movies.php

  • Committer: Keith Hughitt
  • Date: 2011-06-24 15:14:24 UTC
  • mfrom: (584 hv-trunk)
  • mto: This revision was merged to the branch mainline in revision 589.
  • Revision ID: keith.hughitt@nasa.gov-20110624151424-myz1m50fq5g3krcw
Merging in trunk changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
160
160
    }
161
161
    
162
162
    /**
 
163
     * Checks to see if Helioviewer.org is authorized to upload videos for a user
 
164
     */
 
165
    public function checkYouTubeAuth ()
 
166
    {
 
167
        include_once 'src/Movie/YouTube.php';
 
168
        
 
169
        $youtube = new Movie_YouTube();
 
170
 
 
171
        header('Content-type: application/json');
 
172
        print json_encode($youtube->checkYouTubeAuth());
 
173
    }
 
174
 
 
175
    /**
 
176
     * Requests authorization for Helioviewer.org to upload videos on behalf
 
177
     * of the user.
 
178
     */
 
179
    public function getYouTubeAuth()
 
180
    {
 
181
        include_once 'src/Movie/YouTube.php';
 
182
        
 
183
        // Store form data for later use
 
184
        session_start();
 
185
 
 
186
        $_SESSION['video-id'] = $this->_params["id"];
 
187
        $_SESSION['video-title'] = $this->_params["title"];
 
188
        $_SESSION['video-description'] = $this->_params["description"];
 
189
        $_SESSION['video-tags'] = $this->_params["tags"];
 
190
        $_SESSION['video-share'] = $this->_params["share"];
 
191
        
 
192
        $youtube = new Movie_YouTube();
 
193
        $youtube->getYouTubeAuth($this->_params['id']);
 
194
    }
 
195
    
 
196
    /**
163
197
     * Uploads a user-created video to YouTube
164
198
     * 
165
199
     * TODO 2011/05/09: Make sure movie hasn't already been uploaded
175
209
        if ($movie->status !== "FINISHED") {
176
210
            throw new Exception("Invalid movie requested");
177
211
        }
178
 
 
179
 
        $file = $movie->getFilepath(true);
180
 
        
181
 
        $youtube = new Movie_YouTube();
182
 
        $youtube->uploadVideo($this->_params['id'], $file, $this->_options);
183
 
    }
184
 
    
185
 
    /**
186
 
     * Checks to see if Helioviewer.org is authorized to upload videos for a user
187
 
     */
188
 
    public function checkYouTubeAuth () {
189
 
        include_once 'src/Movie/YouTube.php';
190
 
        
191
 
        $youtube = new Movie_YouTube();
192
 
 
193
 
        header('Content-type: application/json');
194
 
        print json_encode($youtube->checkYouTubeAuth());
 
212
        
 
213
        // If this was not the first upload for the current session, then
 
214
        // the form data will have been passed in as GET variables
 
215
        if (isset($this->_options["title"])) {
 
216
            $id          = $this->_params["id"];
 
217
            $title       = $this->_options["title"];
 
218
            $description = $this->_options["description"];
 
219
            $tags        = $this->_options["tags"];
 
220
            $share       = $this->_options["share"];
 
221
        } else {
 
222
            // Otherwise read form data back in from session variables
 
223
            session_start();
 
224
 
 
225
            $id          = $_SESSION['video-id'];
 
226
            $title       = $_SESSION['video-title'];
 
227
            $description = $_SESSION['video-description'];
 
228
            $tags        = $_SESSION['video-tags'];
 
229
            $share       = $_SESSION['video-share'];
 
230
        }
 
231
        
 
232
        $youtube = new Movie_YouTube();
 
233
        $video = $youtube->uploadVideo($movie, $id, $title, $description, $tags, $share);
 
234
        
 
235
        // Output result
 
236
        if (isset($this->_options['html']) && $this->_options['html']) {
 
237
?>
 
238
<!DOCTYPE html>
 
239
<html lang="en">
 
240
<head>
 
241
    <title>Helioviewer.org - YouTube upload complete</title>
 
242
    <link rel="shortcut icon" href="../favicon.ico">
 
243
    <meta charset="utf-8" />
 
244
</head>
 
245
<body style='text-align: center;'>
 
246
    <div style='margin-top: 200px;'>
 
247
        <span style='font-size: 32px;'>Finished!</span><br />
 
248
        Your video should appear on youtube in 1-2 minutes.
 
249
    </div>
 
250
</body>
 
251
<?php
 
252
        } else {
 
253
            header('Content-type: application/json');
 
254
            echo json_encode(array("id" => $video->getVideoId()));
 
255
        }      
195
256
    }
196
257
    
197
258
    /**
198
259
     * Retrieves recent user-submitted videos from YouTube and returns the
199
260
     * result as a JSON array.
200
261
     */
201
 
    public function getUserVideos() {
 
262
    public function getUserVideos()
 
263
    {
202
264
        include_once 'src/Database/MovieDatabase.php';
203
265
        include_once 'src/Movie/HelioviewerMovie.php';
204
266
        include_once 'lib/alphaID/alphaID.php';
389
451
        case "uploadMovieToYouTube":
390
452
            $expected = array(
391
453
                "required" => array('id'),
392
 
                "optional" => array('title', 'description', 'tags', 'share', 'token', 'ready', 'dialogMode'),
 
454
                "optional" => array('title', 'description', 'tags', 'share', 'token', 'html'),
393
455
                "alphanum" => array('id'),
394
 
                "bools"    => array('share', 'ready', 'dialogMode')
395
 
            
 
456
                "bools"    => array('share', 'html')
396
457
            );
397
458
            break;
398
459
        case "getUserVideos":
402
463
            );
403
464
            break;
404
465
        case "checkYouTubeAuth":
405
 
            $expected = array ();
 
466
            $expected = array();
406
467
            break;
 
468
        case "getYouTubeAuth":
 
469
            $expected = array(
 
470
                "required" => array('id', 'title', 'description', 'tags', 'share'),
 
471
                "alphanum" => array('id'),
 
472
                "bools"    => array('share')
 
473
            );
407
474
        default:
408
475
            break;
409
476
        }