From b6e86040dd3faa3a70ec16e77220d852bdb09a04 Mon Sep 17 00:00:00 2001 From: Heshan Wanigasooriya Date: Sun, 5 Dec 2010 12:56:20 +0000 Subject: Adding latest files. --- plugins/video_s3/video_s3.module | 168 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 plugins/video_s3/video_s3.module (limited to 'plugins/video_s3/video_s3.module') diff --git a/plugins/video_s3/video_s3.module b/plugins/video_s3/video_s3.module new file mode 100644 index 0000000..274da26 --- /dev/null +++ b/plugins/video_s3/video_s3.module @@ -0,0 +1,168 @@ + 'Delete Bucket', + 'page callback' => 'video_s3_bucket_delete', + 'page arguments' => array(5), + 'access arguments' => array('administer amazon s3'), + 'file' => 'video_s3.admin.inc', + 'type' => MENU_CALLBACK, + ); + return $items; +} + +/* + * Implementation of hook_cron(). + */ + +function video_s3_cron() { + $filesystem = variable_get('vid_filesystem', 'drupal'); + if ($filesystem == 'video_s3') { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + // Lets run our queue. + $s3->queue(); + } +} + +/** + * Implementation of hook_video_delete. + * we can use hook_file_delete() + */ +function video_s3_video_delete($file) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + // Lets run our queue. + $s3->delete($file->fid); +} + +/* + * Implementation of hook_video_update. + * Submit hanlder to update our s3 table to include the node id. + */ + +function video_s3_video_update($form, &$form_state) { + //lets update our video rending table to include the node id created + if (isset($form_state['nid']) && isset($form_state['values']['video_id']) && is_array($form_state['values']['video_id'])) { + foreach ($form_state['values']['video_id'] as $fid) { + //lets update our table to include the nid + db_query("UPDATE {video_s3} SET nid=%d WHERE fid=%d", $form_state['nid'], $fid); + } + } +} + +/** + * Implementing hook_video_insert + * @param $element + * @param $form_state + */ +function video_s3_video_insert(&$element, &$form_state) { + $file = $element['#value']; + //we need to check if this fid has already been added to the database AND that there is in fact a fid + if (is_array($file) && isset($file['fid']) && !empty($file['fid'])) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + // Lets verify that we haven't added this video already. Multiple validation fails will cause this to be ran more than once + if (!$video = $s3->verify($file['fid'])) { + // Video has not been added to the queue yet so lets add it. + $s3->insert($file['fid']); + drupal_set_message(t('Video submission queued for transfer to your Amazon S3 server. Will be there shortly.')); + } + } +} + +/** + * Implementing hook_video_load + * @param $element + * @param $form_state + */ +function video_s3_video_load(&$video) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + if ($amazon = $s3->get($video->fid)) { + // Fix our filepath + $video->filepath = $amazon->filepath; +// $video->url = $amazon->filepath; + if (variable_get('amazon_s3_private', FALSE)) + $video->files->{$video->player}->url = video_s3_get_authenticated_url($amazon->filename); + else + $video->files->{$video->player}->url = $amazon->filepath; + + $video->extension = pathinfo($amazon->filepath, PATHINFO_EXTENSION); + } +} + +function video_s3_get_object_info($object) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + return $s3->get_object_info($object); +} + +function video_s3_get_authenticated_url($object) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + return $s3->get_authenticated_url($object); +} + +function video_s3_get_object($object, $save_to = false) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + return $s3->get_object($object, $save_to); +} + +/* + * Deletes a bucket from your Amazon S3 server. + */ + +function video_s3_bucket_delete($bucket) { + module_load_include('inc', 'video_s3', '/includes/amazon_s3'); + $s3 = new video_amazon_s3; + $s3->connect(); + $buckets = $s3->s3->listBuckets(); + if (is_array($buckets) && in_array($bucket, $buckets)) { + if ($s3->s3->deleteBucket($bucket)) { + drupal_set_message(t('Successfully deleted the bucket %bucket', array('%bucket' => $bucket))); + } else { + drupal_set_message(t('Could not delete the bucket %bucket', array('%bucket' => $bucket)), 'error'); + } + } else { + drupal_set_message(t('The bucket %bucket does not exist for deletion.', array('%bucket' => $bucket)), 'error'); + } + drupal_goto('admin/settings/video/amazon_s3'); +} \ No newline at end of file -- cgit v1.2.3