function update()
 {
     global $IN, $DB, $REGX, $LANG, $TMPL, $FNS, $PREFS, $LOC;
     /*
         		if ($TMPL->fetch_param('debug') == 'yes')
         		{
         			$this->debug = TRUE;
         		}*/
     //get the preferences
     $query = $DB->query("SELECT * FROM exp_twitter_settings LIMIT 1");
     if ($query->num_rows == 1) {
         $twitter_username = $query->row['twitter_username'];
         $twitter_password = base64_decode($query->row['twitter_password']);
         $system_status = $query->row['system_status'];
         $admin_email = $query->row['admin_email'];
         $notification = $query->row['notification'];
     }
     if ($system_status) {
         //get current setting time and day
         $datetime = date("M d, Y H:i", $LOC->server_now);
         $date = date("Y-m-d", $LOC->server_now);
         $day = date("l", $LOC->server_now);
         $minTime = date("H:i", $LOC->server_now - 5 * 60);
         $minTimeA = explode(":", $minTime);
         $minTime = str_pad($minTimeA[0], 2, '0', STR_PAD_LEFT) . ':' . str_pad($minTimeA[1], 2, '0', STR_PAD_LEFT) . ':00';
         $maxTime = date("H:i", $LOC->server_now + 5 * 60);
         $maxTimeA = explode(":", $maxTime);
         $maxTime = str_pad($maxTimeA[0], 2, '0', STR_PAD_LEFT) . ':' . str_pad($maxTimeA[1], 2, '0', STR_PAD_LEFT) . ':00';
         //get the entries with open, date time etc
         $sql = "SELECT m.message_id, m.message, m.send_time, m.send_day, h.message_id as sent_message_id, h.sent_date as sent_date\n                        FROM exp_twitter_messages AS m\n                        LEFT JOIN exp_twitter_history as h on m.message_id=h.message_id  \n                        WHERE m.status=1 AND m.send_day='" . $day . "' AND send_time>='" . $minTime . "' AND send_time<='" . $maxTime . "'\n                        GROUP BY m.message_id ORDER BY m.send_time ASC,h.sent_date DESC  \n                      ";
         $query = $DB->query($sql);
         if ($query->num_rows > 0) {
             $message = '';
             foreach ($query->result as $row) {
                 if ($row['sent_date'] != $date) {
                     $message_id = $row['message_id'];
                     $message = $row['message'];
                     break;
                 }
             }
             if ($message) {
                 //update twitter status
                 //include API class file that post messages using CURL
                 require PATH_MOD . 'twitter/lib/class.twitter.php';
                 $twitter = new TwitterAPI($twitter_username, $twitter_password);
                 $response = $twitter->updateStatus(urlencode($message));
                 $LANG->fetch_language_file('twitter');
                 $msg = '';
                 switch ($twitter->lastStatusCode()) {
                     case '200':
                         $response['success'] = TRUE;
                         $msg = $LANG->line('successful_tweet');
                         break;
                     case '400':
                         $msg = $LANG->line('rate_limit_exceeded');
                         break;
                     case '401':
                         $msg = $LANG->line('no_account');
                         break;
                     case '403':
                         $msg = "Error: " . $response;
                         break;
                     case '404':
                         $msg = "Error: " . $LANG->line('not_authorised');
                         break;
                     case '500':
                         $msg = "Error: " . $LANG->line('twiiter_outage');
                         break;
                     case '502':
                         $msg = "Error: " . $LANG->line('twiiter_outage');
                         break;
                     case '503':
                         $msg = "Error: " . $LANG->line('twiiter_outage');
                         break;
                     case '0':
                         $response['success'] = TRUE;
                         $msg = $LANG->line('successful_tweet');
                         break;
                 }
                 //store this on history table
                 $DB->query("INSERT INTO exp_twitter_history(message_id, message,sent_date) values (" . $message_id . ", '" . $DB->escape_str($message) . "', '" . $date . "' )");
                 //if notification on, send notification to admin
                 if ($notification and $admin_email != '') {
                     if (!class_exists('EEmail')) {
                         require PATH_CORE . 'core.email' . EXT;
                     }
                     $email_msg = $LANG->line('API_notification');
                     $email_msg = str_replace("%x", $datetime, $email_msg);
                     $email_msg = str_replace("%y", $message, $email_msg);
                     $email_msg = @str_replace("%z", $msg, $email_msg);
                     $email = new EEmail();
                     $email->initialize();
                     $email->wordwrap = true;
                     $email->from($PREFS->ini('webmaster_email'), $PREFS->ini('webmaster_name'));
                     $email->to($admin_email);
                     $email->reply_to($PREFS->ini('webmaster_email'));
                     $email->subject($LANG->line('API_notification_subject'));
                     $email->message($REGX->entities_to_ascii($email_msg));
                     $email->Send();
                 }
                 return $message;
             } else {
                 $LANG->fetch_language_file('twitter');
                 return $LANG->line('no_entry_scheduled');
             }
         } else {
             $LANG->fetch_language_file('twitter');
             return $LANG->line('no_entry_scheduled');
         }
     } else {
         $LANG->fetch_language_file('twitter');
         return $LANG->line('system_offline');
     }
 }
 function update_twitter_status()
 {
     global $IN, $DSP, $LANG, $LOC, $DB, $REGX;
     if ($this->validate_msg_length($_POST['message'], 1, 140) == false) {
         return $DSP->error_message($LANG->line('invalid_length'));
     }
     //get twitter settings
     $query = $DB->query("SELECT * FROM exp_twitter_settings LIMIT 1");
     if ($query->num_rows == 1) {
         $twitter_username = $query->row['twitter_username'];
         $twitter_password = base64_decode($query->row['twitter_password']);
         $system_status = $query->row['system_status'];
         //check system is on and twitter info provided
         if ($system_status == 0) {
             return $DSP->error_message($LANG->line('system_off'));
         }
     } else {
         return $DSP->error_message($LANG->line('setting_not_done'));
     }
     //include API class file that post messages using CURL
     require PATH_MOD . 'twitter/lib/class.twitter.php';
     $twitter = new TwitterAPI($twitter_username, $twitter_password);
     $response = $twitter->updateStatus(urlencode($_POST['message']));
     $msg = '';
     switch ($twitter->lastStatusCode()) {
         case '200':
             $response['success'] = TRUE;
             $msg = $LANG->line('successful_tweet');
             break;
         case '400':
             $msg = $LANG->line('rate_limit_exceeded');
             break;
         case '401':
             $msg = $LANG->line('no_account');
             break;
         case '403':
             $msg = "Error: " . $response;
             break;
         case '404':
             $msg = "Error: " . $LANG->line('not_authorised');
             break;
         case '413':
             $msg = "Error: " . $response;
             break;
         case '500':
             $msg = "Error: " . $LANG->line('twiiter_outage');
             break;
         case '502':
             $msg = "Error: " . $LANG->line('twiiter_outage');
             break;
         case '503':
             $msg = "Error: " . $LANG->line('twiiter_outage');
             break;
         case '0':
             $response['success'] = TRUE;
             $msg = $LANG->line('successful_tweet');
             break;
     }
     $date = date("Y-m-d", $LOC->server_now);
     //store this on history table
     $DB->query("INSERT INTO exp_twitter_history(message,sent_date) values ('" . $DB->escape_str($_POST['message']) . "', '" . $date . "' )");
     return $this->twitter_home($msg);
 }