diff options
Diffstat (limited to 'plugins/video_zencoder/includes/Zencoder.php')
-rw-r--r-- | plugins/video_zencoder/includes/Zencoder.php | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/plugins/video_zencoder/includes/Zencoder.php b/plugins/video_zencoder/includes/Zencoder.php deleted file mode 100644 index df52526..0000000 --- a/plugins/video_zencoder/includes/Zencoder.php +++ /dev/null @@ -1,239 +0,0 @@ -<?php -/* - - Zencoder API PHP Library - Version: 1.0 - See the README file for info on how to use this library. - -*/ -define('ZENCODER_LIBRARY_NAME', "ZencoderPHP"); -define('ZENCODER_LIBRARY_VERSION', "1.0"); - -// Add JSON functions for PHP < 5.2.0 -if(!function_exists('json_encode')) { - require_once('lib/JSON.php'); - $GLOBALS['JSON_OBJECT'] = new Services_JSON(SERVICES_JSON_LOOSE_TYPE); - function json_encode($value) { return $GLOBALS['JSON_OBJECT']->encode($value); } - function json_decode($value) { return $GLOBALS['JSON_OBJECT']->decode($value); } -} - -class ZencoderJob { - - var $new_job_url = "https://app.zencoder.com/api/jobs"; //https://app.zencoder.com/api/jobs - //https://zencoder-staging.heroku.com/api/jobs - var $new_job_params = array(); - var $new_job_json; - var $created = false; - var $errors = array(); - - // Attributes - var $id; - var $outputs = array(); - - // Initialize - function ZencoderJob($params, $options = array()) { - - // Build using params if not sending request - if($options["build"]) { - $this->update_attributes($params); - return true; - } - - $this->new_job_params = $params; - $this->created = $this->create(); - } - - // Send Job Request to API - function create() { - // Send request - $request = new ZencoderRequest($this->new_job_url, false, $this->new_job_params); - - if($request->successful) { - $this->update_attributes($request->results); - return true; - } else { - $this->errors = array_merge($this->errors, $request->errors); - return false; - } - } - - // Add/Update attributes on the job object. - function update_attributes($attributes = array()) { - foreach($attributes as $attr_name => $attr_value) { - // Create output file objects - if($attr_name == "outputs" && is_array($attr_value)) { - $this->create_outputs($attr_value); - } elseif (!function_exists($this->$attr_name)) { - $this->$attr_name = $attr_value; - } - } - } - - // Create output file objects from returned parameters. - // Use the Label for the key if avaiable. - function create_outputs($outputs = array()) { - foreach($outputs as $output_attrs) { - if($output_attrs["label"]) { - $this->outputs[$output_attrs["label"]] = new ZencoderOutputFile($output_attrs); - } else { - $this->outputs[] = new ZencoderOutputFile($output_attrs); - } - } - } -} - -class ZencoderOutputFile { - - var $id; - var $label; - var $url; - var $state; - var $error_message; - var $error_link; - - function ZencoderOutputFile($attributes = array()) { - $this->update_attributes($attributes); - } - - // Add/Update attributes on the file object. - function update_attributes($attributes = array()) { - foreach($attributes as $attr_name => $attr_value) { - if(!function_exists($this->$attr_name)) { - $this->$attr_name = $attr_value; - } - } - } -} - -// General API request class -class ZencoderRequest { - - var $successful = false; - var $errors = array(); - var $raw_results; - var $results; - - function ZencoderRequest($url, $api_key = "", $params = "") { - - // Add api_key to url if supplied - if($api_key) { - $url .= "?api_key=".$api_key; - } - - // Get JSON - if(is_string($params)) { - $json = trim($params); - } else if(is_array($params)) { - $json = json_encode($params); - } else { - $json = false; - } - - // Create request - $request = new ZencoderCURL($url, $json); - - // Check for connection errors - if ($request->connected == false) { - $this->errors[] = $request->error; - return; - } - - $status_code = intval($request->status_code); - $this->raw_results = $request->results; - - // Parse returned JSON - $this->results = json_decode($this->raw_results, true); - - // Return based on HTTP status code - if($status_code >= 200 && $status_code <= 206) { - $this->successful = true; - } else { - // Get job request errors if any - if(is_array($this->results["errors"])) { - foreach($this->results["errors"] as $error) { - $this->errors[] = $error; - } - } else { - $this->errors[] = "Unknown Error\n\nHTTP Status Code: ".$request->status_code."\n"."Raw Results: \n".$request->raw_results; - } - } - } -} - -// ZencoderCURL -// The connection class to perform the actual request to the surver -// using cURL http://php.net/manual/en/book.curl.php -class ZencoderCURL { - - var $options = array( - CURLOPT_RETURNTRANSFER => 1, // Return content of the url - CURLOPT_HEADER => 0, // Don't return the header in result - CURLOPT_HTTPHEADER => array("Content-Type: application/json", "Accept: application/json"), - CURLOPT_CONNECTTIMEOUT => 0, // Time in seconds to timeout send request. 0 is no timeout. - CURLOPT_FOLLOWLOCATION => 1, // Follow redirects. - ); - - var $connected; - var $results; - var $status_code; - var $error; - - // Initialize - function ZencoderCURL($url, $json, $options = array()) { - - // Add library details to request - $this->options[CURLOPT_HTTPHEADER][] = "Zencoder-Library-Name: ".ZENCODER_LIBRARY_NAME; - $this->options[CURLOPT_HTTPHEADER][] = "Zencoder-Library-Version: ".ZENCODER_LIBRARY_VERSION; - - // If posting data - if($json) { - $this->options[CURLOPT_POST] = 1; - $this->options[CURLOPT_POSTFIELDS] = $json; - } - - // Add cURL options to defaults (can't use array_merge) - foreach($options as $option_key => $option) { - $this->options[$option_key] = $option; - } - - // Initialize session - $ch = curl_init($url); - - // Set transfer options - curl_setopt_array($ch, $this->options); - - // Execute session and store returned results - $this->results = curl_exec($ch); - - // Store the HTTP status code given (201, 404, etc.) - $this->status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - - // Check for cURL error - if (curl_errno($ch)) { - $this->error = 'cURL connection error ('.curl_errno($ch).'): '.htmlspecialchars(curl_error($ch)).' <a href="http://www.google.com/search?q='.urlencode("curl error ".curl_error($ch)).'">Search</a>'; - $this->connected = false; - } else { - $this->connected = true; - } - - // Close session - curl_close($ch); - } -} - -// Capture incoming notifications from Zencoder to your app -class ZencoderOutputNotification { - - var $output; - var $job; - - function ZencoderOutputNotification($params) { - if($params["output"]) $this->output = new ZencoderOutputFile($params["output"]); - if($params["job"]) $this->job = new ZencoderJob($params["job"], array("build" => true)); - } - - function catch_and_parse() { - $notificiation_data = json_decode(trim(file_get_contents('php://input')), true); - return new ZencoderOutputNotification($notificiation_data); - } -} |