public function post_server_stats($server) { $new = Model_Server_Statistic::forge(); $new->server = $server; $new->server_stats = serialize($_POST); $new->save(); if ((int) $_POST['harddisk'] <= 5) { $previous_alerts = \Model_Adam_Announcement::query()->where('campaign', $server)->where('alert_type', 'SERVERSPACE15'); if ($previous_alerts->count() == 0) { Controller_Heartbeat::submit_ticket("Disk Space Low on " . $server, "Disk space on server " . $server . " is running low. Currently at " . $_POST['harddisk'] . "% Free!", 1, 4); $adam_announcement = \Model_Adam_Announcement::forge(array('campaign' => $server, 'alert_type' => "SERVERSPACE15", 'remove_date' => date("Y-m-d H:i:s", strtotime("+15 minutes")))); $adam_announcement->save(); } } else { if ((int) $_POST['harddisk'] <= 10) { $previous_alerts = \Model_Adam_Announcement::query()->where('campaign', $server)->where('alert_type', 'SERVERSPACE60'); if ($previous_alerts->count() == 0) { Controller_Heartbeat::submit_ticket("Disk Space Low on " . $server, "Disk space on server " . $server . " is running low. Currently at " . $_POST['harddisk'] . "% Free!", 1, 3); $adam_announcement = \Model_Adam_Announcement::forge(array('campaign' => $server, 'alert_type' => "SERVERSPACE60", 'remove_date' => date("Y-m-d H:i:s", strtotime("+60 minutes")))); $adam_announcement->save(); } } } $this->response('SUCCESS'); }
public function action_create() { if (Input::method() == 'POST') { $val = Model_Adam_Announcement::validate('create'); if ($val->run()) { $adam_announcement = Model_Adam_Announcement::forge(array('campaign' => Input::post('campaign'), 'alert_type' => Input::post('alert_type'), 'remove_date' => Input::post('remove_date'))); if ($adam_announcement and $adam_announcement->save()) { Session::set_flash('success', 'Added adam_announcement #' . $adam_announcement->id . '.'); Response::redirect('adam/announcements'); } else { Session::set_flash('error', 'Could not save adam_announcement.'); } } else { Session::set_flash('error', $val->error()); } } $this->template->title = "Adam_Announcements"; $this->template->content = View::forge('adam/announcements/create'); }
public function check_dialable_leads($campaign_id, $dialler = null) { date_default_timezone_set('Europe/London'); $dialler = is_null($dialler) ? "gabdialler" : $dialler; $campaign_stats = \Goautodial\Model_Vicidial_Campaign_Stats::find($campaign_id, array(), $dialler); if ($campaign_stats->dialable_leads < $campaign_stats->calls_fivemin) { $previous_alerts = \Model_Adam_Announcement::query()->where('campaign', $campaign_id)->where('alert_type', 'LEADS5'); if ($previous_alerts->count() == 0) { $sendMessage = static::$emergency_introductions[rand(0, count(static::$emergency_introductions) - 1)] . "There are less than 5 minutes worth of leads left in the " . $campaign_id . " campaign on " . $dialler . ". " . $message; //$message = @Adam::pick_best_lists($campaign_id, $dialler); Adam::send_push_message($sendMessage); Adam::submit_ticket("LEADS ALERT - " . $dialler, $sendMessage, 10, 5); $adam_announcement = \Model_Adam_Announcement::forge(array('campaign' => $campaign_id, 'alert_type' => "LEADS5", 'remove_date' => date("Y-m-d H:i:s", strtotime("+5 minutes")))); $adam_announcement->save(); } } else { if ($campaign_stats->dialable_leads < $campaign_stats->calls_fivemin * 3) { $previous_alerts = \Model_Adam_Announcement::query()->where('campaign', $campaign_id)->where('alert_type', 'LEADS15'); if ($previous_alerts->count() == 0) { $sendMessage = static::$moderate_introductions[rand(0, count(static::$moderate_introductions) - 1)] . "There are less than 15 minutes worth of leads left in the " . $campaign_id . " campaign on " . $dialler . ". " . $message; //$message = @Adam::pick_best_lists($campaign_id, $dialler); Adam::send_push_message($sendMessage); Adam::submit_ticket("LEADS WARNING - " . $dialler, $sendMessage, 10, 4); $adam_announcement = \Model_Adam_Announcement::forge(array('campaign' => $campaign_id, 'alert_type' => "LEADS15", 'remove_date' => date("Y-m-d H:i:s", strtotime("+15 minutes")))); $adam_announcement->save(); } } else { if ($campaign_stats->dialable_leads < $campaign_stats->calls_halfhour) { $previous_alerts = \Model_Adam_Announcement::query()->where('campaign', $campaign_id)->where('alert_type', 'LEADS30'); if ($previous_alerts->count() == 0) { $sendMessage = static::$casual_introductions[rand(0, count(static::$casual_introductions) - 1)] . "There are less than 30 minutes worth of leads left in the " . $campaign_id . " campaign on " . $dialler . ". " . $message; //$message = @Adam::pick_best_lists($campaign_id, $dialler); Adam::send_push_message($sendMessage); Adam::submit_ticket("LEADS ALERT - " . $dialler, $sendMessage, 10, 3); $adam_announcement = \Model_Adam_Announcement::forge(array('campaign' => $campaign_id, 'alert_type' => "LEADS30", 'remove_date' => date("Y-m-d H:i:s", strtotime("+30 minutes")))); $adam_announcement->save(); } } } } }
private function get_html_dom($surname, $town, $page_number = 1) { date_default_timezone_set('Europe/London'); $html = null; while (!is_object($html)) { $proxy_query = \Model_Proxy::find()->where('fail_count', '<', static::$current_max_count)->order_by('use_count', 'asc')->limit(1); while ($proxy_query->count() == 0) { static::$current_max_count++; echo "Proxy Count Now: " . static::$current_max_count; @ob_flush(); $proxy_query = \Model_Proxy::find()->where('fail_count', '<', static::$current_max_count); } if ($proxy_query->count() > 0) { $count = $proxy_query->count(); if ($count < 50 and static::$current_max_count == 1) { $previous_alerts = \Model_Adam_Announcement::find()->where('campaign', 'NULL')->where('alert_type', 'PROXY-50'); if ($previous_alerts->count() == 0) { Datascrape::send_push_message("Just so you know, there are less than 50 fresh proxies available to use!"); $adam_announcement = \Model_Adam_Announcement::forge(array('campaign' => "NULL", 'alert_type' => "PROXY-50", 'remove_date' => date("Y-m-d H:i:s", strtotime("+15 minutes")))); $adam_announcement->save(); } } $proxy = $proxy_query->get_one(); echo "Trying Proxy (from " . $count . ") - " . $proxy->host . ":" . $proxy->port; $html = \Simple_Html_Dom\helper::file_get_html('http://www.ukphonebook.com/telephone_directory/search?data_source=osis&name=' . $surname . '&place=' . $town . '&er_years%5B0%5D=pre-2013&er_years%5B1%5D=2013&page=' . $page_number, false, stream_context_create(array('http' => array('proxy' => $proxy->host . ":" . $proxy->port, 'request_fulluri' => true, 'timeout' => 10, 'method' => "GET", 'header' => "Accept-language: en\r\n" . "Cookie: foo=bar\r\n" . "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13\r\n")))); if (!is_object($html)) { $proxy->use_count = $proxy->use_count + 1; $proxy->fail_count = $proxy->fail_count + 1; $proxy->save(); echo " - Failed\n"; @ob_flush(); } else { $proxy->use_count = $proxy->use_count + 1; $proxy->save(); echo " - Passed\n"; } } else { $html = "NOPROXY"; } } return $html; }