/**
  * Initialize class variables
  */
 public function __construct()
 {
     $this->api_key = rtmedia_transcoding_get_api_key();
     $this->stored_api_key = rtmedia_transcoding_get_option('rtmedia-encoding-api-key-stored');
     if ($this->api_key) {
         // store api key as different db key if user disable encoding service
         if (!$this->stored_api_key) {
             $this->stored_api_key = $this->api_key;
             rtmedia_transcoding_update_option('rtmedia-encoding-api-key-stored', $this->stored_api_key);
         }
     }
 }
/**
 * Get current usage info
 *
 * since    1.0
 *
 * @param   mixed   $api_key
 *
 * @return  integer
 */
function rtmedia_transcoding_get_remain_usage($api_key = false)
{
    $remain = 0;
    $usage_info = rtmedia_transcoding_get_option('rtmedia-encoding-usage', array());
    if (!$api_key) {
        $api_key = rtmedia_transcoding_get_api_key();
    }
    if ($api_key && isset($usage_info[$api_key]) && isset($usage_info[$api_key]->remaining)) {
        $remain = $usage_info[$api_key]->remaining;
    }
    return intval($remain);
}
 /**
  * Update transcoding service usage quota
  *
  * @since   1.0
  * @return string
  */
 public function update_usage_quota($api_key = false)
 {
     if (!$api_key) {
         $api_key = rtmedia_transcoding_get_api_key();
     }
     $usage_url = trailingslashit($this->api_url) . 'api/usage/' . $api_key;
     $usage_res = wp_remote_get($usage_url, array('timeout' => 20));
     if (!is_wp_error($usage_res) && (int) wp_remote_retrieve_response_code($usage_res) == 200) {
         $usage_info = json_decode(wp_remote_retrieve_body($usage_res));
     } else {
         $usage_info = null;
     }
     update_site_option('rtmedia-encoding-usage', array($api_key => $usage_info));
     return $usage_info;
 }