class Video extends CI_Controller {
protected $uploaded_file;
+ protected $av_info;
public function __construct()
{
public function test()
{
- var_dump($this->session->userdata('user_id'));
+ $this->load->helper('video');
+
+ var_dump(get_av_info('data/upload/test.ogv'));
}
/**
// **
// ** LOADING MODEL
// **
- // Retrieve video information.
$this->load->model('videos_model');
- $this->videos_model->inc_views($id);
+
+ $data['user_id'] = $this->session->userdata('user_id');
+ if ($data['user_id'] === FALSE)
+ $data['user_id'] = '';
+ else
+ $data['user_id'] = intval($data['user_id']);
+ $user_roles = intval($this->session->userdata('roles'));
+// echo USER_ROLE_ADMIN . ' / ';
+// var_dump($user_roles);
+// var_dump($user_roles | USER_ROLE_ADMIN);
+// die();
+
+ // Retrieve video information.
$data['video'] = $this->videos_model->get_video($id, $name);
+ if ($data['video'] === FALSE)
+ {
+ $this->load->helper('message');
+ show_error_msg_page($this,
+ $this->lang->line('video_msg_no_video'));
+ return;
+ }
+
+ // Video is being processed by CIS.
+ if ($data['video']['activation_code']
+ && !$data['video']['content_ingested'])
+ {
+ $this->load->helper('message');
+ show_error_msg_page($this,
+ $this->lang->line('video_msg_video_not_ready'));
+ return;
+ }
+
+ // Unlogged in user can't see unactivated videos.
+ if (empty($data['user_id']))
+ $allow_unactivated = FALSE;
+ else
+ {
+ if (($user_roles & USER_ROLE_ADMIN) == 0
+ && $data['user_id'] != $data['video']['user_id'])
+ $allow_unactivated = FALSE;
+ else
+ $allow_unactivated = TRUE;
+ }
+
+ // Video is not activated; can be seen by owner and admin.
+ if ($data['video']['activation_code'] && !$allow_unactivated)
+ {
+ $this->load->helper('message');
+ show_error_msg_page($this,
+ $this->lang->line('video_msg_video_unactivated'));
+ return;
+ }
+
$categories = $this->config->item('categories');
$data['video']['category_name'] =
$categories[ $data['video']['category_id'] ];
$data['plugin_type'] = ($plugin === NULL ? 'auto' : $plugin);
- $data['user_id'] = $this->session->userdata('user_id');
- if ($data['user_id'] === FALSE)
- $data['user_id'] = '';
+
+ // Increment the number of views for the video.
+ $this->videos_model->inc_views($id);
// Display page.
$params = array( 'title' => $data['video']['title'] . ' – '
$this->load->helper('video');
$this->config->load('content_ingestion');
- $file_name = $this->uploaded_file;
- $av_info = get_av_info($file_name);
$name = urlencode(str_replace(' ', '-',
$this->input->post('video-title')));
$category_id = $this->input->post('video-category');
// Prepare formats
$formats = $this->config->item('formats');
- $prepared_formats = prepare_formats($formats, $av_info,
+ $prepared_formats = prepare_formats($formats, $this->av_info,
$this->config->item('elim_dupl_res'));
// Add video to DB.
$this->input->post('video-title'),
$this->input->post('video-description'),
$this->input->post('video-tags'),
- $av_info['duration'],
- $prepared_formats['db_formats'], $category_id, $user_id);
+ $this->av_info['duration'],
+ $prepared_formats['db_formats'], $category_id, $user_id,
+ $this->uploaded_file);
// Send a content ingestion request to
// CIS (Content Ingestion Server).
$this->_send_content_ingestion($activation_code,
- $file_name,
- $name, $av_info['size'],
+ $this->uploaded_file,
+ $name, $this->av_info['size'],
$prepared_formats['transcode_configs']);
$this->load->helper('message');
}
}
+ public function cis_completion($activation_code)
+ {
+ $this->load->model('videos_model');
+
+ if ($this->config->item('require_moderation'))
+ $this->videos_model->set_content_ingested($activation_code);
+ else
+ $this->videos_model->activate_video($activation_code);
+
+// log_message('info', "cis_completion $activation_code");
+ }
+
/**
* Increments (dis)likes count for video with the specified id and returns to
* the client as plain text the number if likes.
if ($this->upload->do_upload('video-upload-file'))
{
- $this->uploaded_file = $this->upload->data();
- $this->uploaded_file = $this->uploaded_file['file_name'];
+ $upload_data = $this->upload->data();
+ $this->uploaded_file = $upload_data['file_name'];
+
+ $this->load->helper('video');
+ $this->av_info = get_av_info($upload_data['full_path']);
+ if (!$this->av_info)
+ return FALSE;
+
return TRUE;
}
else